Procedimientos-y-Funciones definidos por el usuario

Anuncio
8.1.- FUNCIONES Y PROCEDIMIENTOS DEFINIDOS POR EL USUARIO EN TURBO
PASCAL.
PROCEDIMIENTOS. CONCEPTO
Un procedimiento es un programa que realiza una tarea específica. Puede recibir cero o más
valores del programa que llama y devolver cero o más valores al programa que realizó la
llamada. Un procedimiento está compuesto de un grupo de sentencias a las que se asigna
un nombre (identificador) y constituye una unidad de programa. La tarea asignada al
procedimiento se ejecuta siempre que Pascal encuentra el nombre del procedimiento.
Los procedimientos es obligatorio declararlos y deben ser declarados antes de que puedan
ser referenciados en el cuerpo del programa. En Pascal reciben el nombre de PROCEDURE.
Declaración de un procedimiento
Al igual que los identificadores, los procedimientos deben declararse dentro del cuerpo del
programa. La declaración de un procedimiento NO indica a la computadora que ejecute las
instrucciones dadas, sino que indica a la computadora cuáles son estas instrucciones y
dónde están localizadas cuando sea necesario.
El formato del procedimiento es el siguiente:
Procedure nombreproc;
Declaraciones locales
Begin
Cuerpo del procedimiento
End;
Variables Locales: son las variables que se encuentran dentro de un procedimiento.
Variables Globales: son las que se ubican en el cuerpo principal, fuera de los
procedimientos.
En resumen, un procedimiento, al igual que un programa, consta de tres partes:
Una cabecera del procedimiento: que proporciona el nombre del mismo y, en caso de
existir, una lista de parámetros formales.
Ing. Nahiby Castillo
1
Una sección de declaración: que puede contener constantes, variables e incluso otros
procedimientos.
Una sección ejecutable: el cuerpo del procedimiento.
Ejemplo:
Program Recuadro;
Var I : Integer;
Procedure Estrellas;
(* Este procedimiento visualiza 15 asteriscos *)
Begin
For I := 1 to 15 do
Write (`*´)
End;
Begin
Estrellas; (* Llamado del procedure *);
Write (`Mensajes´);
Estrellas; (* Nuevo llamado del procedure *);
End.
Ventajas de utilizar procedimientos
• La organización de un programa en procedimientos lo hace más fácil de escribir y
depurar. Los procedimientos no deben exceder de 25 líneas.
• Las ventajas de utilizar procedimientos son:
• Facilita el diseño descendente.
• Los procedimientos se pueden ejecutar más de una vez en un programa y/o en diferentes
programas, ahorrando tiempo de programación.
• El uso de procedimientos facilita la división de las tareas entre un equipo de
programadores y se pueden comprobar individualmente.
PARÁMETROS. CONCEPTO
Un parámetro es un método para pasar información (valores a variables) del programa
principal a un procedimiento y viceversa.
Ing. Nahiby Castillo
2
Un parámetro es, prácticamente, una variable cuyo valor debe ser ya sea proporcionado por
el programa principal al procedimiento o ser devuelto desde el procedimiento hasta el
programa principal. Por consiguiente, existen dos tipos de parámetros:
Parámetros de entrada: Sus valores deben ser proporcionados por el programa principal.
Parámetros de salida: Son parámetros cuyos valores se calcularán en el procedimiento y se
deben devolver al programa principal para su proceso posterior.
Transferencia de información desde y/o hasta los procedimientos
Existen dos tipos de procedimientos:
Procedimientos sin parámetros: No existe comunicación entre el programa principal y los
procedimientos ni viceversa.
Procedimientos con parámetros: Existe comunicación entre el programa principal y los
procedimientos o entre dos procedimientos.
Ejemplo 1:
Ejemplo 2:
(Parámetros de entrada)
(Parámetros de entrada/salida)
Procedure RecuadroDos (N : Integer);
El procedimiento Geometría recibe la longitud y
Var
anchura de un rectángulo, calcula el área y
J : Integer;
Begin
perímetro del rectángulo y devuelve los valores
obtenidos al programa principal.
For J := 1 to N do
Write(`*´)
End;
Procedure Geometria (Longitud, Anchura : Real;
Var Area, Perímetro : Real);
Begin
Area := Longitud * Anchura;
Perimetro := 2 * (Longitud + Anchura)
End;
FUNCIONES EN TURBO PASCAL
Una función es un subprograma que recibe como argumentos o parámetros datos de un tipo
numérico o no numérico (char, string, bolean u otros) y devuelve un resultado. Esta
característica le diferencia de un procedimiento.
Ing. Nahiby Castillo
3
El pseudocódigo es el siguiente:
Nombre_función (argumento1,argumento2,...);
Los argumentos es lo que se conoce en Pascal como parámetros. Para poder calcular el
valor o resultado de la función, todo lo que se necesita conocer es el valor o valores de los
parámetros respectivos.
Funciones definidas por el usuario
Además de las funciones predefinidas citadas anteriormente, es posible que el usuario pueda
declarar sus propias funciones de igual modo que declara sus procedimientos.
Una función es un subprograma que devuelve un único resultado al programa o subprograma
que le llamó.
EXISTEN 3 CLASES USUALES DE FUNCIONES.
•
Las primeras son de tipo computacional que son diseñadas para realizar operaciones con
los argumentos y regresan un valor basado en el resultado de esa operación.
•
Las segundas funciones son aquellas que manipulan información y regresan un valor que
indican la terminación o la falla de esa manipulación.
•
Las terceras son aquellas que no regresan ningún valor, es decir son estrictamente
procedurales.
La sintaxis es muy similar a la de un procedimiento.
Function nombre (parámetros): tipo
(declaración de variables locales)
begin
<cuerpo de la función>
nombre de la función := valor de la función
end;
p1,p2,... lista de parámetros formales
tipo
tipo de dato del resultado
que devuelve la función
Ing. Nahiby Castillo
4
Comparación entre funciones y procedimientos
• En vez de la palabra procedure se debe utilizar la palabra function
• Al igual que en los procedimientos, el nombre de una función es un identificador. Sin
embargo, el nombre de la función se refiere a la posición de memoria que contiene el
valor devuelto por la función.
• La lista de los parámetros formales son los identificadores utilizados para recibir valores
del programa.
• El tipo de datos del resultado coincide con el tipo expresado en la cabecera de la función.
• En el cuerpo de la función tiene que existir una sentencia de asignación como la siguiente:
Nombre_función := valor_función
• La función sólo devuelve un valor, el procedimiento puede devolver cero, uno o varios
valores.
• El tipo de dato del resultado de la función debe estar indicado en la cabecera y puede ser
tipo char, integer, real o bolean.
Ejemplo:
Program Cubo;
Uses
Wincrt;
Var
Num,valor : integer;
Function El_cubo (Numero: integer):integer;
Begin
valor := Num*Num*Num;
End;
Begin
Write ('Digite un número entero: ');
Readln (Num);
El_cubo(Num);
Write ('El cubo de ',Num,' es ',valor);
End.
Ing. Nahiby Castillo
5
Descargar