Tipo de dato subrangoEl tipo de dato subrango es el más simple que se puede definir en un programa Pascal. Estos tipos son útiles, sobre todo por la facilidad que ofrecen para verificar automáticamente errores. Un tipo subrango se define de un tipo ordinal, especificando dos constantes de ese tipo, que actúan como límite inferior y superior del conjunto de datos de ese tipo. Un tipo subrango es un tipo ordinal y sus valores se ordenan de igual modo que en el tipo patrón de que se deducen. Ejemplos
Se pueden crear variables cuyos valores se restrinjan a un subrango dado. Las declaraciones de tipo subrango se sitúan entre las declaraciones de constantes y de variables. Ejemplo {$R+} {Directiva de compilador R}
Program Positivos;
Uses Crt;
{El siguiente programa realiza una validación
para que sólo se acepten valores positivos
entre 0 y 32767 por medio de un tipo subrango}
Type
NumPositivo = 0..MaxInt;
Var
numero : NumPositivo;
Begin
ClrScr;
{numero:=-1; (está instrucción provocaría un error}
Write('Escribe un número entero positivo : ');
ReadLn(numero);
ReadKey
end.
Por defecto, está desactivada. Sólo se debe usar durante la fase de depuración. Tipos enumeradosEn estos tipos de datos simples, se listan los identificadores que serán asociados con cada valor a utilizar. Ejemplo Type
días_semana =(lunes,martes,miércoles,jueves,
viernes,sábado,domingo);
colores_baraja =(espada,oro,basto,copa);
De igual forma las variables pueden ser de tipo enumerado: Var
días : días_semana;
baraja : colores_baraja;
Formato Type
nombre = (constante1,constante2,...,constanteN)
Los datos de tipo colores_baraja sólo podrán tomar los valores denotados por: espada, oro, basto, copa. La posición de cada valor en la lista define su orden, por lo que para el tipo domingo > viernes da como resultado true
sábado < martes da como resultado false
jueves <> miércoles da como resultado true
Características
En el caso del valor máximo de un tipo enumerado, succ no está definido, y, para su valor mínimo, no está definido pred. La función estándar ord es aplicable a los argumentos que sean valores de tipo enumerado. La relación biunívoca se da entre los valores del tipo y los enteros comprendidos entre 0 y N-1, donde N es la cardinalidad del tipo enumerado. El tipo estándar boolean es equivalente a un tipo enumerado de la forma: boolean = ( false, true);
Ejemplo Program Días_Semana;
Uses Crt;
{El siguiente programa muestra los días de
la semana por medio de tipos enumerados}
Type
Día_Semana = (lunes,martes,miércoles,jueves,
viernes,sábado,domingo);
Var
días :Día_Semana;
i :byte;
Begin
ClrScr;
días:=lunes;
for i:=1 to 7 do
begin
case días of
Lunes :WriteLn('Lunes ');
Martes :WriteLn('Martes ');
Miércoles :WriteLn('Miércoles');
Jueves :WriteLn('Jueves ');
Viernes :WriteLn('Viernes ');
Sábado :WriteLn('Sábado ');
Domingo :WriteLn('Domingo ')
end;
días:=succ(días)
end;
ReadKey
end.
Véase también |
Portal di Ensiklopedia Dunia