Problema con type - subrangos
Publicado por Jose (2 intervenciones) el 25/04/2010 20:47:02
Tengo un problema con el turbo pascal.Mas precisamente definiendo tipos de subrango.
Si yo defino por ejemplo
type
tprueba=1..4;
y despues creo una variable
var
n:tprueba;
por lo que entendi, esa variable N solo podria tomar valores entre 1 y 4 ( 1,2,3 o 4). Hasta ahi todo bien. Mi idea era probar eso. Lo primero que intente hacer era asignarle a n un valor fuera de ese rango para ver si compilaba. (n:=5 por ejemplo). Tanto turbo pascal como free pascal dieron error, me acuerdo el del pascal "Constant out of range". Joya funciona.
Despues quise ver si le asignaba el valor desde el programa que pasaba, mas que nada para ver que error daba por si me pasaba en un programa en serio. Hice un read n y despues write n. Aca surgio el problema.
El turbo pascal me acepta CUALQUIER N, con la salvedad de que despues el write n a veces tira cualqueir cosa (Probando asi a ojo, de 0 a 127 me daba bien los valores..despues tira valores en negativo,o devuelve cualquier numero). Pero lo importante es que me permite poner cosas fuera del rango y devuelve cualqueir valor. Con el Free pascal en cambio no pasa, cuando ingreso un valor fuera del rango, se cierra el programa. (No llega a hacer el write).
Lo facil seria decir listo, el turbo pascal esta viejo..ya fue uso el free pascal. Pero la verdad es que ya me acostumbre al turbo, y no me gusta como me marca los errores el free (A veces me dice donde esta, otras dice FALTA ERROR y no dice nada...).
Si alguno sabe que puede estar pasando, o que puedo estar haciendo mal, ayuda por favor!. Gracias.
Si yo defino por ejemplo
type
tprueba=1..4;
y despues creo una variable
var
n:tprueba;
por lo que entendi, esa variable N solo podria tomar valores entre 1 y 4 ( 1,2,3 o 4). Hasta ahi todo bien. Mi idea era probar eso. Lo primero que intente hacer era asignarle a n un valor fuera de ese rango para ver si compilaba. (n:=5 por ejemplo). Tanto turbo pascal como free pascal dieron error, me acuerdo el del pascal "Constant out of range". Joya funciona.
Despues quise ver si le asignaba el valor desde el programa que pasaba, mas que nada para ver que error daba por si me pasaba en un programa en serio. Hice un read n y despues write n. Aca surgio el problema.
El turbo pascal me acepta CUALQUIER N, con la salvedad de que despues el write n a veces tira cualqueir cosa (Probando asi a ojo, de 0 a 127 me daba bien los valores..despues tira valores en negativo,o devuelve cualquier numero). Pero lo importante es que me permite poner cosas fuera del rango y devuelve cualqueir valor. Con el Free pascal en cambio no pasa, cuando ingreso un valor fuera del rango, se cierra el programa. (No llega a hacer el write).
Lo facil seria decir listo, el turbo pascal esta viejo..ya fue uso el free pascal. Pero la verdad es que ya me acostumbre al turbo, y no me gusta como me marca los errores el free (A veces me dice donde esta, otras dice FALTA ERROR y no dice nada...).
Si alguno sabe que puede estar pasando, o que puedo estar haciendo mal, ayuda por favor!. Gracias.
Valora esta pregunta


0