Tipo de dato enumerado
De Wikipedia, la enciclopedia libre
Un tipo enumerado define un conjunto ordenado de valores con el simple hecho de listar los identificadores que denotan tales valores. Los valores no tienen un significado/valor inherente al nombre del identificador y su ordinalidad sigue la secuencia en la cual los identificadores se listan.
[editar] Definición
Para definir un tipo enumerado se utiliza la siguiente sintaxis:
( ident-1, ident-2, ..., ident-n )
Donde ident-i es un identificador legal de Lenguaje de programación Pascal: Esto significa que ident-i no debe ni empezar ni ser un número en sí. Deben ser letras del alfabeto inglés y que no aparezcan en otra definición de tipo enumerado. El objetivo es definir un tipo de datos cuyos valores sean los identificadores: ident-1, ident-2, ..., ident-n.
Ejemplo: ( B21, ABC, B33 )
define un tipo enumerado de datos. Pero ni ( 12531, 14405 )
ni ( A-, B+, B- )
son definiciones legales de tipo.
[editar] Aplicaciones
La lista de valores que definen un tipo enumerado de datos se puede asociar con un identificador en la sección de tipos. Este identificador se puede usar después para especificar el tipo de variables, parámetros formales y valores de funciones. Ejemplo:
TYPE DiasDeSemana = ( Lunes, Martes, Miercoles, Jueves, Viernes, Sabado, Domingo ) VAR Dia : DiasDeSemana; . . . FUNCTION Convertir ( x, y : integer ) : DiasDeSemana; . . . PROCEDURE Calendario ( Dia : DiasDeSemana; VAR NumeroDeDia : integer ); . . .
La lista de valores que definen un tipo enumerado se puede utilizar en la sección de variables para especificar el tipo de una variable, pero no se puede utilizar en cabeceras de funciones y procedimientos. Los valores de un tipo enumerado están ordenados por la lista de valores en la definición de ese tipo. Los tipos enumerados son, por tanto, tipos ordinales. Para cualquier valor de un tipo enumerado, la función ord devuelve su posición en la lista de valores que define el tipo, empezando por la numeración. Los valores de los tipos enumerados se pueden comparar utilizando los operadores relacionales: =, <>, <, >, <=, >=. Las funciones predefinidas pred y succ se pueden utilizar para encontrar el predecesor y el antecesor de un valor de un tipo enumerado. Los valores de un tipo enumerado no se pueden leer desde un teclado o mostrarse en pantalla, ni se pueden leer o escribir en un archivo de texto. Se deben, por tanto, escribir procedimientos especiales de entrada/salida para los tipos enumerados: para la salida, se puede utilizar una instrucción CASE que seleccione la cadena apropiada para cada valor; para la entrada, se puede examinar toda la cadena, carácter a carácter, hasta determinar el valor del tipo enumerado que se asigna a la variable de entrada.