Ahora, vamos a ver cómo podemos crear nuestras propias funciones, que puedan ser llamadas desde cualquier lugar del programa. Esto nos permitirá escribir el código de estas funciones una sola vez y utilizarlas tantas veces como sea necesario.
Veamos un ejemplo sobre cómo utilizar una función para calcular el factorial, problema que vimos en el capítulo anterior.
En el programa, utilizamos la función factorial( ), que es la que realiza las operaciones. Esta función recibe un parámetro de tipo int (en este caso, el contenido de la variable n) y devuelve un valor, también de tipo int (que en este caso, se guarda en la variable fact).
Esta información acerca de los parámetros, debe ir en el prototipo de la función, que va antes del programa main( ).Como la función puede estar o no incluida en el mismo archivo, es necesario decirle al compilador que existe una función llamada factorial y qué cantidad y tipo de parámetros posee. Esa es la función del prototipo.
#include
"stdafx.h"
#include
<iostream>
using
namespace std;
int
factorial (int);
void main()
{
int n,
fact, i;
cout<<"Ingrese un
número:";
cin>>n;
fact
= factorial(n);
cout<<"El
factorial de "<<n<<"
es "<<fact<<endl;
}
En este ejemplo, luego de los #include, agregamos el prototipo de la función: Una función llamada factorial que recibe un parámetro int y devuelve un valor int.
Luego se ejecuta el programa: se declaran las variables y se pide al usuario que ingrese un número que se guarda en la variable n. Llegado este punto, en la línea siguiente, se ejecuta la función factorial con el valor de la variable n. El valor devuelto por la función, se guarda en la variable fact, y se muestra al usuario.
El código de la función, que debería ir a continuación del programa principal, es el siguiente:
int
factorial (int n)
{
int f,i;
i=1,
f= 1;
while (i <= n)
{
f = f * i;
i = i+1;
}
return f;
}
Si analizamos el código, vemos que se recibe un parámetro de tipo entero y se define dos variables más que se inicializan en 1. Luego se realiza un ciclo while que multiplica todos los números de 1 hasta el número n.
Finalmente, la instrucción return devuelve el valor de f al programa que llamó a la función.
- Las funciones son subprogramas independientes del programa principal, que tienen sus propias variables. En este caso el parámetro se llama n, igual que la variable n del programa principal. Puede llamarse igual o distinto, pero son dos variables distintas: Cualquier cambio que haga a la variable n de la función, no afecta a la variable n del programa principal. La única forma que tiene la función de pasar un dato al programa principal, es mediante la instrucción return, que devuelve un único valor, del tipo de datos que corresponda a la función.
- Si analizamos el programa principal de cualquier ejercicio, vemos que tiene la estructura de una función:
void main()
{
.....
.....
.....
}
Es una función que no recibe parámetros (por eso abro y cierro los paréntesis sin nada dentro) y que no devuelve ningún valor (por eso es de tipo void). En algunos casos se define de tipo int, y el valor que devuelve al sistema operativo indica si hubo algún error al ejecutar el programa. Pero en esencia es una función más, lo único particular que tiene es el nombre: El compilador buscará la función main y será la que comience a ejecutar.
No hay comentarios:
Publicar un comentario