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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

8.2. Subprogramas con parámetros 165<br />

begin<br />

divisor:= 2;<br />

conDivisores:= False;<br />

repeat<br />

if n mod divisor = 0 th<strong>en</strong><br />

conDivisores:= True;<br />

divisor:= divisor + 1<br />

until conDivisores or (divisor > n - 1);<br />

EsPrimo:= not conDivisores<br />

<strong>en</strong>d; {EsPrimo}<br />

En su funcionami<strong>en</strong>to se supone inicialm<strong>en</strong>te que el número es primo, ya que<br />

aún no se ha <strong>en</strong>contrado divisor alguno del mismo; a continuación, se avanza<br />

desde 2, tanteando posibles divisores, hasta dar con uno (<strong>en</strong> cuyo caso la condición<br />

conDivisores se hace cierta), o llegar al propio n, sin haber hallado<br />

divisor alguno del mismo (<strong>en</strong> cuyo caso el número es primo). 5<br />

8.2.2 Parámetros formales y reales<br />

Recordando los dos aspectos de definición y llamada que <strong>en</strong>contramos <strong>en</strong> los<br />

subprogramas, t<strong>en</strong>emos que distinguir dos tipos de parámetros.<br />

Cuando se define un subprograma es necesario dar nombres a los parámetros<br />

para poder m<strong>en</strong>cionarlos. A los parámetros utilizados <strong>en</strong> la definición de procedimi<strong>en</strong>tos<br />

y funciones se les d<strong>en</strong>omina parámetros formales. A veces se llaman<br />

también ficticios, pues se utilizan solam<strong>en</strong>te a efectos de la definición pero<br />

no con valores reales. En nuestro ejemplo de refer<strong>en</strong>cia, angSexa y valor son<br />

parámetros formales de la función TanGrados y del procedimi<strong>en</strong>to EscrDosDec<br />

respectivam<strong>en</strong>te.<br />

En cambio, a los argum<strong>en</strong>tos concretos utilizados <strong>en</strong> la llamada de un subprograma<br />

se les llama parámetros reales. 6 Por ejemplo, a ytson los parámetros reales<br />

de la función TanGrados y del procedimi<strong>en</strong>to EscrDosDec, respectivam<strong>en</strong>te,<br />

<strong>en</strong> las llamadas que se hac<strong>en</strong> <strong>en</strong> el ejemplo anterior.<br />

8.2.3 Mecanismos de paso de parámetros<br />

Antes de <strong>en</strong>trar <strong>en</strong> materia convi<strong>en</strong>e que nos fijemos <strong>en</strong> los procedimi<strong>en</strong>tos<br />

Read yWrite que vamos a aplicar a una cierta variable <strong>en</strong>tera a la que llamaremos<br />

a.<br />

5 En realidad, no es necesario comprobar todos los divisores desde 2 hasta n − 1, sino que<br />

bastará con comprobar hasta la raíz cuadrada de n, como puede confirmar fácilm<strong>en</strong>te el lector.<br />

6 En inglés, actual parameters, lo que ha dado lugar <strong>en</strong> ocasiones a la traducción errónea<br />

“parámetros actuales” <strong>en</strong> castellano.

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

Saved successfully!

Ooh no, something went wrong!