Temas de clase
- Repaso de los esquemas vistos hasta el momento, miren la guía de recorridos de listas que está en la sección Material.
- Introdujimos el
foreach
como una herramienta útil para realizar recorridos completos sobre listas. Básicamente resuelve por nosotros el problema de recorrer una lista de izquierda a derecha y en cada iteración podemos “mirar por dónde va” accediendo a la variable. - Vimos que los registros pueden tener campos que guardan listas y las listas pueden estar compuestas por registros. Para ejercitar esto, continuamos con la práctica de los estudiantes universitarios.
Deben terminar de resolver los primeros cuatro ejercicios de la segunda parte y enviarlos por mail - incluyan también las funciones que utilicen en su resolución.
Práctica Universidad - listas
Parte 3: registros con listas y listas con registros
Vamos a reemplazar el campo nroMateriasAprobadas
por una lista de las notas obtenidas, y agregamos también otra lista para registrar los aplazos:
type Estudiante is record {
field fechaNacimiento // Fecha
field dni // número
field notasMateriasAprobadas // lista de números
field aplazos // lista de números
field esMujer // booleano
}
- Escribí funciones que sirvan para calcular la
longitud
,sumatoria
y elpromedio
de una lista de números y guardalas en tu Biblioteca. Tenelas muy en cuenta para programar los siguientes ejercicios. - Para que siga funcionando todo lo que ya escribimos hasta ahora, programá la función
nroMateriasAprobadas
que indique cuántas materias aprobó un estudiante. Para pensar, cuando hayas terminado: al modificar la estructura de nuestro registro, la cantidad de materias aprobadas ya no está explícitamente en ningún campo pero aún así se puede calcular, reemplazando lo que antes era un proyector por una función que escribimos nosotros. Lo interesante es que ¡todo sigue funcionando! - después de todo, los proyectores también son funciones. - Para realizar distintos trámites dentro de la Universidad, el Departamento de Alumnos necesita poder determinar el
promedioSinAplazos
y elpromedioConAplazos
de un estudiante. Programá ambas funciones. - El Consejo Interuniversitario Nacional otorga becas de Estímulo a las Vocaciones Científicas para aquellos estudiantes que deseen iniciar su formación en la investigación. Como requisitos, piden que quien se presente esté avanzado en la carrera (ver parte anterior), tenga a lo sumo 30 años y un promedio con aplazos de al menos seis puntos. Escribí la función
aptoBecaEvcCin
que determine si un estudiante podría postularse.
A partir de la lista de todos los estudiantes de TPI, queremos obtener una serie de estadísticas. Desarrollá una función para cada uno de los siguientes puntos:
- una lista con los
promediosConAplazosDe
todos ellos; - el
promedioHistoricoConAplazos
, un número que se calcula sacando el promedio de los promedios de todos los estudiantes; - la lista de
estudiantesMujeres
que estudian la carrera; - el
porcentajeDeMujeres
que estudian la carrera. Recordá que para calcular un porcentaje tenés que dividir la porción que te interesa (en este caso las mujeres) con el total de elementos (en este caso todos los estudiantes) y multiplicar eso por 100. - una lista con las
edades
de todos los estudiantes; - una lista con las
edadesMigrantesVarones
; - la lista de los
estudiantesAvanzados
; - la lista de los
estudiantesIngresantes
; - la
cantidadEstudiantesEnGrupoVulnerable
.