Ir ao conteúdo
  • Cadastre-se

Duvidas com Pascal


michel510

Posts recomendados

bom dia a todos! estou começando estudar pascal, ate agora foi bem mas quando chegou nesse:

Obter a idade, a altura e o sexo (masculino, feminino) de 100 pessoas. Fazer um algoritmo que calcule e escreva:

• a maior idade;

• a menor altura dos homens;

• a maior altura das mulheres;

• a média das idades maiores que 18.

Quem puder me ajudar agradeço

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
bom dia a todos! estou começando estudar pascal, ate agora foi bem mas quando chegou nesse:

Obter a idade, a altura e o sexo (masculino, feminino) de 100 pessoas. Fazer um algoritmo que calcule e escreva:

• a maior idade;

• a menor altura dos homens;

• a maior altura das mulheres;

• a média das idades maiores que 18.

Quem puder me ajudar agradeço

Link para o comentário
Compartilhar em outros sites

valeu galera mas acho que consegui

Program letra_r;

var mi,idade,cont,valor,soma:integer;

altura,media,maior,menor:real;

sexo:char;

Begin

cont:=1;

mi:=0;

menor:=5000;

maior:=0;

repeat

write('Qual a sua idade: ');

readln(idade);

write('Qual a sua altura: ');

readln(altura);

write('Qual o sexo: (M-masculino/F-femenino)');

readln(sexo);

writeln('');

writeln('');

if (sexo='m') or (sexo='M')then

begin

if altura<menor then

menor:=altura;

end;

if (sexo='f') or (sexo='F') then

begin

if altura>maior then

maior:=altura;

end;

if idade>mi then

mi:=idade;

if idade>18 then

begin

soma:=soma+idade;

valor:=valor+1;

media:=soma/valor;

end;

cont:=cont+1;

until cont>5;

writeln('A maior idade e', mi,' anos');

writeln('A homem com menor altura tem ', menor:2:2,' de altura');

writeln('A mulher mais alta tem ', maior:2:2,' de altura');

writeln('A media de idades e de ', media:2:2);

End.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

valeu galera mas acho que consegui

Program letra_r;

var mi,idade,cont,valor,soma:integer;

altura,media,maior,menor:real;

sexo:char;

Begin

cont:=1;

mi:=0;

menor:=5000;

maior:=0;

repeat

write('Qual a sua idade: ');

readln(idade);

write('Qual a sua altura: ');

readln(altura);

write('Qual o sexo: (M-masculino/F-femenino)');

readln(sexo);

writeln('');

writeln('');

if (sexo='m') or (sexo='M')then

begin

if altura<menor then

menor:=altura;

end;

if (sexo='f') or (sexo='F') then

begin

if altura>maior then

maior:=altura;

end;

if idade>mi then

mi:=idade;

if idade>18 then

begin

soma:=soma+idade;

valor:=valor+1;

media:=soma/valor;

end;

cont:=cont+1;

until cont>5;

writeln('A maior idade e', mi,' anos');

writeln('A homem com menor altura tem ', menor:2:2,' de altura');

writeln('A mulher mais alta tem ', maior:2:2,' de altura');

writeln('A media de idades e de ', media:2:2);

End.

Olá,

Certinho...

Só uns conceitos que podem ser revisados:

1) Seleção (ifs) do sexo informado

Sobre esse trecho:

  [COLOR="Red"]if (sexo='m') or (sexo='M')then[/COLOR]
begin
if altura<menor then
menor:=altura;
end;
[COLOR="Red"]if (sexo='f') or (sexo='F') then[/COLOR]
begin
if altura>maior then
maior:=altura;
end;

Na hora de verificar o sexo informado, você está utilizando dois ifs que são "mutualmente exclusivos entre si', ou seja, só pode ser um ou outro. Não dá para o sexo ser "masculino" e "feminino" ao mesmo tempo. Logo você poderia (deve) suar "if/else".

2) Cálculo de média

Sobre esse trecho:

  if idade>18 then
begin
soma:=soma+idade;
valor:=valor+1;
[COLOR="Red"]media:=soma/valor;[/COLOR]
end;

Você está calculando a média em cada rodada, mas deveria calcular uma vez só. (a não ser que você estivesse, por exemplo, exibido a cada rodada, que não é o caso).

Calcule a média uma vez, depois de ter coletado todos os dados. (fora do laço de repetição).

3) Escolha do tipo de iteração a ser usada

Existem 3 tipos de laços de repetição: while, repeat e for. Cada um com suas particularidades. No caso, como você está utilizando um laço com uma quantidade de repetições fixas (5), e não utilizando uma outra condição que poderia ser mudada durante os loops, o mais correto seria usar o for. Já que ele é mais apropriado.

OBS.: Essa escolha do tipo de iteração não é tão determinante assim, mas no meu ponto de vista seria mais correto usar o for.

***

Só mais um comentário: experimente não informar nenhum usuário do sexo masculino...

No aguardo

Abraços

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...