Jump to content

Problema com o repeat


Recommended Posts

Posted

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?

Posted

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 😞

Posted

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

Posted

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.