Informática, perguntado por FranckDelton, 11 meses atrás

COMO EU FAÇO PARA NO FINAL DESSE CÓDIGO EM PASCALZIM, APARECER A MÉDIA DOS VALORES QUE FORAM ENTRADOS?

Program Pzim ;
var
nome, nomemaior, nomemenor: string;
maiorp, menorp, peso, soma, amp, md: real;
qtd: integer;
Begin
qtd := 1;
while (qtd <= 3) do
begin
write('Informe o nome da pessoa: ');
readln(nome);
write('Informe o peso da pessoa: ');
readln(peso);
soma:=(peso+peso+peso)/3 ;
writeln;
if qtd = 1 then
begin
nomemaior := nome;
maiorp := peso;
nomemenor := nome;
menorp := peso;
end
else
begin
if (peso > maiorp) then
begin
nomemaior := nome;
maiorp := peso;
end;
if (peso < menorp) then
begin
nomemenor := nome;
menorp := peso;
end;
end;
qtd := qtd + 1;
end;
writeln('Maior peso = ',maiorp, ' e ‚ da pessoa ',nomemaior);
writeln('Menor peso = ',menorp, ' e ‚ da pessoa ',nomemenor);
writeln('A amplitude é de ',maiorp-menorp);

End.

Soluções para a tarefa

Respondido por bokomoko
0
Eu faria diferente ... 
Esse trecho de código aqui tem que ficar fora do while

soma:=(peso+peso+peso)/3 

Além disso esse trecho está errado 
Deveria ser
soma := soma + peso;

Não adianta chamar a variável peso 3 vezes para obter 3 pesos diferentes. A variável não muda de valor 
O que está acontecendo nesse código é que ele está pegando o último valor de peso informado, multiplicando por 3 (pois soma 3 vezes) e depois divide por 3, ou seja, dá o mesmo valor de peso. Em seguida esse valor é atribuido ao soma, errdamente. Ele deveria somar a soma.

Além disso o programa, apesar de calcular erradamente a soma, não a exibe.

Outro aspecto é que você sabe que serão 3 valores lidos. Sendo assim, é melhor usar o comando FOR e não o comando WHILE. O comando FOR é mais indicado quando você sabe exatamente quantas vezes a repetição irá acontecer. O comando while é usado quando você nao sabe o número de vezes mas sabe que algo vai acontecer para terminar o loop.


Dá uma olhada nesse programa aí abaixo que está bem mais simples.

http://rextester.com/TRD51184

Onde você estuda ? 

Perguntas interessantes