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.

168 Capítulo 8. Procedimi<strong>en</strong>tos y funciones<br />

En el paso de parámetros por refer<strong>en</strong>cia,<br />

procedure Increm<strong>en</strong>tarYescribir (var v: integer);<br />

begin<br />

v:= v + 1;<br />

WriteLn(v)<br />

<strong>en</strong>d; {Increm<strong>en</strong>tarYescribir}<br />

la sigui<strong>en</strong>te llamada produce esta salida:<br />

w:= 5<br />

WriteLn(w); 5<br />

Increm<strong>en</strong>tarYescribir(w); 6<br />

WriteLn(w) 6<br />

En este segundo caso, al tratarse de parámetros por refer<strong>en</strong>cia, el espacio <strong>en</strong><br />

memoria de w coincide durante la llamada con el de v; por ello, el increm<strong>en</strong>to de<br />

v se efectúa también sobre w. Al terminar el procedimi<strong>en</strong>to, w ti<strong>en</strong>e el valor 6.<br />

8.2.4 Consist<strong>en</strong>cia <strong>en</strong>tre definición y llamada<br />

Es imprescindible que la definición y la llamada a un subprograma <strong>en</strong>caj<strong>en</strong>:<br />

para ello, la llamada debe efectuarse utilizando el mismo id<strong>en</strong>tificador definido<br />

para el subprograma, seguido <strong>en</strong>tre paréntesis de los parámetros, separados por<br />

comas. Estos argum<strong>en</strong>tos reales deberán coincidir con los parámetros formales<br />

<strong>en</strong> número y ser respectivam<strong>en</strong>te del mismo tipo. Como dijimos antes, los<br />

argum<strong>en</strong>tos reales correspondi<strong>en</strong>tes a parámetros formales por valor podrán ser<br />

expresiones cualesquiera (con el requisito, ya m<strong>en</strong>cionado, de t<strong>en</strong>er el mismo<br />

tipo):<br />

WriteLn(n + 2)<br />

En cambio, los argum<strong>en</strong>tos correspondi<strong>en</strong>tes a parámetros formales por refer<strong>en</strong>cia<br />

deberán ser necesariam<strong>en</strong>te variables, para que las modificaciones efectuadas <strong>en</strong><br />

el subprograma repercutan <strong>en</strong> el espacio de memoria asociado a las variables<br />

argum<strong>en</strong>tos. Como contraejemplo, obsérvese la sigui<strong>en</strong>te llamada imposible:<br />

ReadLn(n + 2)<br />

En el caso de las funciones, el tipo del resultado devuelto debe, además,<br />

<strong>en</strong>cajar <strong>en</strong> la llamada efectuada.

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

Saved successfully!

Ooh no, something went wrong!