Departamento de Informática y Tecnología Educativa DITE-UNEFM ______________________________________________________________________________________
UNIVERSIDAD NACIONAL EXPERIMENTAL “FRANCISCO DE MIRANDA” VICE-RECTORADO ACADÉMICO PROGRAMA: EDUCACIÓN MENCIÓN: INFORMÁTICA UNIDAD CURRICULAR: COMPUTACIÓN II Guía #01: Matrices ¿Qué Arreglos? • • • •
Es una estructura de Datos Estática. Los datos que almacena son de un mismo tipo. Se declaran con un tipo y un identificador. Emplea índices o subíndices para identificar las posiciones.
Tipos Arreglos
Arreglo Unidimensional (vector). Es un arreglo que almacena un conjunto finito y ordenado de elementos. Cada elemento posee un índice que designa la posición que este ocupa en el vector.
Las operaciones de lecturas y recorrido se efectúan empleando un ciclo (for, while, do while) o indicando la posición correspondiente. Arreglo Bidimensional (Matriz). Es un vector de vectores, por ello almacena elementos de un mismo tipo y se especifican dos índices para identificar los mismos.
Lic. Yamila Bolívar, Lic. Jesús Rojas
Departamento de Informática y Tecnología Educativa DITE-UNEFM ______________________________________________________________________________________
Declaración de una Matriz: La declaración de una matriz se efectúa de la siguiente forma. Tipo_de_Dato Nomb_Matriz [Num_Fila][Num_Colum] Donde: Tipo_de_Dato : Tipos de datos manejado (int, float, char, etc) Nomb_Matriz : es el nombre que se desea emplear para la matriz Num_Fila : número correspondiente a las filas (es entero) Num_Colum : número correspondiente a las columnas (es entero) int M[50][50]; Inicialización Una matriz o arreglo bidimensional se puede inicializar de este modo: int matriz[3][3] = {{1,2,3},{4,5,6},{7,8,9}}; Con la anterior asignación se crea en memoria una 1 2 4 5 7 8 También se puede inicializar de la siguiente forma: int matriz[3][3] = {0}; y quedaría: 0 0 0 0 0 0
matriz igual a la de abajo: 3 6 9
0 0 0
Inserción de Elementos en una Matriz. Por lo general se emplean dos ciclos, uno para hacer el recorrido por las filas y otro para recorrer las columnas.
Lic. Yamila Bolívar, Lic. Jesús Rojas
Departamento de Informática y Tecnología Educativa DITE-UNEFM ______________________________________________________________________________________
Se puede especificar directamente la posición y asignarle un valor. M[2][2] = 15.78; Recorrido de una Matriz. Para hacer el recorrido se emplean ciclos. La cantidad de los mismos dependerán de lo que se desee, es decir, recorrer una fila, una columna o toda la matriz.
Ejercicio Resolvamos el siguiente ejercicio. Lea una matriz de orden nxn y muestre los elementos de la diagonal principal y diagonal secundaria. ¿Cómo sabemos cuando estamos ubicados el la diagonal principal o en la diagonal secundaria?
Lic. Yamila Bolívar, Lic. Jesús Rojas
Departamento de Informática y Tecnología Educativa DITE-UNEFM ______________________________________________________________________________________
#include //archivos de cabecera # define rango 100 //se define un tamaño para la matriz main() { int i,j,n; //declaración de variables de recorrido y numero de elementos float M[rango][rango]; //declaración de la matriz //se valida el número de elementos que se solicita al usuario do{ cout<<"\n\t Introduzca el orden de la matriz: "; cin>>n; if (n<1 || n>rango) cout<<"\n\t el orden debe ser > 0 y <"<rango);
}
//se llena la matriz con datos introducidos por el usuario, se emplean 2 ciclos cout<<"\n\t Lectura de lo elementos de la Matriz\n"; for(i=0;i>M[i][j]; } //se muestran los elementos de la matriz cout<<"\n\t Mostrando elementos de la Matriz\n"; for(i=0;i
Lic. Yamila Bolívar, Lic. Jesús Rojas
Departamento de Informática y Tecnología Educativa DITE-UNEFM ______________________________________________________________________________________
UNIVERSIDAD NACIONAL EXPERIMENTAL “FRANCISCO DE MIRANDA” VICE-RECTORADO ACADÉMICO PROGRAMA: EDUCACIÓN MENCIÓN: INFORMÁTICA UNIDAD CURRICULAR: COMPUTACIÓN II GUÍA #01: Ejercicios de Matrices 1) Dada una matriz de 3x3: a) Sumar los elementos de la diagonal principal. b) Sumar los elementos pares que están por encima de la diagonal principal. c) Contar los múltiplos de 3 que están por debajo de la diagonal principal. d) Imprimir todos los resultados. 2) Dada una matriz de 4x4, calcular e imprimir un arreglo L donde cada elemento del arreglo sea igual a la suma de los elementos de cada una de las filas de la matriz. 3) 10 trabajadores de la construcción laboran durante N días en cierta obra. Al final de cada jornada se le graba a cada trabajador el código y el número de horas trabajadas cada día. Lea los datos anteriores teniendo en cuenta lo siguiente: los códigos se almacenarán en un vector y las horas en una matriz, en su orden, a cada elemento del arreglo le corresponde una fila de la matriz. Se debe calcular e imprimir lo siguiente: a) El total de horas trabajadas por cada hombre. b) El total de horas trabajadas por todos los hombres en toda la obra. c) El total de horas laboradas cada día. d) El código del trabajador que más horas laboró. 4) Lea un arreglo bidimensional de 10 filas y 8 columnas. Lea un número, chequee si ese número existe en algún elemento de la matriz leída, si es así, imprima los subíndices que identifican la ubicación del elemento que contiene el valor del número leído, de lo contrario imprima el valor leído y un mensaje que diga: “NO SE ENCUENTRA DENTRO DE LA MATRIZ”. 5) Dadas las matrices X y Z cuyos componentes son reales, diseñar funciones para: a) Llenar o leer las matrices. b) Si tienen el mismo orden: b.1) Retornar el producto escalar del mismo. b.2) Crear una tercera matriz que contenga la suma de X y Z. c) Si son cuadradas, obtener el producto de los elementos que están por encima de la diagonal principal de cada matriz.
Lic. Yamila Bolívar, Lic. Jesús Rojas