3. Funciones con arrays unidimensionales en paralelo

En numerosas ocasiones se plantean problemas donde tenemos asociados dos arrays con distintos tipos de datos que se relacionan por su posición en los respectivos arrays. Pensemos por ejemplo en los nombres de unos alumnos y su nota en un examen. Los datos podrían estar almacenados en dos arrays, uno para los nombres (array de cadenas) y otro para las notas (array de reales). Para preguntas del tipo cuáles son los alumnos que han aprobado o cuál es la máxima nota necesitan manipular ambos arrays en paralelo. Este tipo de problema se resolverá de manera más apropiada cuando los alumnos conozcan la estructura registro (struct) que permitirá unificar en una única estructura nombre y nota.


3.1 Pesos y edades

Queremos hacer un estudio sobre si el peso y la edad de las personas están relacionados. Para ello vamos a disponer de los pesos (números reales) y la edad (números enteros) de una muestra de personas, en dos arrays relacionados por la posición.

3.1.1 Defina los tipos necesarios para guardar las edades y el peso de la muestra. Se supone no tendremos más de 500 datos.





3.1.2 Función que lea desde teclado y guarde los datos de edad y peso de las personas de la muestra. La lectura terminará cuando se lea una edad negativa. No olvide devolver el número de personas leídas.













3.1.3 Función tal que dados los pesos y las edades de la muestra y dos enteros e1 y e2 devuelva los pesos de las personas cuya edad está entre e1 y e2 ambas inclusive.










3.1.4 Función que reutilizando las funciones 2.1.11 y 2.1.12 para calcular la media y la varianza de los valores de un array, calcula el estadístico de Welch, para comparar los pesos de las personas entre 30 y 39 años de edad con las de 40 y 49.  La fórmula del estadístico de Welch es:
 



 
 
 
 
 
 
 
Lo lógico sería generalizar esta función para comparar cualquier intervalo de edad, esto es, que los números 30, 39, 40 y 49 que aparecen en las invocaciones de la función filtraPesosPorEdades fueran argumentos de entrada a la función testWelch y asu vez argumentos de la función filtro.  

No hay comentarios:

Publicar un comentario