RE:Ayuda con tipos de datos
Me se una forma que a veces utilizo, aunque en cierta forma es algo un poco avanzado. se trata simplemente de leer una entrada desde el teclado y tratar de guardarla en una variable entera, todo esto deshabilitando el chequeo de errores, si despues de leer la entrada no hubo ningun error, ciertamente la entrada es un numero entero, de lo contrario no es un entero.
var
esnumero:integer;
numero:integer;
begin
repeat
{$i-}
read(numero);
{$i+}
esnumero := ioresult
if esnumero <> 0 then
write('El numero introducido no es un numer entero');
until esnumero=0;
end.
Lo que haces con {$i-} es desactivar el chequeo de errores para que en caso de que el numero que el usuario introduzca no sea un entero, luego con {$i+} vuelves a activr el chequeo de errores, despues ioresult guardar el codigo de error (si lo hay) si ioresult <> 0 es seguro que hubo un error, ese numero lo guardo en la variable esnumero, si es numero <> 0 entonces mando un mensaje, y vualvo a leer informacion del teclado hasta que no haya ningun codigo de error, es decir hasta que esnumero sea igual a cero.
Claro que tiene sus incoveninetes, habra otras formas como checar caracter por caracter verificando que todos sean numeros, etc. etc.
Saludos