identificador: Es el nombre que le damos a la variable matriz y por el cual la referenciaremos en nuestro programa.

Documentos relacionados
Funciones en Lenguaje C

Introducción al tipo de dato ARRAY

Apuntadores (Punteros)

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION

Programación. Test Autoevaluación Tema 3

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Curso de Programación en C. Licenciatura, FCQeI. APUNTADORES.

Tema 9. Vectores y Matrices

Programación Orientada a Objetos Métodos Guía de Ejercicios v9.7

TEMA 4. ESTRUCTURAS DE CONTROL

TEMA 8: ESTRUCTURAS DE DATOS COMPLEJAS 1 VECTORES ESTÁTICOS 2 2 CADENAS O VECTORES DE CARACTERES 6 3 PASO DE CADENAS Y ARRAYS A FUNCIONES 8

A l g o r i t m o y E s t r u c t u r a d e D a t o s Ing. en Sistemas de Información 1º año

1. Cuestiones. Ejercicios resueltos de C. Diego Rodríguez-Losada 1. //a) #include <stdio.h> main( ) { int x = 0, y = 0; //b) #include <stdio.

Segundo Taller Final de PROGRAMACIÓN ORIENTADO A OBJETOS. INGENIERÍA DE SISTEMAS. Docente y Administrativo: Luz Esperanza Espitia Preciado

If anidado: /*ifani.c*/ main() { if (getche()=='s') if (getche()=='i') printf("\n tu tecleaste si"); }

Vectores y matrices. Arrays Declaración Creación Acceso a los elementos de un array Manipulación de vectores y matrices

Programación Estructurada

Introducción a los Computadores Arreglos en C

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros

#include <stdio.h> /* Factorial de un número - versión 1- */

1. Manejo de memoria estática 2. Manejo de memoria dinámica

PRÁCTICA DE LABORATORIO 4 Programación Orientada a Objetos

1. Que rellene un array con los 100 primeros números enteros y los muestre en pantalla en orden ascendente.

Práctica 3: Vectores y matrices en C.

Laboratorio de Arquitectura de Redes. Punteros en lenguaje C

Elementos de un programa en C

Introducción al lenguaje C

Guía - Taller # 2 (JAVA)

Algoritmos y Programación I

Vectores. 27/05/05 Programación Digital I 1

ARREGLOS Y MATRICES 1. Arreglos

Las plantillas permiten definir funciones genéricas.

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática

Programación I. Arreglos. Prof. Lisbeth Pérez Rivas

Programación I: Matrices - Arreglos bidimensionales

CONCEPTOS BÁSICOS DE ESPACIOS VECTORIALES Alumno. Cristina Mª Méndez Suero

Objetivos. El alumno conocerá los elementos indispensables de un ambiente de programación y será capaz de realizar programas básicos en lenguaje C.

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

Contenidos. Funciones (suplemento) Funciones. Justificación del uso de Funciones

Tema 7 Vectores y cadenas de caracteres. Fundamentos de Informática

Arrays y Cadenas en C

Técnicas de Programación

Tutorial de Eclipse CDT

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación

Hoja de problemas Estructuras de Control

Modulo 1 El lenguaje Java

Curso 0 de Informática

UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.

Paso de Borland Turbo C (bajo DOS) a Anjuta (Linux) 1.

El lenguaje C. 1. Estructuras. Principios de Programación Definicion de estructuras

TEMA 1. MATRICES, DETERMINANTES Y APLICACIÓN DE LOS DETERMINANTES. CONCEPTO DE MATRIZ. LA MATRIZ COMO EXPRESIÓN DE TABLAS Y GRAFOS.

Hoja de ejercicios del Tema 3

Maribel Martínez y Ginés Ciudad-Real Fichas para mejorar la atención MATRIZ DE LETRAS

Vectores y matrices. Fundamentos de Programación Fundamentos de Programación I

Informática FACULTAD DE FÍSICAS

Columnas

Fundamentos de programación

UNIVERSIDAD CENTRAL. Facultad de Ingeniería. Algoritmos y programación Grupo 1.4. Taller No.3

Funciones en Lenguaje C.

Ficha de Aprendizaje N 13

A l g o r i t m o y E s t r u c t u r a d e D a t o s Ing. en Sistemas de Información 1º año

EJEMPLOS DE PROGRAMACIÓN DE FUNCIONES EN C: Página 1 de 5

