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
1
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 ?
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 ?
FranckDelton:
Faço Eng. de Produção Mecânica na URCA.
Perguntas interessantes