5.6 Memoria para los subalgoritmos 111
Ejemplo 2: Parámetros y argumentos en la subrutina división
subrutina división (E: dividendo, divisor: entero; S: cociente, resto: entero )
inicio
cociente ← dividendo div divisor
resto ← dividendo mod divisor
fin subrutina división
La utilización o llamada a la subrutina podría ser de la siguiente manera:
división (m,n,p,q )
En este caso la correspondencia entre argumentos y parámetros es m con dividendo, n con divisor,
p con cociente, q con resto.
Otra llamada podría ser:
división (m*n-4, n+1, s, t )
En este caso la correspondencia entre argumentos y parámetros es m*n-4 con dividendo, n+1
con divisor, s con cociente, t con resto. Se debe notar que los 2 últimos argumentos deben ser
variables pues reciben información desde la subrutina.
5.6 Memoria para los subalgoritmos
Siempre que un subalgoritmo es llamado se crea un espacio de memoria principal (RAM)
temporal para cada uno de los parámetros y variables locales del mismo. Cada parámetro es
inicializado con el valor del argumento correspondiente en el enunciado de llamada. Después de
esta inicialización, el procesador ejecuta el cuerpo del subalgoritmo.
Las celdas de memoria del subalgoritmo pueden ser pensadas como espacios temporales de
escritura, porque cuando el procesador finaliza el subalgoritmo, estas celdas de memoria son
liberadas y sus contenidos se pierden.Aclaración: la palabra temporal aquí tiene significado de
“poco tiempo”, momentáneo.
5.7 Parámetros formales y actuales con igual nombre
Ya sabemos que las variables que usa un subalgoritmo residen en memoria principal de tipo
RAM, y con ellas trabaja el procesador en su ejecución.
Cuando se llama a un subalgoritmo, el procesador le dispone de un sector de memoria dis-
tinto al del programa llamador. Por ello el subalgoritmo tiene su propio segmento de memoria
para colocar los parámetros formales y toda otra variable que necesite.
¿Qué pasa cuando en el algoritmo existen variables cuyos nombres coinciden con algunas
del subalgoritmo? La respuesta es simple: no hay problema. Esto es debido a que están en
lugares de memoria distintos, en distintos ámbitos. Por esta misma razón los nombres de los
parámetros y los argumentos pueden ser distintos o no.
Veamos un ejemplo con la función Potencia ya definida.