Uno de los métodos fundamentales para resolver un problema es

Anuncio
Escuela de Educación Técnica Nº2 – Modelos y Sistemas
Pasaje de parámetros - Pascal
Diseño modular: procedimientos y funciones
Uno de los métodos fundamentales para resolver un problema es dividirlo en
problemas más pequeños, llamados subproblemas. Estos problemas pueden a su vez ser
divididos repetidamente en problemas más pequeños hasta que los problemas más
pequeños son solucionados.
Los subproblemas o módulos se diseñan con subprogramas que a su vez se clasifican
en procedimientos y funciones.
El proceso de descomposición de un problema en módulos se conoce como
modulación y la programación relativa a ellos programación modular.
Los procedimientos y funciones que sirven para realizar los módulos son similares
aunque presentan notables diferencias entre ellos:
1) Las funciones devuelven un solo valor a la unidad de programa que los
referencia. Los procedimientos pueden devolver cero, uno o más valores. En
el caso de no devolver ningún valor, realiza alguna tarea tal como alguna
operación de salida o de entrada.
2) A un nombre de procedimiento no se puede asignar un valor, y por
consiguiente ningún tipo está asociado con un nombre de procedimiento.
3) Una función se referencia utilizando su nombre en una expresión, mientras
que un procedimiento se referencia por una llamada o invocación al mismo.
Un procedimiento es un subprograma que realiza una tarea específica. Puede recibir
cero o más valores del programa que llama y devolver cero o más valores a dicho
programa llamador. Un procedimiento está compuesto de un grupo de sentencias a las
que se asigna un nombre(identificador) y constituye una unidad de programa.
Todos los procedimientos se deben declarar dentro del cuerpo del programa. La
declaración de un procedimiento no indica a la computadora que ejecute las
instrucciones dadas sino que indica cuáles son las instrucciones que contiene y dónde
están ubicadas cuando sean necesarias.
Declaración de un procedimiento
Procedure nombreproc(lista de parámetros formales);
declaraciones locales
begin
cuerpo del procedimiento
end;
Llamada al procedimiento:
Los procedimientos se llaman dentro de un programa o de otro procedimiento
directamente por su nombre.
Ej.
nombreproc(lista de parámetros actuales)
La sentencia nombreproc inicia la ejecución, se ejecuta la sentencia que sigue a la
llamada al procedimiento.
Un procedimiento, igual que un programa, consta de tres partes:
1) Una cabecera del proporciona el nombre del mismo y caso de existir, una lista
de parámetros formales.
Escuela de Educación Técnica Nº2 – Modelos y Sistemas
Pasaje de parámetros - Pascal
2) Una sección de declaración que puede contener constantes, variables e incluso
otros procedimientos.
3) Una sección ejecutable: el cuerpo del procedimiento.
Parámetros actuales:
Las sentencias llamadas a procedimientos constan de dos partes: un nombre de
procedimiento y una lista de parámetros llamados actuales.
Nombreproc(pa1,pa2,pa3…);
Los parámetros actuales pa1, pa2, pa3…tienen que tener unos valores que se pasan al
procedimiento nombreproc.
En la declaración de un procedimiento cuando se incluyen parámetros estos se
denominan parámetros formales o ficticios (pf1,pf2, …). Ellos sirven para contener los
valores de los parámetros actuales cuando se invoca el procedimiento.
Procedure nombreproc(pf1, pf2,pf3,…)
El valor de los parámetros actuales no se conoce cuando se declara el procedimiento;
sin embargo, cuando se ejecuta la sentencia de llamada al procedimiento es preciso que
tengan valores asignados, ya que en caso contrario se producirá error.
Correspondencia de parámetros
Los parámetros actuales en la invocación del procedimiento deben coincidir en número,
orden y tipo con los parámetros ficticios de la declaración del procedimiento. Es decir,
debe existir una correspondencia entre parámetros actuales y ficticios.
Program correspondencia;
Var
X,Y,A,P:real;
Procedure Geometría (longitud, anchura:real; var area, perímetro:real);
begin
area:=longitud*anchura;
perímetro:= 2*(longitud+anchura);
end;
begin
writeln(‘Introducir longitud’);
readln(X);
writeln(‘Introducir anchura’);
readln(Y);
geometria(X,Y,A,P); {llamada al procedimiento}
writeln(‘El área es ’, A:6:2);
writeln(‘El perímetro es ’, P:6:2);
end.
Los nombres de los parámetros actuales y formales pueden ser los mismos, aunque se
recomienda sean diferentes a efectos de la legibilidad del programa.
Descargar