Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

nitoc3

Problema com o repeat

Mensagens Recomendadas

nitoc3    0
nitoc3

Estou a usar o repeat para me repetir uma secção de código até que o valor que é um número inteiro, fique entre 1 e 4.

Um exemplo muito simplificado do que estou a usar:

program teste;
var n: integer;
begin

repeat
write('opcao? ');
readln(n);
until (n > 0) and (n < 5);

readln;
end.

Se introduzir um número fora do permitido o programa repete tudo muito certinho, agora se eu introduzir outro caracter, qualquer outro, seja uma letra ou um símbolo o programa simplesmente fecha...

Como posso corrigir isto?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
killercode    1
killercode

a questão e simples....

o valor de um caracter é diferente de 1 a 4 ou seja... deves definir um fixo para sair por exemplo

program teste;
var n: integer;
begin

repeat
if (n > 0) and (n<5) 
begin
write('opcao? ');
end
else
begin
write('opcao invalida. tente outra vez:');
end
readln(n);
until (n != 0);

readln;
end.

ACho q é isto ja não programo em pascal a muito tempo....

assim o q vais fazer é... se ele meter uma opção invalida ou um caracter ele informa q é invalido

se for = 0 é para sair :(

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Sota    0
Sota

tu tas a defenir n como um inteiro ao intruduzires algo diferende de inteiro ele da erro e sai tens de fazer assim

program teste;
var n: char;
begin

repeat
write('opcao? ');
readln(n);
until (ord(n) > 48) and (ord(n) <53);

readln;
end.

Killercode em pascal diferente é <> isso e em C :(

espero ter ajudado

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
nitoc3    0
nitoc3

repeat
write('opcao? ');
readln(n);
until (ord(n) > 48) and (ord(n) <53);

Obrigado Sota, era isto mesmo, funcionou na perfeição.

É o que faz um gajo ainda só andar a aprender, falha nos pormenores...

Thanks

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade