Learning Machine #8 - Programando en Pascal - Funciones y procedimientos.

Hola de nuevo a todos, el día de hoy vamos a continuar con el aprendizaje de Pascal. El tema de hoy corresponde a procedimientos y funciones.


Las funciones y procedimientos, son bloques de código que están separados del código que se ejecuta en la parte principal, además se distinguen porque estos se pueden ejecutar tantas veces mientras se les "llame", cuando lo hacemos, todo el código contenido en estos se ejecutará y al terminar, la ejecución continuará en la linea inmediata a la cual fue llamada la función/procedimiento.

Procedimientos.

Los procedimientos, son bloques de código que se ejecutan y no devuelven ningún tipo de resultado (o no que sea utilizable).
Veamos el siguiente código:

program Procedimiento;
uses crt;
var Number1, Number2 : integer;
procedure suma(N1 : integer; N2 : integer);
var Resultado : integer;
begin
	Resultado := N1 + N2;
	writeln('El Resultado es ', Resultado);
end;
begin
	clrscr;
	writeln('Ingresa el primer numero');
	readln(Number1);
	writeln('Ingresa el segundo numero');
	readln(Number2);
	suma(Number1,Number2);
	readln();
end.


Para definir un procedimiento, debemos de hacer uso de la palabra reservada "procedure", seguida del nombre que queramos darle al procedimiento. En el caso del código anterior, al procedimiento le dimos el nombre "suma", entre paréntesis, deben de ir los parámetros que el procedimiento vaya a usar, se pueden usar tantos cómo uno desee, pero cada uno debe de  ser definido con el tipo de datos que se usen y cada parámetro debe de ir separado por ";". Para abrir un procedimiento usamos "begin" y para cerrarlo usaremos "end;". Todo el código que se encuentre en medio de las palabras reservadas de apertura y cierre, sera el que se ejecute cada vez que se llame a la función; en este caso "suma". Para hacer uso de los parámetros, solamente debemos de llamarlos. para usar variables, debemos de declararlas en seguida de la creación del procedimiento, usando la palabra reservada "var", al igual cómo lo hacemos con las variables globales.

Funciones.

Las funciones son bastante similares a los procedimientos, es decir, van a ejecutar un bloque de código cada vez que se mande a llamar. La diferencia principal con los procedimientos, es que estas, devolverán un valor que se puede usar para otras cosas. Veamos el siguiente bloque de código:

program Funciones;
uses crt;
var Number1, Number2 : integer;
function suma(N1 : integer; N2 : integer) : integer;
var Resultado : integer;
begin
	Resultado := N1 + N2;
	{ suma:=Resultado; }
	exit(Resultado);
end;
begin
	clrscr;
	writeln('Ingresa el primer numero');
	readln(Number1);
	writeln('Ingresa el segundo numero');
	readln(Number2);
	writeln('La suma da ', suma(Number1,Number2));
	readln();
end.

Para definir una función, debemos de hacer uso de la palabra reservada "function", seguida del nombre del nombre que queramos darle a la función. Al igual que al procedimiento, en este caso le dimos el nombre de "suma", entre paréntesis deben de ir los parámetros y ademas, le debemos de dar un tipo, puede ser cualquiera de los soportados por Pascal (Boolean, integer, string, etc.).
Sabiendo que la función debe de devolver un dato que sea utilizable, debemos de ver la forma que este la regrese, para eso se hace uso de la palabra reservada "exit" y el valor que queramos regresar, deberá de ir entre paréntesis o podemos asignar el valor que queramos devolver a la función, en el caso del código anterior, es lo mismo "exit(Resultado)" que "suma:=Resultado", en ambos casos le estamos diciendo que el valor que la función regresará, será el que tenga la variable "Resultado".

Diferencias.

Al revisar el código del procedimiento y el de la función, verás que al momento de llamar al procedimiento, simplemente lo hacemos y cómo definimos en el procedimiento que escriba el resultado de sumar los parámetros, lo hará y se mostrará en pantalla, pero si no lo hacemos y queremos hacer uso del valor de la suma que se hace en el procedimiento, simplemente no podremos.
Ahora en el caso de la función, vemos que hacemos uso de ella cómo parámetro para "writeln" y está es la importancia de usar las funciones, todos los valores que estas generen se pueden usar cómo parámetros para otras funciones, para cambiar valores de variables, imaginemos que tenemos una función que hace un calculo grande y a ese valor lo queremos dividir a la mitad, simplemente definimos la función y directamente a la llamada de está dividirla.
Si quisiéramos hacer uso de un procedimiento y pasarlo cómo parámetro de un función (por ejemplo), el compilador nos marcaría un error como el de la imagen siguiente:
Si la tarea no es muy compleja se puede hacer uso de los procedimientos, en caso contrario, se recomiendan las funciones. En ambos casos, se recomienda su uso para llevar a cabo tareas que se repitan, siempre resulta más fácil llamar a una función/procedimiento en una linea que escribir diez lineas de código cada vez.

Y bien, por ahora es todo, todos los programas que se han hecho para Pascal, en breve, subire el código fuente para que lo revises.

Los leo luego.

No hay comentarios.