• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

nitoc3

Problema com o repeat

5 mensagens neste tópico

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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

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