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 239<br />

type<br />

tNaturales = 1..MaxInt;<br />

tDiasMes = 1..31;<br />

tContador = 1..20;<br />

El uso de tipos subrango es muy aconsejable debido a que:<br />

• El compilador puede comprobar que el valor almac<strong>en</strong>ado <strong>en</strong> una variable<br />

de un tipo subrango se <strong>en</strong>cu<strong>en</strong>tra <strong>en</strong> el intervalo de definición, produci<strong>en</strong>do<br />

el correspondi<strong>en</strong>te error <strong>en</strong> caso contrario (véase el apartado C.3.3).<br />

• Proporcionan una mayor claridad, ya que el compilador verifica la consist<strong>en</strong>cia<br />

de los tipos usados, lo que obliga al programador a una disciplina<br />

de trabajo clara y natural.<br />

Como es lógico, el dominio de un tipo subrango estará formado por la parte<br />

del dominio de su tipo base que indique el intervalo considerado <strong>en</strong> la descripción.<br />

Operaciones del tipo subrango<br />

Un tipo subrango hereda todas las funciones y operaciones de su tipo base,<br />

por lo tanto se permit<strong>en</strong> realizar asignaciones, comparaciones, pasar como parámetros<br />

<strong>en</strong> procedimi<strong>en</strong>tos y funciones e incluso ser el resultado de una función.<br />

Así, aunque el procedimi<strong>en</strong>to EscribirDiaSemana t<strong>en</strong>ía como parametro una<br />

variable de tipo tDiasSemana, la her<strong>en</strong>cia recibida por el tipo subrango permite<br />

realizar la sigui<strong>en</strong>te instrucción:<br />

type<br />

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

tLaborables = lun..vie;<br />

var<br />

d: tLaborables;<br />

...<br />

EscribirDiaSemana(d)<br />

Observaciones sobre el tipo subrango<br />

• El tipo base puede ser cualquier tipo ordinal, es decir, char, integer,<br />

boolean o un tipo <strong>en</strong>umerado definido anteriorm<strong>en</strong>te, como ocurre <strong>en</strong> el<br />

tipo tLaborables y <strong>en</strong> el sigui<strong>en</strong>te ejemplo:

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

Saved successfully!

Ooh no, something went wrong!