You are on page 1of 7

FUNCIONES

Las funciones son los bloques constructores de C++ y el lugar donde se da toda
la actividad del programa.
Hay dos tipos de funciones:
Funciones Predefinidas o Predeterminadas y Funciones Definidas por el
Usuario.
Funciones Predefinidas o Predeterminadas: Son funciones que el lenguaje
de programacin ha predefinido en sus bibliotecas o libreras.
Funciones Definidas por el Usuario: Son funciones creadas por el usuario
segn su necesidad y no pertenecen a las que trae el sistema por defecto.
La forma general de definicin de una funcin es:
tipo nombre(lista de parmetros)
{
cuerpo de la funcin
}
El tipo: especifica el tipo de valor que devuelve la sentencia return de la
funcin.
El valor: puede ser cualquier tipo vlido; si no se especifica ninguno, se asume
un resultado entero.
La lista de parmetros es la lista de nombres de variables separados por comas
con sus tipos asociados que reciben los valores de los argumentos cuando se
llama a la funcin. Una funcin puede no tener parmetros, en cuyo caso la lista
de parmetros est vaca; sin embargo, los parntesis son necesarios.
Las funciones definidas por el programador se escriben fuera de la funcin
main. Uno de los objetivos del uso de las funciones es la descomposicin de
problemas complejos y el trabajo en grupo. El siguiente es un ejemplo de una
definicin de una funcin. Se utiliza antes de presentar la sintaxis formal de
modo que nos podamos familiarizar con la terminologa:

double square(double numero)
{
double cuadrado;

cuadrado =numero * numero;
return cuadrado;
}

Esta definicin de la funcin square consiste de:
1) El encabezado de la funcin

double square(double numero)

Observe que el encabezado no termina con punto y coma. Las partes del
encabezado de una funcin son los siguientes.
a) Una lista de los argumentos de la funcin entre parntesis:
(double numero)
Si se considera a la funcin como un programa pequeo, la lista de argumentos
seran equivalentes a los datos que en un programa se introducira a travs de
la instruccin cin. Es importante que observe que en la lista de argumentos se
indican tanto la lista de los argumentos necesarios como el tipo de cada uno de
ellos.

b) El nombre de la funcin
square
que puede se cualquier identificador vlido en C++.

c) El tipo de valor que regresa la funcin como resultado.
double

2) El cuerpo de la funcin
{
double cuadrado;
cuadrado = numero * numero;
return cuadrado;
}

El cuerpo de la funcin se encierra entre llaves y en l se escriben las
sentencias que se necesitan ejecutar para lograr el objetivo de la funcin.
Contiene al menos una sentencia return. La sentencia return va seguida del
nombre de una variable o de un valor constante.
return cuadrado;
El valor de dicha variable (o el valor de dicha constante) constituye el valor de
regreso de la funcin. El tipo del valor que regresa la funcin debe ser
consistente con el tipo del valor de regreso especificado en el encabezado de la
funcin. Observe que, en este ejemplo, el valor de regreso de la funcin (tipo de
la variable llamada cuadrado) es double, al igual que el tipo de valor de regreso
especificado en el encabezado.

Declaracin
Cada funcin debe ser declarada. Su forma general es:
tipo nombre_funcin (lista de tipos (y nombres) de los argumentos);
Si una funcin va usar argumentos, debe declarar variables que acepten los
valores de los argumentos. Estas variables se llaman parmetros formales de la
funcin y se comportan como variables locales dentro de la funcin, crendose
al entrar en la funcin y destruyndose al salir. La declaracin de parmetros
aparece despus del nombre de la funcin al definirla.
Los parmetros formales tienen que ser del mismo tipo que los argumentos
usados al llamar una funcin (el compilador no dar error pero los resultados
sern inesperados).
Al igual que con variables locales, se pueden hacer asignaciones a los
parmetros de una funcin o usarlos en cualquier expresin vlida. Se pueden
usar como cualquier otra variable.
Una funcin es visible para ella misma y otras funciones desde el momento en
que se define. Es visible para el propio cuerpo de la funcin, es decir, la
recursividad est permitida.
El cdigo de una funcin es privado a esa funcin y slo se puede acceder a l
mediante una llamada a esa funcin. Las variables definidas dentro de una
funcin son locales (a no ser que las definamos globales) por lo que no
conservan su valor de una llamada a otra (excepto si se declaran como static,
entonces el compilador no las destruye y almacena su valor para la prxima
llamada, aunque la variable tiene limitado el mbito al interior de la funcin).
Llamadas a funciones
Las funciones son llamadas para su ejecucin desde cualquier parte del cdigo,
teniendo en cuenta que antes deben haber sido declaradas (y por supuesto
definidas).
La llamada de una funcin se produce mediante el uso de su nombre en una
sentencia, pasando una lista de argumentos que deben coincidir en nmero y
tipo con los especificados en la declaracin (en otro caso se producira una
conversin de tipos o resultados inesperados).
Llamadas por valor y por referencia
En general, se pueden pasar argumentos a las funciones de dos formas, por
valor y por referencia.
La llamada por valor copia el valor de un argumento en el parmetro formal de
la funcin. De esta forma, los cambios en los parmetros de la funcin no
afectan a las variables que se usan en la llamada (es la llamada ms usual, es
decir, en general no se pueden alterar las variables usadas para llamar a la
funcin).
La llamada por referencia copia la direccin del argumento en el parmetro.
Dentro de la funcin se usa la direccin para acceder al argumento usado,
significando que los cambios hechos a los parmetros afectan a la variable
usada en la llamada.
Es posible simular una llamada por referencia pasando un puntero al
argumento, entonces, al pasar la direccin, es posible cambiar el valor de la
variable usada en la llamada.


Uso de Funciones Definidas por el Programador
Cuando se utilizan funciones predefinidas es necesario incluir a la biblioteca o
librera que contiene su definicin. Por ejemplo, si se usa la funcin pow, es
necesario incluir math.h
Algo similar es necesario para funciones definidas por el programador. Ese algo
es que, despus de las directivas include pero antes de la funcin main, es
necesario escribir el prototipo de la funcin. El prototipo de la funcin no es
ms que el encabezado de la funcin seguido de punto y coma. El siguiente
ejemplo muestra como se podra utilizar en un programa una funcin definida
por el programador.
#include <iostream.h>
#include <stdlib.h>
double square(double numero); /* Prototipo de la funcion*/
int main()
{
/* Este programa es solo un ejemplo de la definicion y uso
de una funcion definida por el programador*/
double x,y,z;
cin>>x>>y;
z = square(x); /* Llamado a la funcion*/
z = z * y;
cout<<"\n";
cout<<z;
cout<<"\n";
system("PAUSE");
return 0;
}
/* Esta funcion calcula el cuadrado de un numero*/
double square(double numero)
{
double cuadrado;
cuadrado = numero * numero;
return cuadrado;
}

You might also like