domingo, 30 de janeiro de 2011

Pesquisa população

{Foi realizada uma pesquisa entre 05 habitantes de uma cidade. De
Cada habitante foram coletados os dados: idade, sexo, renda familiar e numero
de filhos. Faca um programa que leia esses dados, armazene-os em um vetor.
Calcule e mostre a media de salario entre os habitantes, a menor e a maior
idade do grupo e a quantidade de mulheres com mais de dois filhos e com renda
familiar inferior a 600.}

Program Pesquisa;
Uses CRT;
Const Max = 05;

Type Coleta = Record
       Nome: string;
       Idade: integer;
       Sexo: char;
       RendaFam: real;
       NumFilhos: Integer;
     end;
     matrizColeta = array [ 1..Max] of Coleta;

  Procedure LeColeta (Var dados: MatrizColeta; i: integer);
  Begin
    Writeln ('Digite os dados do Habitante');
    with dados[i] do
    begin
      write ('Nome: '); readln (Nome);
      write ('Idade: '); readln (Idade);
      write ('Sexo: Digite m - Masculino e f - Feminino: '); readln (Sexo);
      while (Sexo <> 'm') and (Sexo <> 'f') do
      Begin
        write ('Sexo: Digite m - Masculino e f - Feminino: '); readln (Sexo);
      end;
      write ('Renda Familiar: '); readln (RendaFam);
      write ('Numero de Filhos: '); readln (NumFilhos);
      writeln ('');
    End;
  end;

  Procedure EscreveColeta (Var dados: MatrizColeta; i: integer);
  Begin
    Writeln ('Os Dados do habitante sao:');
    with dados[i] do
    Begin
      writeln ('Nome:',Nome);
      writeln ('Idade:',Idade);
      writeln ('sexo:',Sexo);
      writeln ('Renda Familiar:',rendaFam:2:2);
      writeln ('Numero de Filhos:',NumFilhos);
      writeln ('');
    End;
  End;

  {Programa Principal}

   Var Cont, Aux, Aux2, MenorIdade, MaiorIdade,QdMRendaInf: integer;
       Coletar : MatrizColeta;
       MediaSal, SomaSal, AcumSal: real;
   begin
     Clrscr;
     Aux:= 0;
     Aux2:=0;
     For Cont := 1 to Max do
     Begin
       LeColeta (Coletar, Cont);
     end;
     For Cont := 1 to Max do
     Begin
       EscreveColeta (Coletar, Cont);
     end;
     for Cont:= 1 to Max do
     begin
       SomaSal:= SomaSal + Coletar[Cont].RendaFam;
       AcumSal:= AcumSal + 1;
     end;
     for Cont:= 1 to Max do
     begin
        if (Coletar[Cont].Idade > MaiorIdade) then
        begin
          Aux:= MaiorIdade;
          MaiorIdade:= Coletar[Cont].Idade;
          coletar[Cont].Idade := Aux;
        End
        else begin
               Aux2:= MenorIdade;
               MenorIdade := Coletar[Cont].Idade;
               Coletar[Cont].Idade := Aux2;
        End;
     End;
     For Cont:= 1 to Max do
     Begin
       if (Coletar[Cont].Sexo = 'f' ) and (Coletar[Cont].RendaFam < 600)
         Then QdMRendaInf := QdMRendaInf + 1;
     End;
MediaSal := SomaSal/AcumSal;
writeln ('A media do salario entre os habitantes e:',MediaSal:2:2);
writeln ('A maior idade do Grupo e:', MaiorIdade);
writeln ('A Menor idade do Grupo e:', MenorIdade);
writeln ('Quant. Mulheres c/ mais de 2 filhos e renda < R$ 600,e:',QdMRendaInf);
Readkey;
End.

Nenhum comentário:

Postar um comentário