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.

9.3. Metodología de la programación con subprogramas 193<br />

SumarFracciones y SimplificarFraccion son totalm<strong>en</strong>te indep<strong>en</strong>di<strong>en</strong>tes <strong>en</strong>tre<br />

sí, de manera que ambas pued<strong>en</strong> usarse y verificarse por separado. Se facilita<br />

así la legibilidad del programa y la posibilidad de modificar alguna de<br />

sus partes sin preocuparnos por los efectos o la repercusión de éstas sobre otros<br />

subprogramas. Supongamos que <strong>en</strong> vez de sumar hubiera que multiplicar fracciones;<br />

bastaría <strong>en</strong>tonces con sustituir SumarFraccion por un nuevo procedimi<strong>en</strong>to<br />

MultiplicarFraccion, quedando el resto del programa inalterado.<br />

También se facilita el mant<strong>en</strong>imi<strong>en</strong>to del programa, puesto que las modificaciones<br />

necesarias afectarán solam<strong>en</strong>te a algunos subprogramas.<br />

En la programación con subprogramas debe at<strong>en</strong>derse a los sigui<strong>en</strong>tes aspectos:<br />

• El cometido de cada subprograma, que se refleja <strong>en</strong> la interfaz y <strong>en</strong> la<br />

especificación.<br />

• El desarrollo del subprograma <strong>en</strong> sí, que es un aspecto privado, oculto al<br />

exterior.<br />

• Los objetos que surjan <strong>en</strong> este desarrollo son particulares del subprograma,<br />

por lo que deb<strong>en</strong> ocultarse al exterior. Esta ocultación de la información<br />

consiste <strong>en</strong> que los objetos y acciones particulares de los subprogramas<br />

sean inaccesibles desde el exterior. Cada subprograma pasa a constituir<br />

una caja negra <strong>en</strong> la que se introduc<strong>en</strong> unos datos y de la que se extra<strong>en</strong><br />

unos resultados pero sin poder ver lo que pasa d<strong>en</strong>tro.<br />

• Como consecu<strong>en</strong>cia, toda la comunicación con los subprogramas se debe<br />

realizar únicam<strong>en</strong>te a través de los parámetros, alcanzándose <strong>en</strong>tonces la<br />

indep<strong>en</strong>d<strong>en</strong>cia de los subprogramas <strong>en</strong>tre sí. La indep<strong>en</strong>d<strong>en</strong>cia es deseable<br />

al facilitar el desarrollo del programa, su compr<strong>en</strong>sión y verificación, su<br />

mant<strong>en</strong>imi<strong>en</strong>to y reutilización posterior.<br />

• En el desarrollo de subprogramas es corri<strong>en</strong>te que surja la necesidad de<br />

crear nuevos subprogramas . . , dando lugar a una estructura jerárquica<br />

derivada de la aplicación de las técnicas de diseño desc<strong>en</strong>d<strong>en</strong>te.<br />

9.3.1 Diseño desc<strong>en</strong>d<strong>en</strong>te con subprogramas<br />

La división de un algoritmo <strong>en</strong> subprogramas requiere un proceso de abstracción<br />

por el que se usan, como si existieran, subalgoritmos sin concretar todavía.<br />

Debe <strong>en</strong>tonces establecerse la interfaz y el cometido (especificación) de ese subprograma,<br />

que constituye su <strong>en</strong>unciado y que será útil para su posterior concreción<br />

y verificación según las ideas dadas <strong>en</strong> el apartado 8.7.

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

Saved successfully!

Ooh no, something went wrong!