La comunicación entre un programa principal y un subprograma se realiza a través de parámetros, donde los parámetros formales del subprograma se corresponden con los parámetros actuales del programa principal. Existen dos métodos de correspondencia de parámetros: posicional y por nombre. Los efectos laterales son modificaciones fuera del subprograma a través de variables globales, lo cual se debe evitar excepto en casos contados, ya que dificulta la comprensión del programa.
2. COMUNICACIÓN CON SUBPROGRAMAS:
La comunicion se da 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.
3. Sintaxis para el llamado de un
subprograma:
La declaración del subprograma se hace con:
procedimiento nombre (clase tipo_de_dato: F1
clase tipo_de_dato: F2
..................
.......... ... ...
clase . . . .
Fin_procedimiento
Y la llamada al subprograma con
Llamar_a nombre (A1, A2, ...,An)
Donde F1, F2, . . . Fn son los parámetros formales y A1,
A2, . . . . , An los parámetros actuales o reales.
4. Existen dos métodos para establecer
la correspondencia de parámetros
• Correspondencia posicional: es la que se utiliza
en C. La correspondencia se establece
emparejando los parámetros reales y formales,
según su posición en las listas. Fi se corresponde
con Ai (F: formal, A: actual).
• Correspondencia por el nombre explicito o
método de paso de parámetros por el nombre.
En este método en las llamadas se indica
explícitamente la correspondencia entre los
parámetros reales y formales.
• SUB (Y=>B , X=>30);
5. LOS EFECTOS LATERALES
Las modificaciones que se produzcan mediante una
función o procedimiento en los elementos
situados fuera del subprograma (función o
procedimiento) se denominan efectos laterales.
Aunque
en algunos casos los efectos laterales pueden ser
beneficiosos en la programación, es conveniente
no recurrir a ellos de modo general. Consideramos a
continuación los efectos laterales en
funciones y en procedimientos.
6. EFECTOS LATERALES EN FUNCIONES
• Efectos laterales en funciones: Una función toma los
valores de los argumentos y devuelve un único valor.
Sin embargo, al igual que en los procedimientos, una
función puede hacer cosas similares a ellos.
• Una función puede tener parámetros variables,
además de parámetros valor (no devuelven nada) en
una lista de parámetros formales. Una función puede
cambiar el contenido de una variable global y ejecutar
instrucciones de E/S. Estas operaciones se conocen
como parámetros laterales y se deben evitar.
7. EFECTOS LATERALES EN PROCEDIMIENTOS
• Efectos laterales en procedimientos: La
comunicación del procedimiento con el programa
se debe realizar atreves de parámetros. Si un
procedimiento modifica una variable global
(distinta de un parámetro actual) esto es un
efecto lateral, por ello excepto en contadas
ocasiones, no debe aparecer en la declaración del
procedimiento. Si se necesita una variable
temporal en un procedimiento es mejor utilizar
una variable local, que habría que declarar en el
procedimiento.