Sei sulla pagina 1di 7

PROCEDIMIENTOS Y FUNCIONES

En algunas ocasiones se debe llamar un bloque de cdigo ms de una vez,


una forma de hacerlo es escribir las instrucciones tantas veces como se
necesite, tornando de esta manera programas con exceso de cdigo y
dificultad para descubrir posibles errores, la otra es meter las
instrucciones en subprogramas que se invocan cada vez que se necesiten.

Los procedimientos y funciones se declaran o escriben antes del begin


principal, un procedimiento o funcin puede contener otros
procedimientos y funciones.

En resumen: Las subrutinas son esencialmente partes separadas de


cdigo que ejecutan tareas pequeas de un programa GRANDE.

PROCEDIMIENTOS

Un procedimiento es un grupo de sentencias que realizan una tarea


concreta. En lugar de reescribir el cdigo completo de esa tarea cada vez
que se necesite, nicamente se hace una referencia al procedimiento.
Estos pueden recibir o enviar informacin el programa principal,
tcnicamente se conoce como PASO DE PARAMETROS, que puede ser POR
TRANSFERENCIA o POR VALOR.

Sintaxis

Procedure NOMBRE_DEL_PROCEDIMIENTO

CONSTANTES

TIPOS

VARIABLES

PROCEDIMIENTOS Y FUNCIONES

BEGIN

{Bloque de instrucciones}

END;
Este sencillo programita ilustra la forma de utilizar
procedimientos sencillos:

program Procedimientos_sencillos;

procedure Nombre;

begin

Writeln('Este Robot an no tiene nombre');

end;

procedure Direccion;

begin

Writeln('C:\mis
documentos\imgenes\caricaturas\');

end;

procedure Telefono;

begin

Writeln('0000 sin corriente');

end;

begin{Inicio del programa principal}

{Se invocan los diferentes procedimientos

Declarados anteriormente}

Nombre;

Direccin;

Telefono;

Readln;

end. {Final del programa principal}


Ah te va otro ejemplo:

program Otro_procedimiento_sencillo;

var Contador : integer;

procedure Escribe_el_titulo;

begin

Writeln('Este es el Ttulo');

end;

procedure Escribe_un_mensaje;

begin

Writeln('Este es el mensaje y el contador es ',Contador);

end;

procedure Escribe_el_final;

begin

Writeln('Este es el mensaje final');

end;

Begin {Inicio del programa principal}

Escribe_el_titulo;

for Contador := 1 to 10 do Escribe_un_mensaje;

{Observa detenidamente este ciclo FOR, como tiene una sola instruccin
no lleva ni BEGIN ni END}

Escribe_el_final;

End. {Final del programa principal}


PASO DE PARMETROS

Pasar un parmetro significa direccionar el valor de una variable del


programa principal al procedimiento hay dos clases:

Paso de parmetros por REFERENCIA

Cuando se pasa una variable a un procedimiento como parmetro por


referencia, los cambios que se efecten sobre dicha variable dentro del
procedimiento se mantienen incluso despus de que este haya terminado,
es decir los cambios
afectan al programa
principal.

Los cambios
producidos POR
PARAMETRO POR
REFERENCIA son
permanentes, pues
TURBO PASCAL no
pasa al procedimiento
el valor de la variable
sino la direccin de
memoria de esta.

Sintaxis

PROCEDURE Nombre_procedimiento( VAR variable : tipo de dato)

BEGIN

{Bloque de instrucciones}

END;

Paso de parmetros por VALOR

La diferencia de pasar parmetros por referencia respecto a parmetros


por valor radica en que en estos ltimos se guarda en memoria una copia
temporal de la variable, dentro del procedimiento solo se utiliza la copia,
cuando se modifica el valor del parmetro solo afecta al almacenamiento
temporal, la variable actual fuera del procedimiento nunca se toca.
Sintaxis

PROCEDURE

Nombre_procedimiento(variable : tipo de dato)

BEGIN

{Bloque de instrucciones}

END;

Ejemplo:

program Ambos_procedimientos;

var Contador : integer;

Indice : integer;

procedure Imprime_Datos(estable : integer);

{Este es un procedimiento de PARAMETRO por VALOR}

begin

Writeln('Esta es la rutina : ',estable);

estable := 12;

end;

procedure Imprime_y_modifica(var cambia : integer);

{Este es un procedimiento de PARAMETRO por REFERENCIA}

begin

Writeln('Esta es el procedimiento de impresin y modificacin ', Cambia);

Cambia := 35;
end;

begin (* Programa principal *)

for Contador := 1 to 3 do

begin

Indice := Contador;

Imprime_Datos(indice);

Writeln('Volvemos al procedimiento de impresin, Indice =',Indice);

Imprime_y_modifica(Indice);

Writeln('Volvemos al procedimiento de impresin, Indice =',Indice);

Imprime_datos(indice);

Writeln('Regresamos de nuevo a la impresin de nuevo y el valor del


ndice es =',Indice);

Writeln; {Imprimimos una linea en blanco}

end;{Final del ciclo for}

readln;{Se hace una espera hasta que se presiona la tecla ENTER}

end. (* Final del programa principal *)

Si deseas ver el resultado de este programa por favor codifcalo en TURBO


PASCAL (suena como redundante, pero no falta el que lo meta en lenguaje
C, y despus ande diciendo que estos ejemplos no funcionan) y saca tus
propias conclusiones.

FUNCIONES

Las funciones son, al igual que los procedimientos, un conjunto de


sentencias que se ejecutan constantemente, la diferencia entre stas y los
procedimientos es que las funciones regresan un valor. La declaracin de
las funciones se realiza de la siguiente forma: FUNCTION
nombre(parmetros) : tipo_de_datos; A continuacin se escribe el
contenido de la funcin como una sentencia normal (sencilla o
compuesta), normalmente terminando con la igualacin de la funcin al
valor que regresar. Ejemplo:

Function Promedio (A, B : Real) : Real; {Promedio De Dos Nmeros Reales}


Begin
Promedio := (A + B) / 2;
End;

Uso De Las Funciones


Como Las Funciones Devuelven Un Valor Especfico La Forma Ms Usual De
Utilizarlas Es Por Medio De Asignaciones De Una Variable A La Funcin.
Ejemplo:

Program Funciones;
Var
X, Y, Z : Real;
Function Promedio (A, B : Real) : Real;

{Promedio De Dos Nmeros Reales}


Begin
Promedio := (A + B) / 2;
End;

Begin{Inicio Del Programa Principal}

{A Continuacin Inicializamos Las Variables}


X := 12.78;
Y := 6.38;
Z := Promedio (X, Y);
{Iguala Z Al Valor Devuelto Por La Funcin Promedio De X, Y}
Writeln('El Promedio De ',X,' Y ',Y,' Es: ',Z); {Impresin De La Informacin}
End. {Final Del Programa Principal}

Potrebbero piacerti anche