Verificar tipos de variáveis - Pascal - Portugal-a-Programar
Verificar tipos de variáveis
By marco_iku, October 10, 2008 in Pascal
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;
writeln('Indique as horas?');
Ele só irá alocar as horas caso sejam do formato integer. Se introduzires um caracter ele vai dar erro..
Mas eu não quero que de erro, quero que diga ao utilizador que o que introduziu não é válido e peça novamente as horas
Não existe nenhuma função Pascal para fazer isso, no entanto é capaz de existir isso algures numa biblioteca...
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
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.
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
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.
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:
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