• 0
Sign in to follow this  
Guest --Robson --

Uma ajuda nos codigos de If ... then...else

Question

Guest --Robson --

Olá pessoal, fiz um programa basico, para que possa apresentar a media de peso e altura de duas pessoas, mas dessas duas que seja maior de 1.80 m e 100 kg para mostrar a media:

Mas é em pascal o programinha, mas como em delphi é parecido e eu só quero sobre o if e o else

Então seria assim aqui foi feito com 10 variaveis e eu queria fazer com no minimo 3 variaveis e no maximo 4 variaveis, mas ai como eu fazeria na condição, como poderia resolver isso.

program MediaPesoAltura;
uses crt;
var
   peso1, peso2 : Real;
   altura1, altura2 : Real;
   somaPeso, somaAltura : Real;
   qtdePeso, QtdeAltura : Integer;
   mediaPeso, mediaAltura : Real;
begin
    clrscr;

     Write ('1 Altura : '); readln (altura1);
     Write ('1 Peso : '); readln (peso1);
     Write ('2 Altura : '); readln (altura2);
     Write ('2 Peso : '); readln (peso2);

     qtdePeso := 0;
     qtdeAltura := 0;
     mediaPeso := 0;
     mediaAltura := 0;

     If (Altura1 > 1.80) then
        begin
           somaPeso := somaPeso + peso1;
           QtdePeso := QtdePeso + 1;
        end;
     If (Altura2 > 1.80) then
        begin
           somaPeso := somaPeso + peso2;
           QtdePeso := QtdePeso + 1;
        end;
     If (Peso1 > 100) then
        begin
           somaAltura := somaAltura + altura1;
           qtdeAltura := qtdeAltura + 1;
        end;
     If (Peso2 > 100) then
        begin
           somaAltura := somaAltura + altura2;
           qtdeAltura := qtdeAltura + 1;
        end;

     MediaAltura := somaAltura / qtdeAltura;
     MediaPeso := somaPeso / qtdePeso;
     Writeln ('A media de peso : ', mediaPeso:0:2);
     Writeln ('A media de Altura : ', MediaAltura:0:2);

  ReadKey;

end.

Share this post


Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 0
Mas é em pascal o programinha, mas como em delphi é parecido e eu só quero sobre o if e o else
Robson, além de não tratar-se de Delphi, acho que seu problema está mais para Lógica de Programação ou mesmo Outras Linguagens de Programação - temos sessões específicas para isso.

Então seria assim aqui foi feito com 10 variaveis e eu queria fazer com no minimo 3 variaveis e no maximo 4 variaveis, mas ai como eu fazeria na condição, como poderia resolver isso.
Isto está meios estranho não?!

Aqui foi feito com 2 variáveis!

Mas eu daria como dica, o uso de um vetor (array) com a quantidade de itens a serem lidos, sendo que cada item deste vetor seria composto por um registro (record) com os atributos Peso e Altura.

Bastaria então, um loop para a leitura dos dados e outro para o tratamento do if, cálculo e display dos dados.

Estou movendo para a sessão Lógica de Programação, onde acredito você tenha um suporte melhor sobre a questão.

Abraços

Share this post


Link to post
Share on other sites
  • 0

Estava olhando melhor o que você colocou em seu post e acho que viajei na minha sugestão anterior. Acredito que algo como o que está abaixo resulta no que você precisa: processar n items mantendo o esquema do if:

program MediaPesoAltura;
uses crt;

var
  IdxPessoa,
  QtdPessoas :integer;
  Altura, Peso : Real;
  somaPeso, somaAltura : Real;
  qtdePeso, QtdeAltura : Integer;
  mediaPeso, mediaAltura : Real;
begin
  qtdePeso := 0;
  qtdeAltura := 0;
  mediaPeso := 0;
  mediaAltura := 0;

  clrscr;
  Write ('Quantidade de pessoas a processar: '); readln (QtdPessoas);
  for IdxPessoa := 1 to QtdPessoas do
  begin
    Write (IdxPessoa, ' Altura : '); readln (Altura);
    Write (IdxPessoa, ' Peso : '); readln (Peso);

    If (Altura > 1.80) then
    begin
       somaPeso := somaPeso + Peso;
       QtdePeso := QtdePeso + 1;
    end;
    If (Peso > 100) then
    begin
      somaAltura := somaAltura + Altura;
      qtdeAltura := qtdeAltura + 1;
    end;
  end;

  MediaAltura := somaAltura / qtdeAltura;
  MediaPeso := somaPeso / qtdePeso;
  Writeln ('A media de peso : ', mediaPeso:0:2);
  Writeln ('A media de Altura : ', MediaAltura:0:2);

  ReadKey;
end.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this