Ir ao conteúdo
  • Cadastre-se

Pascal


Merft

Posts recomendados

x, mensagem: integer;

{$I-} desliga diretivas de verificação ou qualquer coisa similar

read (x);

{$I+} liga de novo;

mensagem:=IOResult; {Aqui, você pode ver se deu erro ou não. Se o retorno é 0 (Zero), não há erro, mas não é necessário}

Assim, caso o IOResult der <> zero, manda ler de novo.

{$I-} read(x); {$I+}

while IOResult<>0 do

begin

{$I-} read(x); {$I+}

end;

Ou algo parecido!

Link para o comentário
Compartilhar em outros sites

Exite uma forma mais fácil mas não me lembro a sintaxe agora.

Pesquise um pouco sobre conjuntos em pascal, você simplesmente define um conjunto tipo

 a = set[0 .. 9](esta sintaxe não é assim, estou só chutando)

e depois verifica

read(x)

for i = 0 to length(x)

 if x not in a then

   erro !!!

Sacou?

Link para o comentário
Compartilhar em outros sites

Amigo Nosferatu, acho que você não entendeu. Se você ler x (que é do tipo integer) como um char, vai dar pau, aí, nem na verificação do grupo de pascal vai funcionar, por que vai abortar antes.

Daniel, de qualquer jeito tu vai ter que configurar se vai ler ou não a variável, por que se eu defini-la como string, e depois converte-la, caso eu leia "a", ele tranforma pra 65, e o bjetivo é não aceitar letras. Assim, ele aceita as letras e transforma. Acredito que a maneira das interrupções seja mais viável.

{

Editei esta mensagem porque não tinha visto seu exemplo Daniel. Equivoquei-me. Acredito que ambos irão funcionar! Ok!

}

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...