Pascal ajuda

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.7altura/10);
end
Else
begin
pesoideal := ( 400.7
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

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.