Construye un
diagrama de flujo y el correspondiente programa en C que, al recibir como datos
el peso, la altura y el sexo de N personas que pertenecen a un estado de la
República Mexicana, obtenga el promedio del peso (edad ≥ 18) y el promedio de
la altura (edad ≥ 18), tanto de la población masculina como de la femenina.
Se ingresa 1
si es hombre y 0 si es mujer.
Análisis del
problema:
Necesitamos un programa que nos ayude a determinar un promedio de altura y un
promedio de peso entre hombres y mujeres ingresados, ya sea en grandes
cantidades o simplemente pocas personas. El programa clasificara cada persona
de acuerdo a su sexo y si cumple con la condición de que sean mayores o sean de
una edad de 18 años, al final el programa dará salida al promedio general de
peso y altura de hombres y mujeres.
Datos de
entrada: Edad,
sexo, altura, peso.
Datos de
salida: Promedio
general de altura y peso de hombres y mujeres.
Datos
adicionales:
Ninguno.
Proceso:
El
programa cuenta con dos contadores para hombres y para mujeres respectivamente
con cuatro variables que van a tomar el rol de acumuladoras, ya que se
necesitara almacenar el peso y la altura de cada persona de edad mayor o igual
a 18 sea hombre o mujer, además si el sexo o la edad son valores incorrectos el
programa desplegara un mensaje de error y se deberá volver a escribir los datos,
el programa utilizara además un ciclo do while en otras palabras una sentencia
repetitiva para cada persona que ingrese al sus datos. En el ciclo do-while será
evaluada la variable sexo con una sentencia selectiva, guardando así los datos
introducidos en los acumuladores y en los contadores.
La condición del ciclo do-while es si la
respuesta del usuario es de terminar entonces este procederá a la finalización
del programa y empezara a hacer el cálculo de los promedios de la altura y el
peso de cada hombre y cada mujer ingresados mediante cada acumulador y cada
contador respectivamente, si en el caso de que exista valores nulos por parte
de hombres o mujeres o ambos a la vez el programa utilizara sentencias
condicionales, permitiendo así que el programa de salida a valores de cero y no
valores no definidos. Por último el programa da salida al promedio de cada
hombre y mujer respecto a su peso y a su altura
Diagrama de flujo:
Programa en C:
Codigo fuente:
//Algoritmo: Promedio
//Nombre:David Ponce
//Fecha: 24/11/2014
/* Descripcion: El programa cuenta con dos contadores para hombres y para mujeres respectivamente con cuatro varibles que van a tomar el rol de acumuladoras,
ya que se necesitara almacenar el peso y la altura de cada persona de edad mayor o igual a 18 sea hombre o mujer,
ademas si el sexo o la edad son valores incorrectos el programa desplegara un mensaje de error y se debera volver a escribir los datos,
el programa utilizara ademas un ciclo do while en otras palabras una sentencia repetitiva para cada persona que ingrese al sus datos. En el ciclo do while
sera evaluada la variable sexo con una sentencia selectiva, guardando asi los datos introducidos en los acumuladores y en los contadores. La
condicion del ciclo do while es si la respuesta del usuario es de terminar entonces este procedera a la finalizacion del programa y empezara a hacer el
calculo de los promedios de la altura y el peso de cada hombre y cada mujer ingresados mediante cada acumulador y cada contador respectivamente, si en el caso
de que exista valores nulos por parte de hombres o mujeres o ambos a la vez el programa utilizara sentencias condicionales, permitiendo asi que el programa
de salida a valores de cero y no valores no definidos. Por ultimo el programa da salida al promedio de cada hombre y mujer respecto a su peso y a su altura.*/
#include <stdio.h>
#include <math.h>
main()
{
float phombresp=0, pmujeresp=0, phombresh=0, pmujeresh=0, p=0, h=0, pthombresp, pthombresh, ptmujeresh, ptmujeresp;
int totalh=0, totalm=0, sex, e, r;
do
{
printf("\n Ingrese su sexo 1 Hombres, 0 Mujeres: ");
scanf("%d", &sex);
printf("\n Ingrese su edad: ");
scanf("%d", &e);
printf("\n Ingrese su altura: ");
scanf("%f", &h);
printf("\n Ingrese su peso: ");
scanf("%f", &p);
if ((sex==1||sex==0)&&e>=18)
{
switch (sex)
{
case 0:
pmujeresh=pmujeresh+h;
pmujeresp=pmujeresp+p;
totalm++;
break;
case 1:
phombresp=phombresp+p;
phombresh=phombresh+h;
totalh++;
break;
}
}
else
{
printf("\n Datos incorrectos");
}
printf("\n Hay mas personas? Presione 1 para continuar, 0 para terminar ");
scanf("%d", &r);
}while (r==1);
if ((pmujeresp!=0&&pmujeresh!=0)&&(phombresp!=0&&phombresh!=0))
{
pthombresp=phombresp/totalh;
pthombresh=phombresh/totalh;
ptmujeresp=pmujeresp/totalm;
ptmujeresh=pmujeresh/totalm;
printf("\n El promedio del peso de los hombres es %.2f ", pthombresp);
printf("\n El promedio de la altura de los hombres es %.2f ", pthombresh);
printf("\n El promedio del peso da las mujeres es %.2f ", ptmujeresp);
printf("\n El promedio de la altura de las mujeres es %.2f ", ptmujeresh);
}
else
{
if((pmujeresp!=0&&pmujeresh!=0)&&(phombresp==0&&phombresh==0) )
{
pthombresp=0;
pthombresh=0;
ptmujeresp=pmujeresp/totalm;
ptmujeresh=pmujeresh/totalm;
printf("\n El promedio del peso de los hombres es %.2f ", pthombresp);
printf("\n El promedio de la altura de los hombres es %.2f ", pthombresh);
printf("\n El promedio del peso da las mujeres es %.2f ", ptmujeresp);
printf("\n El promedio de la altura de las mujeres es %.2f ", ptmujeresh);
}
else
{
pthombresp=phombresp/totalh;
pthombresh=phombresh/totalh;
ptmujeresp=0;
ptmujeresh=0;
printf("\n El promedio del peso de los hombres es %.2f ", pthombresp);
printf("\n El promedio de la altura de los hombres es %.2f ", pthombresh);
printf("\n El promedio del peso da las mujeres es %.2f ", ptmujeresp);
printf("\n El promedio de la altura de las mujeres es %.2f ", ptmujeresh);
}
}
getch();
}
Gracias amigo, me sirvio de mucho su explicación
ResponderEliminarsabras como se resuelve el 3.10?
ResponderEliminarNo tendras este en java ?
ResponderEliminar