TURBO PASCAL
  7) Procedimiento y Función
 

TURBO PASCAL

7) Procedimiento y Función

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. 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í va a devolver valores.

  • Procedimiento:

Su sintaxis es la siguiente:

Procedure identificador (parámetros);
Var
    
Variables locales;
Begin
    
Sentencias;
End;

Veamos este ejemplo:

Program Acceso;
Uses
     CRT;
Const
    
ClaveCorrecta = 1    (Esta constante es global)

Procedure Password;
Var
    
clave:integer;    (Esta variable es local)
Begin
     Writeln ('
Introduzca su clave de acceso');
     Readln (
clave);
     If
clave<>ClaveCorrecta then
          Begin
               Writeln ('
La clave no es correcta!');
               Exit
          End;
End;

Begin
     CLRSCR;
    
Password;
     Readln;
End.

- 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.

Veamos este otro ejemplo:

Program Numeros;
Uses
     CRT;

Procedure Inicio(X1,Y1,Z1:integer);
Begin
    
X:=X1; Y:=Y1; Z:=Z1
End;

Begin
     CLRSCR;
    
Inicio(1,2,3);
     Writeln ('
X=', X, ' Y=', Y, ' Z=', Z');
    
Inicio(4,5,6);
     Writeln ('
X=', X, ' Y=', Y, ' Z=', Z');
     Readln;
End.

  • Función:

Su sintaxis es la siguiente:

Procedure identificador (parámetros): tipo;
Var
    
Variables locales;
Begin
    
Sentencias;
End;

Veamos este ejemplo:

Program Sumatoria;
Uses
     CRT;
Var
    
Z:integer;   

Function Suma (X1, X2 : integer) : integer;
Begin
    
Suma:= X1 + X2;
End;

Begin
     CLRSCR;
    
Z:=Suma(1,1);
     Writeln ('
1+1=',Z);
     Z:=Suma(2,2);
     Writeln ('
2+2=',Z);
     Readln;
End.

·         Parámetros:

Las funciones y procedimientos normalmente las trabajamos con variables globales, limitando su campo de acción. Con el uso de parámetros logramos indicar los valores y variables iniciales de los procesos, logrando una mayor flexibilidad y portabilidad.

Contamos con dos tipos de parámetros:

Parámetros por valor:

Cuando se pasa un parámetro por valor, se obtiene una copia temporal de la variable usada, dentro de la función o procedimiento se trabaja con la copia obtenida,  no importando las operaciones que se realicen con la copia, la variable introducida como parámetro, no será afectada en su valor inicial al terminar el proceso. Su sintaxis es la siguiente:

Procedure identificador (variable: Tipo);

Veamos este ejemplo:

Program PruebaDeParametros;
Var 
    
dato:integer;

Procedure Modifica(variable:integer);
Begin
    
variable:=3;
     Writeln ('
Dentro: ', variable);
End;

Begin
    
dato:=2;
     Writeln ('
Antes: ', dato);
    
Modifica (dato);
     Writeln ('
Después: ', dato);
End.

¿Qué diríais que pasa?, al finalizar escribirá el valor dato... ¿3?

¡¡¡¡PUES NO!!!! Escribe un 2. Las modificaciones que hagamos a dato dentro del procedimiento Modifica sólo son válidas mientras estemos dentro de ese procedimiento. Daos cuenta de que lo que modificamos es la variable genérica que hemos llamado variable, y que no existe fuera del procedimiento.

Eso es pasar un parámetro por valor. Pero, ¿cómo hacemos si realmente queremos modificar el parámetro?. Pues nada más que añadir la palabra Var delante de cada parámetro que queremos permitir que se pueda modificar.

Parámetro por referencia:

Cuando se pasa un parámetros por referencia, los cambios que se realicen a la variable introducida como parámetro, se mantendrán vigentes al terminar el proceso, en este caso especifico solo se admiten variables. Su sintaxis es la siguiente:

Procedure identificador (Var variable: Tipo);

Veamos este ejemplo:

Program PruebaDeParametros;
Var 
    
dato:integer;

Procedure Modifica(Var variable:integer);
Begin
    
variable:=3;
     Writeln ('
Dentro: ', variable);
End;

Begin
    
dato:=2;
     Writeln ('
Antes: ', dato);
    
Modifica (dato);
     Writeln ('
Después: ', dato);
End.

Esta vez la última línea del programa sí que escribe un 3 y no un 2, porque hemos permitido que los cambios hechos a la variable salgan del procedimiento. Esto es pasar un parámetro por referencia.

 

 
  Hoy habia 4 visitantes (4 clics a subpáginas) ¡Aqui en esta página!  
 
Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis