Ir para conteúdo
Fórum Script Brasil
  • 0

Pascal


Guest --Junior --

Pergunta

Guest --Junior --

Fiz um caculo de imc em pascal, mas de uma hora pra oura reat until parou de funcionar,ele so fica repetindo e não sai do programa.Espero q alguém possa me ajudar.

PROGRAM IM;
USES CRT;

VAR
ALTURA:REAL;
PESO  :REAL;
IMC   :REAL;
RESP  :CHAR;


BEGIN
 repeat
 clrscr;
WRITELN ('               PROGRAMA CAUCULA IMC V= 1.1              ' );
WRITELN ('          ------------------------------------          ' );
WRITELN ('');

WRITE('QUAL SUA ALTURA(EM M): ?');
  READLN(ALTURA);
WRITE('QUAL O SEU PESO:?');
  READLN(PESO);

 IMC:=PESO/ (ALTURA*ALTURA);
  WRITELN('SEU IMC E ',  IMC: 1:2 );
  WRITELN;

WRITELN('_________________________________________________________________________');


   IF (IMC<=18.5)THEN
   BEGIN
     WRITELN('');
     WRITELN('VOCE ESTA ABAIXO DO PESO NORMAL');
   END;


   IF (IMC>18.5) AND (IMC<25) THEN
   BEGIN
     WRITELN('');
     WRITELN('VOVE ESTA NO PESO NORMAL');
   END;


   IF (IMC>=25) AND (IMC<=30) THEN
   BEGIN
     WRITELN('');
     WRITELN('VOCE ESTA SOBREPESO');
     END;

   IF (IMC>=30) AND (IMC<40) THEN
   BEGIN
     WRITELN('');
     WRITELN('VOCE ESTA OBESO');
   END;

   IF (IMC>=40) THEN
   BEGIN
     WRITELN('');
     WRITELN('VOCE ESTA COM OBESIDA MORBIRA');
   END;

   WRITELN('');


 WRITELN('DESEJA ENCERRAR O PROGRAMA <S/N>?');

        READLN(RESP);

  UNTIL RESP='S'; {SAIR}
  CLRSCR;


WRITE('PRECIONE UMA TECLA PARA ENCERRAR O PROGRAMA ');


 READKEY;



END.

Funcionou mas depois parou de funcionar.

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

velho eu ainda não comecei a trabalhar uma linguagem

mas no seu caso eu utilizaria o laço enquanto porque o laço repita ele so para quando ele chegar a um determinado numero seja inteiro ou real

no caso

var
x : string;
begin
   while x <> 'sair' do begin
      readln (x);
   end;
end.

tente ai depois me diga

um abraço

Editado por nego drama
Link para o comentário
Compartilhar em outros sites

  • 0

Junior, supostamente, uma possibilidade desta intermitência seria o fato de você ter acionado o CAPS LOCK. Observe que que você testa apenas pelo "S" maiúsculo estaria faltando verificar o minúsculo.

mas no seu caso eu utilizaria o laço enquanto (...)
nego drama, da forma como está construído o programa do colega Junior (onde a tela é limpa e montada a cada interação) o uso do Repeat..Until seria mesmo a mais apropriada.

Lembro que no uso do While, seria apropriado a inicialização da variável antes de seu teste - o que ocorre logo no início, diferente do Repeat..Until, que testa no fim após lida a variável de controle.

(...) porque o laço repita ele so para quando ele chegar a um determinado numero seja inteiro ou real
Isto não procede. As interações/loops (while ou repeat) são executadas até que uma condição seja satisfeita, ou seja, até que o teste da condição retorne TRUE (verdadeiro). Sendo assim, não há qualquer limitação quanto ao tipo de dados a ser usado como controle.

Abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...