Actividad colaborativa Ejercicios de programación Programación básica C++

Programación Estructurada

FUNDAMENTOS DE INFORMÁTICA 1º Ingeniería Industrial

Funciones Básicas de la Hoja de Cálculo

Generador de analizadores léxicos FLEX

Punteros. Definición Un puntero es un dato que contiene una dirección de memoria.

<tipo> Tipo de dato de los elementos del vector

Programación En Lenguaje C

Programación Avanzada para Sistemas de Telecomunicación Arrays

En este artículo vamos a conocer los tipos de datos que podemos manejar programando en C.

Instituto Tecnológico de Celaya

Cursada Segundo Cuatrimestre 2012 Guía de Trabajos Prácticos Nro. 1

Estructuras de Repetición (Repita para)

PROBLEMAS DEL TEMA 7: Subprogramas y Modularidad

Presentación. Programación I. Conceptos Avanzados de Programación. :: Prof. Yeniffer Peña

void int int for void int int for void int int for for void int int for int int

1 Estructura básica de un programa C++

INTRODUCCIÓN AL LENGUAJE C

TécniquesInformàtiques PRÀCTICA 6 (2 Sessions) Curs

ARREGLOS EN. Nota: El autor.

Tema: Arreglos de Objetos en C++.

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

media = ( temp0 + temp1 + temp2 + temp3 + temp temp23 ) / 24; printf( "\nla temperatura media es %f\n", media );

PRÁCTICA DE LABORATORIO 3 Tipo Abstrato de Dato

Introducción a la programación orientada a objetos

Repaso sobre lectura de datos desde la línea de comandos, manejo de memoria dinámica e introducción a la librería GSL

TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS

UNIDAD V: ARR R EGL G OS O BIDI D MENS N IONALE L S

Ejercicio 1 (2 puntos. Tiempo: 25 minutos)

TEMA 3: EL LENGUAJE C: PRESENTACIÓN

Titulo: Calculo de PI

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACÁN INTEGRANTES

Clase 8 Matrices Álgebra Lineal

Tema 16: Tipos de datos estructurados en lenguaje C

Arreglos Unidimensionales En este tipo de arreglo se hace uso de un índice solamente para hacer referencia a una posición particular del arreglo.

Memoria Dinámica. Jornadas de Marzo 2010 Grupo de Usuarios de Linux Tania Pérez

Lenguaje de programación C. Introducción

Programcaión Básica. Arreglos y Estructuras de Datos (2)

Transcripción:

Matrices La matriz es una estructura de datos básica dentro de los lenguajes de programación y conceptualmente son identicas a sus homónimas matemáticas. Por tanto una matriz es un conjunto de datos de un tamaño definido que se encuentran consecutivos en memoria y en la que es posible el acceso al elemento que deseemos simplemente con indicar su posición. La declaración de una matriz en lenguaje C es como sigue: Dónde : tipo_de_dato identificador[tamaño1][tamaño2]...; tipo_de_dato: Es el tipo de datos que contendrá la matriz. Hasta ahora sólo conocemos los tipos básicos de datos; int, float, double, char. Posteriormente veremos como definir nuestros propios tipos de datos. identificador: Es el nombre que le damos a la variable matriz y por el cual la referenciaremos en nuestro programa. [tamaño] : Indica el número de elementos de tipo tipo_de_datos que contendrá la matriz identificador. Si definimos dos tamaños [tamaño1][tamaño2] nuestra matriz será bidimensional. Algunas declaraciones de matrices serían: /* Matriz de números reales de 10x10 */ float matriz[10][10]; /* Matriz tridimensional de números enteros 20x20x10 */ int Tridimensional[20][20][10]; Como ya se supondrá el acceso a cada elemento de la matriz se realiza especificando su posición, pero ésta comienza a contarse desde el valor 0, es decir, la primera matriz que hemos definido (matriz) tendrá elementos desde el [0][0] al [9][9]. Esto puede causar algunos mal entendidos cuando se trabaja con matrices estáticas. Por ejemplo: a = matriz [2][1]; /* A toma el valor del elemento (2,1) comenzando a contar desde 0 o del (3,2) si consideramos que el primer valor de la matriz es el (1,1) */ tridimensional [5][16][1] = 67; /* Introduce el valor 67 en la entrada de la matriz especificada */ Las variables de tipo matriz como el resto de las declaraciones, se pueden inicializar en el momento de su declaración, ayudándose de las llaves () para la inclusión de inicializaciones múltiples. int matriz[2][3] = 1,2,3, 4,5,6 ;

