PS 4.24 - Calificaciones Alumnos

Analiza una matriz de N alumnos y 5 exámenes.

📝 Descripción del Problema

Se tiene una tabla (matriz) con las calificaciones de N alumnos en 5 exámenes.

Dato: ALUM[N][5] (arreglo bidimensional de tipo real).

Se debe calcular:

  • a) El promedio de calificaciones de cada uno de los N alumnos.
  • b) El/los alumnos que obtuvieron la mejor calificación en el tercer examen.
  • c) El/los alumnos que obtuvieron la mayor calificación en el primero y en el quinto examen.
  • d) Dado un alumno, informar en qué examen logró la menor calificación.
  • e) ¿En qué examen fue más alto el promedio de los N alumnos?

💡 Pistas y Fórmulas Clave

  • La clase principal debe llamarse AnalizadorCalificaciones.java.
  • El constructor de la clase debe recibir la matriz double[][] alum.
  • La matriz se recorre como ALUM[i][j], donde i es el alumno y j es el examen.
  • Recuerda que los índices de Java son 0-based: Alumno 1 es el índice 0. Examen 3 es el índice 2.
  • (a) Promedio por alumno: Recorre por filas. Suma las 5 columnas de una fila i y divide entre 5.
  • (b) Mejor del Examen 3: Recorre por columnas. Primero, recorre la columna 2 (j=2) para encontrar el max. Luego, vuelve a recorrerla para encontrar a todos los alumnos i que igualen ese max.
  • (e) Mejor promedio de examen: Recorre por columnas. Calcula la suma de cada columna j, divídela entre N (numAlumnos) y encuentra el promedio más alto.

📊 Diagrama de Flujo (Inciso E)

Diagrama de flujo para PS 4.24 - Inciso E

▶️ Prueba y Resultados

Resultado de ejecutar --select-class TestAnalizadorCalificaciones en la terminal.

PS C:\Users\...\Ejercicios> java -jar lib\junit-platform-console-standalone-1.9.3.jar -cp "src;tests" --select-class TestAnalizadorCalificaciones

Thanks for using JUnit! Support its development at https://junit.org/sponsoring

.
+-- JUnit Jupiter [OK]
| '-- TestAnalizadorCalificaciones [OK]
|   +-- testIncisoD_PeorExamenAlumno() [OK]
|   +-- testIncisoB_MejoresExamen3() [OK]
|   +-- testIncisoE_ExamenMejorPromedio() [OK]
|   +-- testIncisoA_PromediosAlumnos() [OK]
|   '-- testIncisoC_MejoresExamen1y5() [OK]
'-- JUnit Platform Suite [OK]

Test run finished after 101 ms
[         3 containers found      ]
[         0 containers skipped    ]
[         3 containers started    ]
[         0 containers aborted    ]
[         3 containers successful ]
[         0 containers failed     ]
[         5 tests found           ]
[         0 tests skipped         ]
[         5 tests started         ]
[         0 tests aborted         ]
[         5 tests successful      ]
[         0 tests failed          ]
← Volver al Inicio