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.

200 Capítulo 9. <strong>Programación</strong> con subprogramas<br />

.<br />

.<br />

.<br />

.<br />

F G<br />

H<br />

.<br />

.<br />

(Subrutina)<br />

Figura 9.5.<br />

...<br />

H<br />

F<br />

G<br />

...<br />

Los objetos propios del programa principal se llaman globales y los objetos de<br />

un bloque que ti<strong>en</strong>e otro anidado son no locales con respecto a este último. Desde<br />

los subprogramas subordinados de un determinado nivel se puede acceder a los<br />

objetos globales y no locales, permiti<strong>en</strong>do la utilización de espacios comunes<br />

de datos, <strong>en</strong> cuyo caso disminuiría la deseable indep<strong>en</strong>d<strong>en</strong>cia funcional de los<br />

subprogramas. En g<strong>en</strong>eral debe evitarse este tipo de acceso, aunque <strong>en</strong> ciertos<br />

casos pueda estar justificado.<br />

Supongamos, por ejemplo, que dos o más subprogramas situados <strong>en</strong> un mismo<br />

nivel t<strong>en</strong>gan un mismo subprograma subordinado, como se muestra <strong>en</strong> la figura<br />

9.5.<br />

En este caso, el subprograma subordinado no puede estar anidado d<strong>en</strong>tro<br />

de uno de los subprogramas superiores, pues no podría ser llamado por el otro.<br />

Ti<strong>en</strong>e que estar al mismo nivel que los subprogramas que lo llaman. Algunos<br />

autores d<strong>en</strong>ominan subrutinas a este tipo de subprogramas con grado de <strong>en</strong>trada<br />

mayor que uno para difer<strong>en</strong>ciarlos de los subprogramas. El uso de subrutinas<br />

puede justificar la vulneración del principio de máxima localidad (véase el apartado<br />

8.5.3).<br />

Los parámetros son objetos locales de los subprogramas a través de los cuáles<br />

se comunican con sus subprogramas superiores. Cuando el subprograma superior<br />

efectúa una llamada a su subordinado, además de su nombre debe incluir aquellos<br />

objetos cuyos valores van a ser utilizados por el subprograma subordinado. Este<br />

proceso se conoce como paso de parámetros y puede hacerse básicam<strong>en</strong>te de dos<br />

formas:<br />

• En la primera, el subprograma recibe únicam<strong>en</strong>te el valor de los objetos,<br />

por lo que no puede modificarlos.<br />

• En la segunda, el subprograma recibe la dirección de los objetos, por lo

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

Saved successfully!

Ooh no, something went wrong!