Está en la página 1de 4

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD

ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA


CONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION

Llamados de Funcin
Una vez que en su programa se ha definido una funcin, esta puede ser llamada
las veces que sean necesarias. Para llamar a una funcin basta con hacer
referencia a su nombre y si la misma requiere de parmetros estos debern
indicarse dentro de parntesis.
Para llamar a una funcin que no requiera de parmetros se deber indicar el
nombre de la misma seguida de parntesis vacios. Por ejemplo, para llamar
una funcin llamada cuadrado, se escribira:
cuadrado();
Si la funcin cuadrado utiliza un parmetro de tipo int, se escribira:
cout << cuadrado(25);
cout << cuadrado(X);
Si la funcin cuadrado utiliza un parmetro y adems devuelve un valor, su
llamada sera:
R = cuadrado(X); // guardar en R el cuadrado de X
Prototipos: para utilizar una funcin en un programa, se requiere en primer lugar
declararla y despus definirla. La declaracin de la funcin le indica al compilador
el nombre, el tipo de dato devuelto por la funcin y los parmetros pasados a la
funcin. A la declaracin de una funcin se le llama tambin el prototipo
Un prototipo es una declaracin de una funcin. Consiste simplemente en el
encabezado de la funcin, terminado con punto y coma (;) lo que hace es avisar
al compilador, como se va a llamar la funcin y si recibe y devuelve informacin
La estructura de un prototipo es:
<tipo> func(<lista de declaracin de parmetros>);
Ejemplo:
int Mayor(int a, int b); // es un prototipo de funcin que devuelve un entero y
recibe dos parmetros enteros.
Aunque C permite realizar el prototipo de la siguiente manera:
int Mayor(int,int);

Ejemplo de Funcin definida por el usuario


Codificacin en lenguaje C++ (IDE FALCON)
/*Autor: Mirian Benavides - UNAD
U2

Pgina 4

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION

Programa: Funcin 1 */
//DIRECTIVAS DEL PRE-PROCESADOR
#include <iostream>
#include <stdlib.h>
using namespace std;
float mi_funcion(int i, double j); /* DECLARACION observe que termina en ";" */
int main() //Funcin principal
{
float resultado;
int a = 5;
double b = 2.5;
resultado = mi_funcion(a,b); /* LLAMADA a la funcin */
cout<<"El resultado de mi_funcion es : " <<resultado;
cout<<endl<<endl;
system("pause");
return 0;
}
float mi_funcion(int i, double j) /* DEFINICION observe que NO lleva ";" */
{
float x;
x = i * j;
return (x); /* RETORNO devolviendo un valor float */
}
Entonces la estructura general de un programa en C++ quedara as:
[directivas del pre-procesador: include y define]
[declaracin de variables y constantes globales]
[prototipos de funciones]
funcin main ()
[definiciones de funciones] //definidas en los prototipos

Se debe aclarar que hay programas en que no se utilizan las variables y


constantes de tipo global y las funciones diseadas por el usuario se definen
antes de la funcin principal main() (en este caso no hay necesidad de incluir el
prototipo de la funcin.
Observe a continuacin el ejemplo de la funcin 1, estructurado de una forma
diferente que tambin es vlido:
/*Autor: Mirian Benavides - UNAD
Programa: Funcin 1A
U2

Pgina 5

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION

IDE FALCON */
//DIRECTIVAS DEL PRE-PROCESADOR
#include <iostream>
#include <stdlib.h>
using namespace std;
float mi_funcion(int i, double j) /* DEFINICION. No se incluye el prototipo
porque la definicin se realiza antes de la funcin principal main()*/
{
float x;
x = i * j;
return (x); /* RETORNO devolviendo un valor float */
}
int main() //Funcin principal
{
float resultado;
int a = 5;
double b = 2.5;
resultado = mi_funcion(a,b); /* LLAMADA a la funcin */
cout<<"El resultado de mi_funcion es : " <<resultado;
cout<<endl<<endl;
system("pause");
return 0;
}
Recursividad
Esta es la propiedad que tienen las funciones en C++ de poder llamarse a s
mismas. Se dice que una funcin es recursiva cuando se autollama. No todas
las funciones pueden llamarse a s mismas (ser recursivas), deben
estar diseadas especialmente para que tengan un final y no se conviertan en
ciclos o bucles infinitos.
Es importante notar que cuando una funcin se llama a s misma, una nueva
copia de esta funcin es la que se ejecuta. Las variables locales de la segunda
funcin no interfieren con las variables locales de la primera, as mismo, las
variables locales no se pueden afectar mutuamente.
Se tomar como ejemplo un programa que calcule el factorial de un nmero
entero introducido por el usuario. El factorial est definido como el producto del
nmero en cuestin por todos los nmeros enteros menores que l, de tal
manera que el factorial de 5=5*4*3*2*1 = 120. El cdigo puede quedar as:
#include <iostream>
U2

Pgina 6

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDCTICO DEL CURSO: 301304 INTRODUCCION A LA PROGRAMACION

#include <stdlib.h>
using namespace std;
int K=1; // variable global, para un contador general
double factorial(int valor)
{
double R;
if(valor<=1) return 1;
else
{
R= (valor*factorial(valor-1)); K = K+1;
}
return R;
}
int main() //Funcin principal
{
int num;
cout << "Introduzca un numero" << endl;
cin >> num;
cout << endl;
cout << "El factorial del nmero es " << factorial(num) << endl;
cout << "La funcion se llamo en forma recursiva " << K << " veces" << endl;
system("pause");
return 0;
}
1. La funcin se declara de tipo doble, puesto que los valores que retorna la
funcin pueden ser demasiado grandes.
2. Tambin se utiliza una variable global (K), que sirve de contador, para
determinar el nmero de iteraciones que la funcin se repite
3. El programa empieza solicitndole un nmero entero y despus llama por
primera vez a la funcin factorial ( ). La recursividad necesita una condicin
para terminar el proceso en el momento especifico, por sta razn, la funcin
factorial () determina en primer lugar si el valor pasado como parmetro de la
funcin es igual a 1, en cuyo caso la funcin retorna 1. Si el valor del
parmetro es mayor que 1, entonces la funcin factorial ( ) se llama a s
misma tomando como parmetro el valor original menos uno, multiplicando
ste valor por el valor del parmetro original y almacenando el
resultado en la variable llamada resultado. (se recomienda realizar una
prueba de escritorio para entender un poco ms el movimiento de la
funcin y sus iteraciones).

U2

Pgina 7