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
Created with BuildVu