Pascal ajuda

1 resposta
G
Program peso_ideal;

Var

sexo: String;

altura, pesoideal : real;

begin

write (‘Digite a altura’);

read (altura);

write (‘informe o sexo’);

write ( ‘M - masculino’ );

write (‘F - Feminino’ );

Read (sexo);

If (sexo = ‘M’) then

begin

pesoideal := ( 450.7<em>altura/10);

end

Else

begin

pesoideal := ( 400.7</em>altura/10);

end;

write (pesoideal);

End.

Quando eu coloco pra imprimir e coloco um numero inteiro exemplo… 150, ele aparece assim.
Digite a altura150
informe o sexo M - masculino F - Feminino 6010.500000
e nao da read da opção para digitar M e F, alguem pode me ajudar pls <3

1 Resposta

TerraSkilll

Não lembro exatamente a causa, mas isso tem a ver com o comportamento do Read. Pelo que lembro vagamente, ele lê todo o buffer de entrada. Então, quando o segundo Read é chamado, ele captura a entrada já existente no buffer (a altura) e aparentemente “pula” a próxima leitura (sexo, no seu caso).

Experimente usar readln, que lê uma linha inteira. Ficaria algo mais ou menos assim:

write('Digite a altura: ');
readln (altura);
write ('Informe o sexo (M - masculino, F - Feminino): ');
readln (sexo);

O resto do código não deve precisar de alterações.

Abraço.

Criado 20 de maio de 2020
Ultima resposta 20 de mai. de 2020
Respostas 1
Participantes 2