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.

19.3. Metodología de la programación de TADs 441<br />

Ante estos problemas, es necesario recurrir a l<strong>en</strong>guajes más precisos, como<br />

puede ser el l<strong>en</strong>guaje matemático, que posee las v<strong>en</strong>tajas de su precisión, concisión<br />

y universalidad (aunque <strong>en</strong> su contra se podría argum<strong>en</strong>tar su dificultad<br />

de uso, lo cierto es que <strong>en</strong> los niveles tratados <strong>en</strong> este libro no es preciso un fuerte<br />

aparato matemático). Por ejemplo, algunas de las operaciones del tipo abstracto<br />

tConj se han especificado como sigue:<br />

procedure CrearConj(var conj: tConj);<br />

{Efecto: conj:= ∅}<br />

procedure AnnadirElemConj(elem: integer; var conj: tConj);<br />

{Efecto: conj:= conj ∪ [elem]}<br />

function Pert<strong>en</strong>ece (elem: tElem; conj: tConj): boolean;<br />

{Dev. True (si elem ∈ conj) o False (<strong>en</strong> otro caso)}<br />

function EstaVacioConj(conj: tConj): boolean;<br />

{Dev. True (si conj = ∅) o False (<strong>en</strong> otro caso)}<br />

Obsérvese que la sintaxis de su uso vi<strong>en</strong>e dada por los <strong>en</strong>cabezami<strong>en</strong>tos de<br />

las operaciones y que su semántica se da <strong>en</strong> el com<strong>en</strong>tario que les sigue. Las<br />

especificaciones de esta forma proporcionan un modelo más o m<strong>en</strong>os formal que<br />

describe el comportami<strong>en</strong>to de las operaciones sin ningún tipo de ambigüedad.<br />

Además, se satisfac<strong>en</strong> las dos propiedades que deb<strong>en</strong> cumplir las especificaciones:<br />

precisión y brevedad.<br />

Por último, se debe resaltar la importancia de la especificación como medio<br />

de comunicación <strong>en</strong>tre el programador-diseñador del tipo abstracto de datos, el<br />

implem<strong>en</strong>tador y el programador-usuario: como se ha repetido anteriorm<strong>en</strong>te, la<br />

información pública del tipo abstracto de datos debe ser únicam<strong>en</strong>te su especificación.<br />

Así, una especificación incorrecta o incompleta impedirá a los implem<strong>en</strong>tadores<br />

programar adecuadam<strong>en</strong>te el tipo abstracto de datos, mi<strong>en</strong>tras que los<br />

programadores-usuarios serán incapaces de predecir correctam<strong>en</strong>te el comportami<strong>en</strong>to<br />

de las operaciones del tipo, lo que producirá errores al integrar el tipo<br />

abstracto de datos <strong>en</strong> sus programas.<br />

19.3.2 Implem<strong>en</strong>tación de tipos abstractos de datos<br />

Como se indicó anteriorm<strong>en</strong>te, la tercera etapa de la abstracción de datos<br />

es la implem<strong>en</strong>tación del tipo de acuerdo con la especificación elaborada <strong>en</strong> la<br />

etapa anterior.

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

Saved successfully!

Ooh no, something went wrong!