09.05.2013 Views

Algoritmos y Programación en Pascal

Algoritmos y Programación en Pascal

Algoritmos y Programación en Pascal

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

11.1. Tipos ordinales definidos por el programador 235<br />

(<br />

Id<strong>en</strong>tificador<br />

,<br />

Figura 11.1.<br />

Veamos un ejemplo <strong>en</strong> el que señalaremos la utilidad y necesidad de ampliar<br />

los tipos de datos predefinidos con estos dos nuevos tipos de datos: supongamos<br />

que deseamos hacer un horario de estudio para todos los días de la semana<br />

durante todo un año. En este caso será útil definir tipos de datos que cont<strong>en</strong>gan<br />

los meses (al que llamaremos tipo tMeses), los días de cada mes (tipo tDiasMes)<br />

y los días de la semana (tipo tDiasSemana) para poder hacer planes del tipo:<br />

Miércoles 1 de Junio: estudiar los temas 12 y 13 de Matemáticas<br />

Nuestro interés es definir los tipos tDiasSemana y tMeses <strong>en</strong>umerando uno a<br />

uno todos sus posibles valores y, limitar el rango del tipo integer a los números<br />

<strong>en</strong>teros compr<strong>en</strong>didos <strong>en</strong>tre 1 y 31 para definir el tipo tDiasMes. Veamos que<br />

<strong>Pascal</strong> permite crear estos tipos de una forma muy cómoda.<br />

11.1.1 Tipos <strong>en</strong>umerados<br />

Un problema puede precisar de un determinado tipo de dato cuyos valores no<br />

están definidos <strong>en</strong> <strong>Pascal</strong> (como ocurre <strong>en</strong> el ejemplo anterior con los días de la<br />

semana). Podríamos optar por numerar los valores haci<strong>en</strong>do corresponder a cada<br />

valor un número <strong>en</strong>tero que lo repres<strong>en</strong>te (por ejemplo, id<strong>en</strong>tificar los días de la<br />

semana con los números del 1 al 7), pero esta solución no es muy compr<strong>en</strong>sible<br />

y, además, podría fácilm<strong>en</strong>te conducirnos a errores difíciles de <strong>en</strong>contrar por la<br />

posibilidad de mezclarlos con los <strong>en</strong>teros “de verdad” y la posibilidad de aplicar<br />

operaciones sin s<strong>en</strong>tido. Para solucionar este problema, <strong>Pascal</strong> nos proporciona<br />

la posibilidad de definir los datos de tipo <strong>en</strong>umerado. Es importante señalar que<br />

una vez que definamos un tipo de datos que cont<strong>en</strong>ga los días de la semana, este<br />

tipo va a ser completam<strong>en</strong>te distinto del tipo predefinido integer. El diagrama<br />

sintáctico para la descripción de un tipo <strong>en</strong>umerado aparece <strong>en</strong> la figura 11.1.<br />

Por ejemplo, para definir un tipo compuesto por los días de la semana incluimos:<br />

type<br />

tDiasSemana = (lun, mar, mie ,jue, vie, sab, dom);<br />

que se situará antes de la declaración de variables.<br />

)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!