Respuestas modelo
Consulta aquí las respuestas correctas y explicaciones de las autoevaluaciones y los tests del manual. Ideal para repasar antes de un test o aclarar dudas.
3.04 · Arreglos Bidimensionales (Matrices)
16 preguntas con respuesta en este tema.
🎯 Autoevaluación (3)
¿Cómo se declara una matriz 3x4 de enteros en C++?
- A. int m[3,4];
- B. int m[3][4]; ✓ CORRECTA
- C. int m(3,4);
- D. matrix<int> m(3,4);
int m[3][4]; declara una matriz de 3 filas y 4 columnas.
Para acceder al elemento de la fila 2, columna 3 en `m`, ¿qué sintaxis usas?
- A. m(2,3)
- B. m[2][3] ✓ CORRECTA
- C. m[2,3]
- D. m{2}{3}
En C++ se accede con m[fila][columna]. m[2][3] = fila 2, columna 3 (índice base 0).
¿Cómo recorres todos los elementos de una matriz 3x4?
- A. Un solo for
- B. Dos for anidados (filas y columnas) ✓ CORRECTA
- C. Un while
- D. Un switch
Para matrices 2D necesitas dos bucles: uno externo para filas, otro interno para columnas.
📝 Test · Sección A · Opción múltiple (10)
¿Cómo se declara una matriz 3x4 en C++?
- A. int m[3,4];
- B. int m[3][4]; ✓ CORRECTA
- C. matrix m(3,4);
- D. int m(3)(4);
int m[3][4]: 3 filas, 4 columnas.
¿Cómo acceder al elemento fila 2 columna 3?
- A. m(2,3)
- B. m[1][2] ✓ CORRECTA
- C. m[2][3]
- D. m{2}{3}
Índices base 0: fila 2 = índice 1, columna 3 = índice 2.
¿Cómo se recorre una matriz 2D?
- A. Un for
- B. Dos for anidados (filas, columnas) ✓ CORRECTA
- C. Un while
- D. Un switch
for filas, dentro for columnas. Acceso m[i][j].
¿Qué es una matriz triangular?
- A. Cuadrada
- B. Solo tiene valores en o por encima/debajo de la diagonal ✓ CORRECTA
- C. 1x1
- D. Vacía
Triangular superior/inferior: tiene datos solo en una mitad.
Para una matriz de 3x3, ¿cuántos elementos tiene?
- A. 6
- B. 9 ✓ CORRECTA
- C. 3
- D. 12
3 * 3 = 9 elementos.
¿Cómo se inicializa una matriz?
- A. int m[2][3] = {{1,2,3},{4,5,6}}; ✓ CORRECTA
- B. int m[2,3] = 1,2,3,4,5,6;
- C. m = [[1,2,3],[4,5,6]]
- D. Solo en tiempo de ejecución
Inicialización con dobles llaves: {{fila1}, {fila2}}.
¿Qué representa la diagonal principal de una matriz?
- A. m[0][0], m[0][1]...
- B. m[0][0], m[1][1], m[2][2]... ✓ CORRECTA
- C. Solo m[0][0]
- D. La última fila
Diagonal: donde fila == columna. m[i][i].
¿Cómo sumar dos matrices?
- A. m1 + m2
- B. Bucles anidados: resultado[i][j] = m1[i][j] + m2[i][j] ✓ CORRECTA
- C. Solo en una función
- D. No se puede
Suma elemento a elemento. Requiere mismas dimensiones.
¿Qué es una matriz identidad?
- A. Todos 0
- B. 1s en la diagonal, 0s en el resto ✓ CORRECTA
- C. Todos 1s
- D. Aleatoria
Identidad: 1 en m[i][i], 0 en otros. Es el elemento neutro de la multiplicación.
¿Cómo se pasa una matriz a una función?
- A. Como valor
- B. Con declaración del tamaño: void f(int m[][MAX]) ✓ CORRECTA
- C. No se puede
- D. Solo puntero
Debe especificar todas las dimensiones menos la primera: void f(int m[][10]).
✍️ Test · Sección B · Preguntas abiertas (3)
Diseña un algoritmo que encuentre el número más grande de una matriz 3x3 y su posición.
int max = m[0][0], maxF=0, maxC=0; for (int i=0; i<3; i++) for (int j=0; j<3; j++) if (m[i][j] > max) { max = m[i][j]; maxF = i; maxC = j; }.
¿Cómo sumarías dos matrices? Escribe el pseudocódigo.
matriz sumar(m1, m2) { resultado[f][c] = 0; for (i=0; i<filas; i++) for (j=0; j<cols; j++) resultado[i][j] = m1[i][j] + m2[i][j]; return resultado; }. Requiere mismas dimensiones.
Explica la diferencia entre una matriz y un vector de vectores. ¿Cuándo usar cada uno?
Matriz estática int m[3][4]: tamaño fijo en compilación, memoria contigua. Vector de vectores vector<vector<int>>: tamaño dinámico, cada fila independiente. Matriz: cuando el tamaño es conocido y fijo. Vector de vectores: cuando las dimensiones pueden cambiar en runtime.
📝 ¿Listo para evaluarte?
Regístrate o inicia sesión para tomar la autoevaluación o el test de este tema y registrar tu puntaje.