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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

238 Capítulo 11. Tipos de datos simples y compuestos<br />

dom: WriteLn(’Domingo’)<br />

<strong>en</strong>d {case}<br />

<strong>en</strong>d; {EscribirDiaSemana}<br />

constante .. constante<br />

Figura 11.2.<br />

De igual forma, tampoco se puede leer directam<strong>en</strong>te un valor de un tipo<br />

<strong>en</strong>umerado, por lo que, <strong>en</strong> caso necesario, habrá que desarrollar una función<br />

análoga al procedimi<strong>en</strong>to EscribirDiaSemana que lea un valor de un tipo<br />

<strong>en</strong>umerado devolviéndolo como resultado de la función.<br />

• No se pued<strong>en</strong> repetir valores <strong>en</strong> distintas descripciones de tipos <strong>en</strong>umerados<br />

ya que, <strong>en</strong> tal caso, su tipo sería ambiguo. Así, el sigui<strong>en</strong>te fragm<strong>en</strong>to es<br />

erróneo:<br />

type<br />

tAmigos = (pepe, juan, pedro, miguel);<br />

tEnemigos = (antonio, pedro, <strong>en</strong>rique);<br />

En este caso, la ambigüedad se refleja <strong>en</strong> que no se puede saber si el valor<br />

de Succ(pedro) es miguel o <strong>en</strong>rique ni si Ord(pedro) es 1 ó 2.<br />

11.1.2 Tipo subrango<br />

El tipo de datos subrango se utiliza cuando se quiere trabajar con un intervalo<br />

de un dominio ordinal ya exist<strong>en</strong>te, bi<strong>en</strong> de un tipo predefinido, o bi<strong>en</strong> de un<br />

tipo creado con anterioridad. A este dominio ordinal lo d<strong>en</strong>ominamos tipo base,<br />

ya que va a ser el tipo sobre el que se define el tipo subrango.<br />

La descripción de un tipo subrango se hace según el diagrama sintáctico de<br />

la figura 11.2<br />

Los valores de las constantes ti<strong>en</strong><strong>en</strong> que ser de un mismo tipo ordinal y son<br />

los que van a delimitar el intervalo con el que se trabajará. Ti<strong>en</strong><strong>en</strong> que estar<br />

<strong>en</strong> ord<strong>en</strong> creci<strong>en</strong>te, esto es, Ord(constante1) ≤ Ord(constante2), para que el<br />

intervalo t<strong>en</strong>ga s<strong>en</strong>tido.<br />

Como ejemplo, consideremos las sigui<strong>en</strong>tes descripciones:

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

Saved successfully!

Ooh no, something went wrong!