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

Ambito « de la modificaci—n<br />

L’neas de c—digo afectadas<br />

Figura 9.3.<br />

Si la descomposición del problema es correcta, cada subprograma se ti<strong>en</strong>e que<br />

corresponder con una cierta acción abstracta funcionalm<strong>en</strong>te indep<strong>en</strong>di<strong>en</strong>te de<br />

las demás que puede ser desarrollada y probada por separado. Para conseguirlo<br />

se debe analizar la estructura del programa, disminuy<strong>en</strong>do la dep<strong>en</strong>d<strong>en</strong>cia mediante<br />

la integración de aquellos subprogramas que utilic<strong>en</strong> espacios o estructuras<br />

comunes de datos y fraccionando aquéllos que agrup<strong>en</strong> tareas difer<strong>en</strong>tes.<br />

El tamaño de los subprogramas es uno de los aspectos que más influy<strong>en</strong> <strong>en</strong><br />

el esfuerzo requerido por las operaciones de mant<strong>en</strong>imi<strong>en</strong>to de un programa. Si<br />

un programa está formado por subprogramas de tamaño reducido los efectos<br />

de una modificación afectarán a m<strong>en</strong>os líneas de código, aunque probablem<strong>en</strong>te<br />

aum<strong>en</strong>te el número de subprogramas a los que éstas pert<strong>en</strong>ec<strong>en</strong>, como se ve <strong>en</strong><br />

la figura 9.3.<br />

9.3.5 Refinami<strong>en</strong>to con subprogramas y con instrucciones<br />

estructuradas<br />

Aplicando todo esto a nuestro ejemplo, y una vez que los distintos niveles han<br />

quedado refinados, pasamos a desarrollar las acciones y expresiones abstractas<br />

que compon<strong>en</strong> los subprogramas utilizando las instrucciones estructuradas, como<br />

<strong>en</strong> el cálculo del máximo común divisor según Euclides:<br />

function MCD(n, d: integer): integer;<br />

{PreC.: n = 0 y d = 0}<br />

{Dev. el m.c.d. de n y d}

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

Saved successfully!

Ooh no, something went wrong!