Usual.
d) A una reunión asistieron personas de diferentes edades y géneros. Construir un
algoritmo que, dadas las edades y los géneros (M/F) de las personas, calcule:
Cuántas personas asistieron a la fiesta.
Cuántos hombres y cuántas mujeres.
Promedio de edades por sexo.
La edad de la persona más joven que asistió.
No se permiten menores de edad a la fiesta.
Ingresar datos hasta que se ingrese el valor cero "O" en la edad que se lee.
Muchas gracias
Respuestas a la pregunta
El algoritmo que permite recoger una serie de datos a partir de las personas que asistentes a una fiesta utilizando PSeInt es:
Algoritmo asistentes
sumH <- 0
sumM <- 0
cuentaH <- 0
cuentaM <- 0
masJoven <- 10000
Repetir
Escribir "Ingrese edad"
Leer Edad
Si Edad<18 Entonces
Escribir "Es menor de edad, no puede ingresar"
Si Edad==0 Entonces
Escribir "Hemos terminado"
Fin Si
SiNo
Si masJoven > edad Entonces
masJoven <- edad
Fin Si
Escribir "Ingrese genero M/F"
Leer genero
Segun genero Hacer
"M":
cuentaH <- cuentaH + 1
sumH <- sumH + Edad
"F":
cuentaM <- cuentaM + 1
sumM <- sumM + Edad
De Otro Modo:
Escribir "No es un genero valido"
Fin Segun
Fin Si
Hasta Que Edad==0
Escribir "El total de asistentes fueron: ", cuentaH + cuentaM
Escribir "Cantidad de hombres: ", cuentaH
Escribir "Cantidad de mujeres: ", cuentaM
Si cuentaH == 0 Entonces
Escribir "No asistieron hombres"
sino
Escribir "Edad Promedio Hombres: ", sumH/cuentaH
Fin Si
Si cuentaM == 0 Entonces
Escribir "No asistieron mujeres"
sino
Escribir "Edad Promedio Mujeres: ", sumM/cuentaM
Fin Si
Escribir "La persona mas joven tiene: ", masJoven, " anhos de edad"
FinAlgoritmo
El algoritmo utiliza una estructura repetitiva para leer los datos de cada una de los asistencias al momento de su ingreso, si alguno es menor de 18 años, significa que es menor de edad y por lo tanto no ingresa y no se contabilizar:
Si Edad<18 Entonces
Escribir "Es menor de edad, no puede ingresar"
Si Edad==0 Entonces
Escribir "Hemos terminado"
Fin Si
SiNo
Y si es 0, lanza un aviso y finalmente deja de iterar.
Los cálculos se han hecho mediante contadores y acumuladores
sumH <- 0
sumM <- 0
cuentaH <- 0
cuentaM <- 0
masJoven <- 10000
Finalmente, es posible que asistieran 0 hombres o 0 mujeres, y en ese caso la división para hallar el promedio sería entre "0". Con las estructuras condicionales, evitamos caer en ese error y dividir solo si la cantidad de mujeres es mayor que 0, o la cantidad de hombres es mayor que 0.
En imágenes adjuntas, te dejo el diagrama de flujo y una ejecución realizada al algoritmo.
![](https://es-static.z-dn.net/files/d03/3bb0c18d37829355d1837645db37ec4f.png)
![](https://es-static.z-dn.net/files/dc8/397c17b5735118babda782e03685e2d2.png)
Respuesta y Explicación:
Algoritmo Reunión
Variable AcumH, AcumM, menor, Hombres, mujeres, edad: enteros
Variable promedioH, promedioM : real
Variable sexo: caracter
AcumH = 0
AcumM=0
Mujeres = 0
Hombres = 0
Menor = 1000
Haga
Escribir "Ingrese edad:"
Leer Edad
Si Edad < 18 Entonces
Escribir “! ERES MENOR DE EDAD¡ No puedes ingresar"
Sino
Escribir "Ingrese Sexo (F/M):"
Leer sexo
Si (Sexo = ‘F’) Entonces
mujeres = mujeres + 1
AcumM = AcumM + edad
Sino
hombres= hombres + 1
AcumH = AcumH + edad
Finsi
Si (edad < menor) entonces
menor = edad
Finsi
Finsi
Hasta Edad = 0
Escribir "Cantidad de Hombres en la fiesta ", Hombres
Escribir "Cantidad de Mujeres en la fiesta ", Mujeres
promedioH = AcumH / Hombres
promedioM = AcumM / Mujeres
Escribir "Promedio de la Edad de Hombres en la fiesta ", promedioH
Escribir "Promedio de la Edad de Mujeres en la fiesta ", promedioM
Escribir “La Edad de la persona más joven es:”, menor
Escribir “La cantidad de personas en la fiesta :”, Hombres + Mujeres
FIN