UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA MEXICALI PROGRAMA EDUCATIVO Licenciado en Sistemas Computacionales PLAN DE ESTUDIO 2009-2 CLAVE DE UNIDAD DE APRENDIZAJE 11294 NOMBRE DE LA UNIDAD DE APRENDIZAJE Programación Estructurada PRÁCTICA No. NOMBRE DE LA PRÁCTICA DURACIÓN (HORAS) 6 Arreglos bidimensionales 2 1. INTRODUCCIÓN Los arreglos son una colección de variables del mismo tipo que se referencian utilizando un nombre común. Un arreglo consta de posiciones de memoria contigua. La dirección más baja corresponde al primer elemento y la más alta al último. Un arreglo puede tener una o varias dimensiones. Cuando un arreglo tiene dos dimensiones suele llamarse arreglo bidimensional o matriz. 2. COMPETENCIA Elaborar programas de cómputo utilizando arreglos bidimensionales para optimizar el código, con una actitud positiva y comprometida. 3. FUNDAMENTO Los elementos de un arreglo bidimensional están dispuestos en renglones y columnas. Para acceder a un elemento en particular de un arreglo bidimensional se usa un índice para la primera dimensión (renglón) y un índice para la segunda dimensión (columna). La sintaxis para la declaración un arreglo bidimensional es la siguiente. <tipo> <iden> [<dim1>][<dim2>] = {<lista_valores>}; El <tipo> determina el tipo de los datos que almacena el arreglo. El <iden> representa el nombre del arreglo. El <dim1>, <dim2> es el número de renglones y columnas en ese orden, el número de elementos que contendrá el arreglo es de dim1xdim2. Formuló Revisó José Alfredo Abad Padilla Josefina Mariscal Camacho Nombre y Firma del Maestro Nombre y Firma del Responsable de Programa Educativo Página 1 de 4 UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA MEXICALI float arregloFloat[3][10]; arregloFloat 0 1 2 0 1 2 3 4 5 6 7 8 9 Opcionalmente puede ser inicializado mediante una lista de valores indicada por <lista_valores> y delimitada por { }. int edad[4][8] = { { 20, 13, 76, 12, 60, 13, 28, 15}, { 2, 3, 7, 40, 23, 31, 8, 1}, { 67, 21, 15, 5, 49, 9, 14, 25}, { 70, 10, 26, 51, 21, 65, 33, 42} }; edad 20 13 76 12 60 13 28 15 2 67 70 3 21 10 7 15 26 40 5 51 23 49 21 31 9 65 8 14 33 1 25 42 0 1 2 3 4 5 6 7 El siguiente ejemplo es un programa utilizado para sumar o restar matrices de tamaño 3x4. #include<stdio.h> #define REN 3 #define COL 4 int main() { int matriz1[REN][ COL], matriz2[REN][ COL], matrizR[REN][ COL]; int opc, i, j; printf("Introduce los datos de la primera matriz:\n"); for (i = 0; i < REN ; i++) for (j = 0; j < COL ; j++) scanf("%d", &matriz1[i] [j]); printf("Introduce los datos de la segunda matriz:\n"); for (i = 0; i < REN ; i++) for (j = 0; j < COL ; j++) scanf("%d", &matriz2[i] [j]); do { system("clear"); printf("Menu de opciones:\n1. Suma de matrices\n2. Resta de matrices\n"); printf("3. Salir:\nElige opcion: "); scanf("%d", &opc); system("clear"); Página 2 de 4 UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA MEXICALI switch (opc) { case 1: for (i = 0; i < REN ; i++) for (j = 0; j < COL ; j++) matrizR[i] [j] = matriz1[i] [j] + matriz2[i] [j] ; printf("Suma de Matrices:\n\n"); for (i = 0; i < REN ; i++) { for (j = 0; j < COL ; j++) printf("\t%d", matriz1[i] [j]); if (i==REN%2) printf(" + "); else printf(" "); for (j = 0; j < COL ; j++) printf("\t%d", matriz2[i] [j]); if (i== REN%2) printf(" = "); else printf(" "); for (j = 0; j < COL ; j++) printf("\t%d", matrizR[i] [j]); printf("\n"); } break; case 2: for (i = 0; i < REN ; i++) for (j = 0; j < COL ; j++) matrizR[i] [j] = matriz1[i] [j] - matriz2[i] [j] ; printf("Resta de Matrices:\n\n"); for (i = 0; i < REN ; i++) { for (j = 0; j < COL ; j++) printf("\t%d", matriz1[i] [j]); if (i== REN%2) printf(" - "); else printf(" "); for (j = 0; j < COL ; j++) printf("\t%d", matriz2[i] [j]); if (i== REN%2) printf(" = "); else printf(" "); for (j = 0; j < COL ; j++) printf("\t%d", matrizR[i] [j]); printf("\n"); } break; case 3: printf("Gracias por su atencion\n"); break; } getc(stdin); }while (opc!=3); return 0; } Página 3 de 4 UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA MEXICALI 4. PROCEDIMIENTO (DESCRIPCIÓN) A) EQUIPO NECESARIO MATERIAL DE APOYO Equipo de cómputo con Linux instalado o con conexión a algún servidor de Linux Apuntes B) DESARROLLO DE LA PRÁCTICA Lea cuidadosamente los siguientes planteamientos, identifique las entradas y la salida para presentar una solución en lenguaje C. 1. Hace un programa en el cual se lea una matriz de 6x6 de caracteres, y que se realice las siguientes actividades: a) Contar el número de vocales en cada columna. b) Indicar el renglón en el cual hay más dígitos. c) Invertir las letras si se introducen en minúsculas convertirlas a mayúsculas y viceversa. d) Poner un ? en los elementos en los que el renglón y columna coincidan 0,0; 1,1, etc… Mostrar los resultados y mostrar la matriz modificada en 6 renglones por 6 columnas como en el ejemplo siguiente: ? a 2 5 d R @ R f W ? 3 V } > ? 1 R M i ? o n P a ? 3 U A r 0 K k u 4 ? 2. Hacer un programa que pida el nombre de 5 personas y en un matriz de 5x7 los gastos realizados en una semana, al finalizar mostrar el nombre de la persona que más gasto y cuanto fue el monto y el día que más gasto y el monto. C) CÁLCULOS Preguntas sobre la práctica de forma INDIVIDUAL, que hará el maestro al finalizar la práctica a cada alumno. 5. RESULTADOS Y CONCLUSIONES El resultado de las prácticas deberá visualizarse en pantalla. 6. REFERENCIAS Manual de C. Héctor Tejeda Villela. Hill. 2005 Página 4 de 4