Estas líneas nos declararían una matriz llamada "matriz" de 2x3 elementos inicializada con los valores indicados. Las matrices son extremadamente útiles para trabajar con multitud de problemas matemáticos que se formulan de esta forma o para mantener tablas de datos a los que se accede con frecuencia y por tanto su referencia tiene que ser muy rápida. Las matrices en C se almacenan por filas, en posiciones consecutivas de memoria. En cierta forma, una matriz se puede ver como un vector de vectores-fila. Si una matriz tiene N filas (numeradas de 0 a N-1) y M columnas (numeradas de 0 a la M-1), el elemento (i, j) ocupa el lugar: posición_elemento(0, 0) + i * M + j A esta fórmula se le llama fórmula de direccionamiento de la matriz. Ejemplo Diseñe un programa que lea un matriz de 6*6 y luego determine la suma de cada una de las filas y la almacene en un vector llamado suma. #include <stdio.h> #include <conio.h> #define F 6 #define C 6 main() int matriz[f][c], i,j, vector [F]=0,0,0,0,0,0; for(j=0; j<c; j++) printf("ingrese el elemento F=%d y Columna=%d de la matriz:\n", i,j); scanf("%d", &matriz[i][j]); vector[i]=vector[i]+matriz[i][j]; printf("la Matriz generada es:\n\n"); for(j=0; j<c; j++) printf("*%d*", matriz[i][j]); printf("\n"); printf("y el vector suma de las filas es:\n\n"); printf("%d\t", vector[i]); getch(); return 0; El uso de una matriz en C, es bastante parecido al de un vector, pero con las diferencias que en un vector tenemos únicamente una dimensión y en las matrices tenemos dos.

Ejemplo Escriba un programa que visualice un cuadro mágico de orden impar N, comprendido entre 3 y 11; el usuario debe elegir el valor de N. Un cuadro mágico se compone de números enteros entre 1 y N, la suma de los números que figuran en cada fila, columna y diagonal son iguales. Ejemplo: 8 1 6 3 5 7 4 9 2 Un método de generación consiste en situar en el centro de la primera fila, el número siguiente en la casilla situada por encima y a la derecha, y así sucesivamente... el cuadro es cíclico, la línea encima de la primera, es de hecho, la última y la columna a la derecha de la ultima es la primera. En caso de que el número generado caiga en una casilla ocupada, se elige la casilla situada de bajo del número que acaba de ser situado. #include <stdio.h> #include <conio.h> #define N 11 #define M 11 int comprueba (int [N][M], int dim); void impresion (int [N][M], int dim); main() int cuadrado[n][m]; int dim, f, c, i; clrscr(); printf("introduzca la dimenci n por favor:\n"); while(dim<3 dim>11) printf("error, el valor de la dimenci n debe estar entre 3 y 11:\n"); while((dim%2)!=1) printf("error el valor de la dimenci n debe ser Impar:\n"); cuadrado[f][c]=0; f=0; c=dim/2; cuadrado[f][c]=1; for(i=2; i<=dim*dim; i++) f--; c++; if(f<0 && c==dim) f=1; c=dim-1; if(f<0) f=dim-1;

if(c==dim) c=0; if(cuadrado[f][c]!=0) c--; f=f+2; cuadrado[f][c]=i; printf("la constante m gica es: %d\n\n", comprueba (cuadrado, dim)); impresion(cuadrado, dim); getch(); return 0; int comprueba (int cuadrado [N][M], int dim) int magic=1, f,c, consmagic, sum=0, i, j=-1; consmagic=((dim*dim*dim)+dim)/2; sum=sum+cuadrado[f][c]; sum=sum+cuadrado[f][c]; for(i=0; i<dim; i++) sum=sum+cuadrado[i][i]; for((i=dim-1); i>=0; i--) j=j+1; sum=sum+cuadrado[i][j]; if(magic==0) cons return (consmagic); void impresion (int cuadrado[n][m], int dim) int f, c; printf("\tel CUADRO GENERADO ES:\n\n");

printf("*%d*", cuadrado[f][c]); printf("\n"); Ejercicios: 1. Se tienen dos Matrices de tamaño 4x4, se pide escriba un programa en el cual,. Mediante un menú, se puedan sumar, multiplicar o dividir las matrices.