Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Ajuda Urgente !!!

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Pascal Ajuda Urgente !!!

    Bem, eu gostaria que vcs me ajudassem na prova de Pascal que eu acabei de ter, é o seguinte:

    Faça um programa que leia o nome, altura e sexo de 5 pessoas, depois o programa deverá mostrar:

    a)O número de mulheres

    b)A idade média entre as pessoas

    c)Número de homens com mais de 1,70m

    d)A maior e a menor idade entre as mulheres

    Eu e um amigo só conseguimos fazer a "A" e a "C", fizemos assim:

    Program Pzim ;
    var i,f,m,m1:integer;
    nome:string;
    sexo:char;
    am,altura,alt:real;
    Begin
    am:=0;
    f:=0;
    altura:=0;
    m:=0;
    m1:=0;

    for i:=1 to 5 do
    Begin
    writeln('Digite o nome da pessoa');
    readln(nome);
    writeln('Digite o sexo');
    readln(sexo);
    writeln('Digite a altura');
    readln(altura);
    clrscr;
    //Contador de sexo
    if (sexo= 'F') or (sexo='f') then begin
    f:=f+1;
    end;

    if(sexo='m')or (sexo='M') then if (altura>1.70) then begin
    m1:=m1+1;
    end;
    end;
    writeln('Num. de mulheres: ',f);
    writeln('Num.de homens com mais de 1,70: ',m1);

    End.
    Obs.: O programa deve ser feito com IF (ou CASE) e Loop com FOR (que foi o que acabamos de aprender)...

    Hacking is like sex. You get in, you get out, and hope that you didn't leave something that can be traced back to you.

  • Font Size
    #2
    se você usar vetor fica assim :
    Program Pzim ;
    var
    i,f,m,m1,imax,imin:integer;
    idade : array of integer;
    nome:string;
    sexo:char;
    am,altura,alt, med:real;
    Begin
    imin := 0;
    imax := 0;
    am:=0;
    f:=0;
    altura:=0;
    m:=0;
    m1:=0;
    for i:=1 to 5 do
    Begin
    writeln('Digite o nome da pessoa');
    readln(nome);
    writeln('Digite o sexo');
    readln(sexo);
    writeln('Digite a altura');
    readln(altura);
    writeln('Digite a idade');
    readln(idade[i]);
    clrscr;
    if (sexo= 'F') or (sexo='f') then
    begin
    f:=f+1;
    if (imin = 0) or (imax=0) then
    begin
    imin:=idade[i];
    imax:= imin
    end
    else
    begin
    if idade[i]> imax then
    imax := idade[i]
    else
    if idade[i] <imin then
    end;
    end;
    if(Copy(sexo,1,1)='m')or (sexo='M') and (altura>1.70) then
    m1:=m1+1;
    end;
    writeln('Num. de mulheres: ',f);
    for i:= 1 to 5 do
    med := med + idade[i];
    writeln('Idade Média de todas as pessoas: ', (Med/2));
    writeln('Num.de homens com mais de 1,70: ',m1);
    writeln('Maior idade entre as mulheres: ', imax);
    writeln('Menor idade entre as mulheres: ', imin);
    End.

    senão :

    Program Pzim ;
    var
    i,f,m,m1,imax,imin:integer;
    idade : array of integer;
    nome:string;
    sexo:char;
    am,altura,alt, med:real;
    Begin
    imin := 0;
    imax := 0;
    am:=0;
    f:=0;
    altura:=0;
    m:=0;
    m1:=0;
    for i:=1 to 5 do
    Begin
    writeln('Digite o nome da pessoa');
    readln(nome);
    writeln('Digite o sexo');
    readln(sexo);
    writeln('Digite a altura');
    readln(altura);
    writeln('Digite a idade');

    case i of
    1:
    begin
    readln(idade1);
    clrscr;
    if (sexo= 'F') or (sexo='f') then
    begin
    f:=f+1;
    if (imin = 0) or (imax=0) then
    begin
    imin:=idade1;
    imax:= imin;
    end
    else
    begin
    if idade1> imax then
    imax := idade1
    else
    if idade1 <imin then
    end;
    end;
    2:
    begin
    readln(idade2);
    clrscr;
    if (sexo= 'F') or (sexo='f') then
    begin
    f:=f+1;
    if (imin = 0) or (imax=0) then
    begin
    imin:=idade2;
    imax:= imin;
    end
    else
    begin
    if idade2> imax then
    imax := idade2
    else
    if idade2 <imin then
    end;
    end;
    3:
    begin
    readln(idade3);
    clrscr;
    if (sexo= 'F') or (sexo='f') then
    begin
    f:=f+1;
    if (imin = 0) or (imax=0) then
    begin
    imin:=idade3;
    imax:= imin;
    end
    else
    begin
    if idade3> imax then
    imax := idade3
    else
    if idade3 <imin then
    end;
    end;
    4:
    begin
    readln(idade4);
    clrscr;
    if (sexo= 'F') or (sexo='f') then
    begin
    f:=f+1;
    if (imin = 0) or (imax=0) then
    begin
    imin:=idade4;
    imax:= imin;
    end
    else
    begin
    if idade4> imax then
    imax := idade4
    else
    if idade4 <imin then
    end;
    end;
    5:
    begin
    readln(idade5);
    clrscr;
    if (sexo= 'F') or (sexo='f') then
    begin
    f:=f+1;
    if (imin = 0) or (imax=0) then
    begin
    imin:=idade5;
    imax:= imin;
    end
    else
    begin
    if idade5> imax then
    imax := idade5
    else
    if idade5 <imin then
    end;
    end;
    if(Copy(sexo,1,1)='m')or (sexo='M') and (altura>1.70) then
    m1:=m1+1;
    end;
    writeln('Num. de mulheres: ',f);
    med := idade1 + idade2 +idade3 +idade4 +idade5;
    writeln('Idade Média de todas as pessoas: ', (Med/2));
    writeln('Num.de homens com mais de 1,70: ',m1);
    writeln('Maior idade entre as mulheres: ', imax);
    writeln('Menor idade entre as mulheres: ', imin);
    End.
    não testei o código + se tiver algum problema fala

    Comment


    • Font Size
      #3
      Resposta

      se você usar vetor fica assim :
      Program Pzim ;
      var
      i,f,m,m1,imax,imin:integer;
      idade : array of integer;
      nome:string;
      sexo:char;
      am,altura,alt, med:real;
      Begin
      imin := 0;
      imax := 0;
      am:=0;
      f:=0;
      altura:=0;
      m:=0;
      m1:=0;
      for i:=1 to 5 do
      Begin
      writeln('Digite o nome da pessoa');
      readln(nome);
      writeln('Digite o sexo');
      readln(sexo);
      writeln('Digite a altura');
      readln(altura);
      writeln('Digite a idade');
      readln(idade[i]);
      clrscr;
      if (sexo= 'F') or (sexo='f') then
      begin
      f:=f+1;
      if (imin = 0) or (imax=0) then
      begin
      imin:=idade[i];
      imax:= imin
      end
      else
      begin
      if idade[i]> imax then
      imax := idade[i]
      else
      if idade[i] <imin then
      end;
      end;
      if(Copy(sexo,1,1)='m')or (sexo='M') and (altura>1.70) then
      m1:=m1+1;
      end;
      writeln('Num. de mulheres: ',f);
      for i:= 1 to 5 do
      med := med + idade[i];
      writeln('Idade Média de todas as pessoas: ', (Med/2));
      writeln('Num.de homens com mais de 1,70: ',m1);
      writeln('Maior idade entre as mulheres: ', imax);
      writeln('Menor idade entre as mulheres: ', imin);
      End.

      senão :

      Program Pzim ;
      var
      i,f,m,m1,imax,imin:integer;
      idade : array of integer;
      nome:string;
      sexo:char;
      am,altura,alt, med:real;
      Begin
      imin := 0;
      imax := 0;
      am:=0;
      f:=0;
      altura:=0;
      m:=0;
      m1:=0;
      for i:=1 to 5 do
      Begin
      writeln('Digite o nome da pessoa');
      readln(nome);
      writeln('Digite o sexo');
      readln(sexo);
      writeln('Digite a altura');
      readln(altura);
      writeln('Digite a idade');

      case i of
      1:
      begin
      readln(idade1);
      clrscr;
      if (sexo= 'F') or (sexo='f') then
      begin
      f:=f+1;
      if (imin = 0) or (imax=0) then
      begin
      imin:=idade1;
      imax:= imin;
      end
      else
      begin
      if idade1> imax then
      imax := idade1
      else
      if idade1 <imin then
      end;
      end;
      2:
      begin
      readln(idade2);
      clrscr;
      if (sexo= 'F') or (sexo='f') then
      begin
      f:=f+1;
      if (imin = 0) or (imax=0) then
      begin
      imin:=idade2;
      imax:= imin;
      end
      else
      begin
      if idade2> imax then
      imax := idade2
      else
      if idade2 <imin then
      end;
      end;
      3:
      begin
      readln(idade3);
      clrscr;
      if (sexo= 'F') or (sexo='f') then
      begin
      f:=f+1;
      if (imin = 0) or (imax=0) then
      begin
      imin:=idade3;
      imax:= imin;
      end
      else
      begin
      if idade3> imax then
      imax := idade3
      else
      if idade3 <imin then
      end;
      end;
      4:
      begin
      readln(idade4);
      clrscr;
      if (sexo= 'F') or (sexo='f') then
      begin
      f:=f+1;
      if (imin = 0) or (imax=0) then
      begin
      imin:=idade4;
      imax:= imin;
      end
      else
      begin
      if idade4> imax then
      imax := idade4
      else
      if idade4 <imin then
      end;
      end;
      5:
      begin
      readln(idade5);
      clrscr;
      if (sexo= 'F') or (sexo='f') then
      begin
      f:=f+1;
      if (imin = 0) or (imax=0) then
      begin
      imin:=idade5;
      imax:= imin;
      end
      else
      begin
      if idade5> imax then
      imax := idade5
      else
      if idade5 <imin then
      end;
      end;
      if(Copy(sexo,1,1)='m')or (sexo='M') and (altura>1.70) then
      m1:=m1+1;
      end;
      writeln('Num. de mulheres: ',f);
      med := idade1 + idade2 +idade3 +idade4 +idade5;
      writeln('Idade Média de todas as pessoas: ', (Med/2));
      writeln('Num.de homens com mais de 1,70: ',m1);
      writeln('Maior idade entre as mulheres: ', imax);
      writeln('Menor idade entre as mulheres: ', imin);
      End.
      não testei o código + se tiver algum problema fala

      Comment


      • Font Size
        #4
        OK. vocês estão no bom caminho. Para fazer a linha b vocês vão lendo e somando as idades das pessoas e depois dividir pelo número de pessoas. Algo como:
        Código:
        read(idade);
        total_idade = total_idade + idade;
        e no fim fazer um

        Código:
         total_idade / 5
        .

        Quanto a linha d é só arranjar uma variável auxiliar que guarda a menor idade. Toda a vez que você achar uma mulher, cuja idade é menor ou valor dessa variável, essa variável pega esse valor. Algo tipo:
        Código:
        read(idade);
        read(sexo);
        if (sexo = 'f') and (idade < menor_idade) then 
        menor_idade = idade
        end if;
        Para maior o raciocínio é igual. Repara também que é só pseudo código, vocês vão ter que trabalhar essa ideia. Não se esqueçam de inicializar as variáveis.

        Abraço, qualquer coisa estou aqui.
        “Finalmente encontrei um inimigo digno de mim e uma jornada em que preciso desenvolver toda a minha coragem, pois temos de combater homens bravos e monstruosas feras.”, Alexandre, o Grande.

        Comment


        • Font Size
          #5
          Henry-RDS eu recomendaria inicializar o imin com o valor maxint e o imax com o valor -maxint.
          “Finalmente encontrei um inimigo digno de mim e uma jornada em que preciso desenvolver toda a minha coragem, pois temos de combater homens bravos e monstruosas feras.”, Alexandre, o Grande.

          Comment


          • Font Size
            #6
            foi mal, dois erros no meu codigo:

            la na declaração do vetor é
            idade :Araray [1..5] of integer;
            e la em
            writeln('Idade Média de todas as pessoas: ', (Med/2));
            O certo é
            writeln('Idade Média de todas as pessoas: ', (Med/5));

            Comment


            • Font Size
              #7
              Rolando Sanches, realmete eu não conhecia essa constante, seria util nessa situção.
              Obrigado

              Para o nosso amigo Will23
              iif (sexo= 'F') or (sexo='f') then
              begin
              f:=f+1;
              if Idade[i]>imax then
              imax := idade[i]
              else
              if idade[i]<imin then
              imin := idade[i];
              end;

              Comment

              X
              Working...
              X