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

marco_iku

Verificar tipos de variáveis

Mensagens Recomendadas

marco_iku    0
marco_iku

Bom dia a todos, queria verificar se a variável horas é um numero inteiro e não uma string. Se alguém me pudesse ajudar agradeço.

Program seg; 
Var horas: Integer; 

Begin
writeln('Indique as horas?');
readln(horas); 
End.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
TheGlorious    0
TheGlorious

Não sei se existe ou não uma função para tal, mas é fácil, basta fazeres uma verificação do tipo:

if(horas < 0 or horas > 24) then
Begin
writeln('erro');
...
...
End;

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pmg    102
pmg

Eu não sei Pascal (isto é, já me esqueci de tudo o que aprendi), mas se queres dizer ao utilizador que "Quatro horas da tarde" é uma resposta inválida não podes fazer o readln() para um integer; tens de fazer para uma string e validar a string.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
marco_iku    0
marco_iku

Obrigado a todos, como não existe nenhuma função para verificar automaticamente a entrada (sem recorrer às condições), vou fazer como disse o TheGlorious mas o que eu quero fazer não é com o limite de 24 mas percebi a ideia. Obrigado ;)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
NCS_One    2
NCS_One

Boas.

Se fizeres como tens no inicio o usuario quando for introduzir as horas se colocar 1 caracter a funçao Readln sabe que so pode aceitar valores

do tipo integer e entao nao aceita, mas nao da erro, so nao o vai ler.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
electron++    0
electron++

Claro que existe!

umas das formas de tu validares é receberes o valor em string, depois usas uma função chamada Val para converter de string para integer, se der erro é porque o input do utilizador teve caracteres não permitido ex: 12d mas se foi permitido é porque o input é só números.

e depois é que podes fazer a dita validaçao dos numeros:

if(horas < 0 or horas > 24) then
Begin
writeln('erro');
...
...
End;

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
marco_iku    0
marco_iku

Claro que existe!

umas das formas de tu validares é receberes o valor em string, depois usas uma função chamada Val para converter de string para integer, se der erro é porque o input do utilizador teve caracteres não permitido ex: 12d mas se foi permitido é porque o input é só números.

e depois é que podes fazer a dita validaçao dos numeros:

if(horas < 0 or horas > 24) then
Begin
writeln('erro');
...
...
End;

Desconhecia e pensava que não existia. Para o programa que estava a fazer já não me serve já o entreguei. mas obrigado pode ser que me ajude no futuro

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