Please enable JavaScript.
Coggle requires JavaScript to display documents.
6.5. COMUNICACIÓN CON SUBPROGRAMAS: PASO DE PARÁMETROS - Coggle Diagram
6.5. COMUNICACIÓN CON SUBPROGRAMAS: PASO DE PARÁMETROS
Cuando un programa llama a un subprograma, la información se comunica a través de la lista de parámetros y se
establece una correspondencia automática entre los parámetros formales y actuales. Los parámetros actuales son
“sustituidos” o “utilizados” en lugar de los parámetros formales.
La declaración del subprograma se hace con
6.5.2. Paso por valor
El paso por valor se utiliza en muchos lenguajes de programación; por ejemplo, C, Modula-2, Pascal, Algol y Snobol.
La razón de su popularidad es la analogía con los argumentos de una función, donde los valores se proporcionan en
el orden de cálculo de resultados. Los parámetros se tratan como variables locales y los valores iniciales se propor-
cionan copiando los valores de los correspondientes argumentos.
Los parámetros formales —locales a la función— reciben como valores iniciales los valores de los parámetros
actuales y con ello se ejecutan las acciones descritas en el subprograma.
No se hace diferencia entre un argumento que es variable, constante o expresión, ya que sólo importa el valor del
argumento. La Figura 6.6 muestra el mecanismo de paso por valor de un procedimiento con tres parámetros.
6.5.3. Paso por referencia
En numerosas ocasiones se requiere que ciertos parámetros sirvan como parámetros de salida, es decir, se devuelvan
los resultados a la unidad o programas que llama. Este método se denomina paso por referencia o también de llama-
da por dirección o variable. La unidad que llama pasa a la unidad llamada la dirección del parámetro actual (que
está en el ámbito de la unidad llamante). Una referencia al correspondiente parámetro formal se trata como una re-
ferencia a la posición de memoria, cuya dirección se ha pasado. Entonces una variable pasada como parámetro real
es compartida, es decir, se puede modificar directamente por el subprograma.
6.5.1. Paso de parámetros
Existen diferentes métodos para la transmisión o el paso de parámetros a subprogramas. Es preciso conocer el mé-
todo adoptado por cada lenguaje, ya que la elección puede afectar a la semántica del lenguaje. Dicho de otro modo,
un mismo programa puede producir diferentes resultados bajo diferentes sistemas de paso de parámetros.
Los parámetros pueden ser clasificados como:
Existen dos métodos para establecer la correspondencia de parámetros:
Correspondencia posicional. La correspondencia se establece aparejando los parámetros reales y formales
según su posición en las listas: así, Fi se corresponde con Ai, donde i = 1, 2, ..., n. Este método
tiene algunas desventajas de legibilidad cuando el número de parámetros es grande.
Correspondencia por el nombre explícito, también llamado método de paso de parámetros por nombre. En
este método, en las llamadas se indica explícitamente la correspondencia entre los parámetros reales y forma-
les. Este método se utiliza en Ada. Un ejemplo sería:
entradas: las entradas proporcionan valores desde el programa que llama y que se utilizan dentro
de un procedimiento. En los subprogramas función, las entradas son los argumentos en
el sentido tradicional;
salidas: las salidas producen los resultados del subprograma; de nuevo si se utiliza el caso de
una función, éste devuelve un valor calculado por dicha función, mientras que con pro-
cedimientos pueden calcularse cero, una o varias salidas;
entradas/salidas: un solo parámetro se utiliza para mandar argumentos a un programa y para devolver
resultados.
6.5.4. Comparaciones de los métodos de paso de parámetros
Para examinar de modo práctico los diferentes métodos, consideremos un ejemplo único y veamos los diferentes
valores que toman los parámetros. El algoritmo correspondiente con un procedimiento SUBR:
6.5.5. Síntesis de la transmisión de parámetros
Los métodos de transmisión de parámetros más utilizados son por valor y por referencia.
El paso de un parámetro por valor significa que el valor del argumento —parámetro actual o real— se asigna al
parámetro formal. En otras palabras, antes de que el subprograma comience a ejecutarse, el argumento se evalúa a
un valor específico (por ejemplo, 8 o 12). Este valor se copia entonces en el correspondiente parámetro formal den-
tro del subprograma.