sábado, 19 de junho de 2010

Program ex28;
Uses CRT;

Type TDados = Record
Nome:String[20];
CPF:String[11];
Altura:Real;
Peso:Real;
Sexo:Char;
Idade:Integer;
End;

Var Dados:Array[1..20] Of TDados;
I:Integer;
IMC:Array[1..20] Of Real;
AcimaP,QtdObesas:Integer;
MediaP,Perc:Real;

Procedure Entrada;
Begin
For I:=1 To 20 Do
Begin
Clrscr;
Writeln(' - ',I,#166, ' Pessoa - ');
Writeln;
Write('Nome.....: ');Readln(Dados[I].Nome);
Write('CPF......: ');Readln(Dados[I].CPF);
Write('Altura...: ');Readln(Dados[I].Altura);
Write('Peso.....: ');;Readln(Dados[I].Peso);
Write('Sexo M/F.: ');;Readln(Dados[I].Sexo);
Write('Idade....: ');;Readln(Dados[I].Idade);
End;
End;

Procedure Caucula;
var F,AbaixoP:Integer;
Begin
AcimaP:=0;
MediaP:=0;
AbaixoP:=0;
QtdObesas:=0;
For I:=1 To 20 Do
Begin
IMC[I]:=Dados[I].Peso/(SQR(Dados[I].Altura));

MediaP:=MediaP+Dados[I].Peso;

If (IMC[I] >= 25) Then
Begin
AcimaP:=AcimaP+1;
If (Dados[I].Idade >= 20) And (Dados[I].Idade <= 30) Then
QtdObesas:=QtdObesas+1;
End;

Dados[I].Sexo:= UPCASE(Dados[I].Sexo);

If (Dados[I].Sexo='F') And (Dados[I].Peso <= 18.5) Then
Begin
F:=F+1;
AbaixoP:=AbaixoP+1;
End;

End;
MediaP:=MediaP/20;

If (F >= 1) Then
Perc:=(AbaixoP*100)/F
Else
Perc:=0;
End;

Procedure Mostra;
Begin
Caucula;
Clrscr;
Writeln(' * Resultados da Pesquisa * ');
Writeln;
Writeln('Qtd de pessoas com sobrepeso/obesas......: ',AcimaP);
Writeln('Peso medio da populacao..................: ',MediaP:3:2);
Writeln('Percentual de mulheres abaixo do peso....: ',Perc:3:2,'%');
Writeln('Qtd de pessoas entre 20 e 30 anos obesas.: ',QtdObesas);
Readkey;
End;

Begin
Entrada;
Mostra;
End.

Nenhum comentário:

Postar um comentário