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