Funciones y Procedimientos
En esta unidad veremos como funcionan las funciones y procedimientos. Para ello explicare que es esto.Un programa en Pascal consiste de uno o más modulos, los cuales a su vez pueden estar constituidos por otros modulos, y así sucesivamente. Estos modulos serán llamados SUBPROGRAMAS y se dividen en 2:
- Funciones
- Procedimientos
Un subprograma se puede llamar desde cualquier punto del programa, por medio de una instrucción
Función
Una función tiene tres componentes importantes:
- Los parámetros, que son los valores que recibe la función como entrada;
- El código de la función, que son las operaciones que realiza la función; y
- El resultado o valor de retorno, que es el valor final que entrega la función.
En un programa Pascal, las funciones deben ser definidas antes del begin que indica el comienzo del programa.
La sintaxis para definir una función es la siguiente:
var
{variables locales}
begin
{código de la función}
end;
(La sección var es opcional). Por ejemplo, el polinomio
begin
F := x * x * x * x * x + 1;
end;
Esta función tiene el nombre F, un parámetro x de tipo real, y un resultado de tipo real.
El resultado es indicado dentro de la función asignando su valor al nombre de la función.
El programa completo que calcula la expresión que definimos al principio para dos valores a y b ingresados por el usuario es el siguiente:
var
a, b: Real;
function F(x: Real): Real;
begin
F := x * x * x * x * x + 1;
end;
begin
Write('Ingrese a y b: ');
Read(a, b);
WriteLn(F(F(F(a)) + F(F(b))):3:3);
end.
Procedimiento
Un procedimiento es una sección de un programa que realiza varias sentencias de manera independiente al resto del programa. La diferencia con una función es que un procedimiento no entrega ningún valor como resultado.La sintaxis para crear un procedimiento es la siguiente:
var
{variables locales}
begin
{código del procedimento}
end;
Por ejemplo, desarrollemos un programa que:
- pida al usuario que ingrese diez valores;
- calcule la expresión que definimos al principio de la página a todos los pares consecutivos de valores, usando la función
k(x)=x2−x+1 ; - mostrar los resultados por pantalla.
El ingreso de los datos puede ser realizado por un procedimiento LeerValores(n), que le pida al usuario que ingrese n valores:
var
i: Integer;
begin
for i := 1 to m do
begin
Write('Ingrese valor ', i, ': ');
Read(valores[i]);
end;
end;