114 Subalgoritmos
variables real D, DX, DY
inicio
D ← a1 * b2 - a2 * b1
DX ← c1 * b2 - c2 * b1
DY ← a1 * c2 - a2 * c1
sol1 ← DX / D
sol2 ← DY / D
fin subrutina
Notemos que :
a1, a2, b1, b2, c1, c2 , x , y son variables globales, pero ninguna es usada como tal en la subrutina,
ya que ésta tiene variables a1, a2, b1, b2, c1, c2, sol1, sol2, D , DX y DY que son variables
locales a ella.
a1, a2, b1, b2, c1, c2 del algoritmo no son las mismas que las de la subrutina.
sol1 y sol2 son variables de salida de resultados, y dichos resultados son tomados por x e y
respectivamente del algoritmo.
Otra forma ( no conveniente ) de resolución de la subrutina sería usando a : a1, a2, b1, b2,
c1, c2 como variables globales , a saber :
Subrutina RESOLVER (S:sol1,sol2: real)
variables real D, DX, DY
Inicio
D ← a1 * b2 - a2 * b1
DX ← c1 * b2 - c2 * b1
DY ← a1 * c2 - a2 * c1
sol1 ← DX / D
sol2 ← DY / D
fin subrutina
5.9 Pasaje de información entre argumento y parámetro
Como ya mencionamos, cada vez que un algoritmo llama a un subalgoritmo, se establece
una correspondencia automática entre los argumentos y los parámetros correspondientes.
En el pasaje de estos parámetros se distinguen básicamente dos formas: pasaje por valor y
pasaje por referencia.
Pasaje de parámetros por valor: es la forma más simple de pasar los datos, donde los parámet-
ros reciben como valores iniciales una copia de los valores de los argumentos y con estos valores
se comienza a ejecutar el subalgoritmo.Por ejemplo a1, a2, b1, b2, c1, c2 del ejemplo dado en el
subcapítulo anterior: Algoritmo de resolución de un sistema de 2x2 de ecuaciones. Es decir, el
valor del argumento es pasado al parámetro correspondiente en su área de memoria, en definitiva
es una acción de asignación. Las funciones reciben los datos a través de este tipo de pasaje.
También lo hacen los parámetros de entrada en una subrutina.
Pasaje de parámetros por referencia: en lugar de pasar el valor del argumento como val-
or inicial para su respectivo parámetro, el pasaje de parámetros por referencia, también llamado
por dirección, establece una conexión directa a través de su dirección de memoria. Para distinguir