Pascal ofrece dos herramientas básicas para realizar programación descendente: los
procedimientos (procedure) y las funciones (function), a los que nos referiremos
genéricamente con el término de subprogramas. Turbo pascal incorpora además el concepto
de unidad (unit), que permite aprovechar módulos independientes ya compilados.
Los parámetros
Los parámetros son canales de comunicación para pasar datos ente programas y subprogramas en ambos sentidos. Los parámetros van asociados a variables. constantes, expresiones, etc., y por tanto, se indican mediante los correspondientes identificadores o expresiones. Los parámetros que se utilizan en la llamada o invocación al subprograma se denominan parámetros actuales, reales o argumentos, y son los que entregan la información al subprograma. Los parámetros que la reciben en el subprograma se denominan parámetros formales o ficticios y se declaran en la cabecera del subprograma.
En una llamada a un subprograma tiene que verificarse que:
Estructura, declaración y empleo de un procedimiento
Se declaran inmediatamente después de las variables del programa principal, teniendo la precaución de que si un subprograma referencia o llama a otro, el referenciado debe declararse primero.
Declaración de procedimientos.
Cabecera procedure nombreproced (lista de parámetros);
Declaraciones const
Locales
Type...
Var...
Cuerpo begin
end; (*obseiwar; final de proeedimiento*)
Declaración de parámetros formales.
Se declaran encerrados entre paréntesis, indicando el identificador y el tipo correspondiente asociado a cada uno, separados por ':', y terminando en ';'. La palabra reservada VAR precediendo a un identificador de parámetro formal indica al compilador que el paso del parámetro es pro VARiable. Su ausencia u omisión indica que el paso de parámetro se realiza por VALOR.
Ejem.
Procedure Identificador (PF1 :tipol ;PF2:típo2; var PW:tipo3);
PFl y PF2 se pasan por valor.
PF3 se pasa por variable.
Llamada a un procedimiento.
Se realiza desde el programa principal indicando el identificador del procedimiento seguido de la lista de parámetros actuales encerrados entre paréntesis y separados por comas.
Ejem.
Identificador (PAl ,PA2,PA3)
Ejemplo.
Procedimiento para intercambiar los valores de dos variables.
Procedure intercambio (var pfl ,p12:integer);
Var
Aux:integer; (variable local uso exclusivo en procedimiento}
Begin
Aux:=pfl;
Pfl:pf2;
Pfl: aux
End;
{La llamada a este procedimiento se haría ...}
{... por ejemplo desde el siguiente programa:}
Program Uno;
Uses crt;
Var
Entero 1 ,entero2 : integer;
Procedure intercambio (var pfl ,p12:integer);
...
begin
clrscr; {*borrado de pantalla*}
Write ('introduzca 2 variables enteras: ');
Readln(entero1,entero2);
Writeln ('valores de las variables antes de la llamada');
Writeln ('Entero 1 = ',enterol,'entero 2 = ',entero2);
intercambio (enterol,entero2); {llamada al procedimiento}
Writeln ('Valor de las variables después de la llamada');
Writeln ('entero 1 = ',enterol,'entero 2 = ',entero2);
end;
Funciones o procedimientos?
Deben utilizarse funciones cuando solo tenga que devolverse un solo valor simple al programa llamador. En todos los demás casos utilizaremos: procedimietos.
|
|