08 - Arreglos Multidimensionales
Objetivos
Extender el trabajo con arreglos para representar y recorrer datos organizados en tablas.
- Comprender qué es un arreglo multidimensional
- Interpretar correctamente
matriz[fila][columna] - Declarar e inicializar matrices en C
- Recorrer matrices con bucles anidados
- Mantener coherencia entre dimensiones declaradas y límites de recorrido
Contenidos
De una lista a una tabla
- Base previa: un arreglo unidimensional representa una sola secuencia
- Nuevo paso: una matriz permite modelar datos con filas y columnas
- Idea central: cada posición queda determinada por dos índices
Declaración e inicialización
- Forma general:
tipo nombre[filas][columnas]; - Acceso:
matriz[fila][columna] - Criterio: las dimensiones deben quedar claras desde el diseño del problema
Índices y significado de cada dimensión
- Primer índice: fila
- Segundo índice: columna
- Importancia: no confundir
matriz[i][j]conmatriz[j][i]
Recorridos con bucles anidados
- Patrón básico: un bucle externo para filas y uno interno para columnas
- Aplicaciones: carga de datos, visualización, suma por fila o por columna, búsqueda de un valor
- Objetivo: entender qué controla cada nivel del recorrido
Errores frecuentes
- Fuera de rango: usar filas o columnas inexistentes
- Límites cruzados: recorrer más filas de las declaradas o menos columnas de las necesarias
- Diagnóstico: verificar siempre que cada
forcoincida con la dimensión que recorre
Material de Clase
Presentaciones
Práctico
Ver ejercicios
Ejercicio 1: Suma de columnas
Enunciado: Escribir un programa que llene una matriz de 3×4 con valores ingresados por el usuario y calcule e imprima la suma de cada columna.
Ejercicio 2: Transponer matriz
Enunciado: Escribir un programa que llene una matriz cuadrada de 4×4 con valores ingresados por el usuario y la transponga (intercambie el elemento [i][j] con el [j][i]). Imprimir la matriz antes y después de transponerla.
Ejercicio 3: Diagonal principal
Enunciado: Escribir un programa que llene una matriz cuadrada de 4×4 con valores ingresados por el usuario y calcule e imprima la suma de los elementos de la diagonal principal (los elementos donde el índice de fila es igual al índice de columna).
Ejercicio 4: Contar ceros
Enunciado: Escribir un programa que llene una matriz de 3×4 con valores enteros ingresados por el usuario y cuente cuántos elementos son iguales a cero. Imprimir el resultado.
Ejercicio 5: Tabla de multiplicar como matriz
Enunciado: Escribir un programa que lea un entero N (entre 2 y 9) y construya una matriz NxN donde el elemento [i][j] sea el producto (i+1)*(j+1). Luego imprimir la matriz con formato de tabla.
Ejercicio 6: Promedio por fila
Enunciado: Escribir un programa que llene una matriz de 4×5 con valores reales ingresados por el usuario y calcule e imprima el promedio de cada fila.
Ejercicio 7: Menor de la matriz
Enunciado: Escribir un programa que llene una matriz de 3×4 con valores enteros ingresados por el usuario y encuentre el valor mínimo de toda la matriz. Imprimir el menor valor y en qué fila y columna se encuentra.
Ejercicio 8: Buscar valor en matriz
Enunciado: Escribir un programa que llene una matriz de 3×4 con valores enteros, luego lea un número a buscar e informe en qué fila y columna aparece por primera vez. Si no está, imprimir “Valor no encontrado”.
Ejercicio 9: Cuadro de calificaciones
Enunciado: Escribir un programa que lea el número de alumnos (hasta 5) y el número de materias (hasta 4). Llenar una matriz con las calificaciones de cada alumno en cada materia, luego calcular e imprimir el promedio de calificaciones de cada alumno.
Ejercicio 10: Bordes de la matriz
Enunciado: Escribir un programa que llene una matriz de 4×4 con valores enteros ingresados por el usuario e imprima únicamente los elementos del borde (primera fila, última fila, primera columna y última columna), sin repetir las esquinas.
Recursos
Para Practicar
Bibliografía
- “El lenguaje de programación C” - Kernighan & Ritchie (Capítulo 5)
- “Cómo programar en C/C++” - Deitel & Deitel