Procedimientos y Funciones

La Programación estructurada trata de dividir el programa en bloques más pequeños, buscando una mayor legibilidad, y más comodidad a la hora de corregir o ampliar. 

En el lenguaje Pascal, estos bloques serán de dos tipos: procedimientos (procedure) y funciones(function).

La diferencia entre ellos es que un procedimiento ejecuta una serie de acciones que están relacionadas entre sí, y no devuelve ningún valor, mientras que la función sí que va a devolver valores.

Ejemplo:

 

procedure Acceso;
var

    clave: string; (* Esta variable es local *)
begin
    writeln(' Bienvenido a SuperAgenda ');
    writeln('=========================='); (* Para subrayar *)

    writeln; writeln; (* Dos líneas en blanco *)
    writeln('Introduzca su clave de acceso');
    readln( clave ); (* Lee un valor *)

    if clave <> ClaveCorrecta then (* Compara con el correcto *)
        begin (* Si no lo es *)
        writeln('La clave no es correcta!'); (* avisa y *)

        exit (* abandona el programa *)
        end
end;

comentarios sobre este ejemplo:

  • El cuerpo de un procedimiento se encierra entre "begin" y "end", igual que las sentencias compuestas y que el propio cuerpo del programa.
  • Un procedimiento puede tener sus propias variables, que llamaremos variables locales, frente a las del resto del programa, que son globales. Desde dentro de un procedimiento podemos acceder a las variables globales (como ClaveCorrecta del ejemplo anterior), pero desde fuera de un procedimiento no podemos acceder a las variables locales que hemos definido dentro de él.
  • La orden exit, que no habíamos visto aún, permite interrumpir la ejecución del programa (o de un procedimiento) en un determinado momento.

Funciones

Una función es un módulo de un programa separado del cuerpo principal, que realiza una tarea específica y que puede regresar un valor a la parte principal del programa u otra función o procedimiento que la invoque.

La forma general de una función es:

Function NomFuncion(parametros): tipodatoregresa;

Begin

Instrucciones;

End;

Donde tipodato específica el tipo de dato que regresara la función.

Y el NomFuncion tiene dos papeles en pascal:

A) Es el nombre que se invocará dentro del principal o de algún procedimiento u otra función .

B) Es también una variable que deberá cargarse dentro del cuerpo de instrucciones (begin ..end) para que pueda regresar el dato o resultado al principal o procedimiento o función que la este invocando.

 

La lista de parámetros formales es una lista de variables separadas por punto y coma ( ;) que almacenarán los valores que reciba la función, estas variables actúan como locales dentro del cuerpo de la función.

Ejemplo

program moneda;

uses crt;

var

euro:real;

FUNCTION euros(bolivares,tc:real):real;

begin

euros := bolivares /tc;

end;

begin

clrscr;

(* llamando funcion y cargando resultado *)

euro := euros(8.43 , 11.25);

write('SON ',euro:0:2, ' EUROS');

readln;

end.

EXISTEN 3 CLASES USUALES DE FUNCIONES.

*Las primeras son de tipo computacional que son disadas 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 estrictamenta procedurales.

Esto quiere decir que en general toda operación o cálculo en un programa deberá convertirse a una o muchas funciones y el resto deberan ser procedimientos.

REALIZAR ACTIVIDAD PRÁCTICA PROGRAMACIÓN PASCAL

1.- Capturar 3 calificaciones y nombre en un procedimiento, calcular promedio en una función, desplegar en otro procedimiento.

2.- Crear una tabla de multiplicar, captura y control de ciclo en el principal, operaciones en una función, despliegue en el principal.