nitoc3 Posted November 22, 2006 at 04:45 AM Report #65923 Posted November 22, 2006 at 04:45 AM 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?
killercode Posted November 22, 2006 at 11:53 AM Report #65934 Posted November 22, 2006 at 11:53 AM 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 😞 Geek PressWeboeste.Com
Sota Posted November 22, 2006 at 02:45 PM Report #65965 Posted November 22, 2006 at 02:45 PM 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
killercode Posted November 22, 2006 at 03:11 PM Report #65976 Posted November 22, 2006 at 03:11 PM ja não sei o q é pascal a 5 anos para ai 😞 Geek PressWeboeste.Com
nitoc3 Posted November 22, 2006 at 05:54 PM Author Report #66008 Posted November 22, 2006 at 05:54 PM 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
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now