Anda di halaman 1dari 8

I NTRODUCCIN A LA

P ROGRAMACIN
Funciones

CAPTULO 5
Funciones

Una funcin es un mini programa dentro de un programa.


Las funciones contienen varias sentencias bajo un solo nombre.
Proporcionan una forma de dividir un proyecto grande en mdulos ms pequeos.
Las funciones existen de modo autnomo, cada una tiene su mbito.
La divisin del cdigo en funciones hace que las mismas se puedan reutilizar en su programa y
en otros programas.
Para reutilizar una funcin dentro de un programa, solo se necesita llamar a la funcin.
Si se agrupan funciones en bibliotecas otros programas pueden utilizar estas funciones
Las funciones en C no pueden anidarse es decir una funcin no se puede declarar dentro de
otra funcin.
En definitiva, una funcin proporciona una forma conveniente de encapsular algunos clculos,
que se pueden emplear despus sin preocuparse de su implementacin.
Una funcin es un subprograma que se llama dentro de un programa principal. Las funciones
son independientes del programa que la llama, por eso una funcin puede ser utilizada varias
veces dentro de un programa o ser utilizada dentro de otros programas.
La

definicin de una funcin tiene la siguiente forma:

TIPO DE RETORNO

NOMBRE (TIPO1 ARG1, TIPO2 ARG2.....)


Argumentos formales

Los argumentos formales representan los nombres de los elementos que se transfieren a la
funcin desde la parte del programa que llama. Tambin se los conoce como parmetros o
parmetros formales.
La

estructura de una funcin es:


tipo de retorno nombre (lista de parmetros)
{
cuerpo de la funcin
return expresin;
}

Ejemplo:
tipo de retorno
float

nombre

parmetros

suma (float num1, float num2)

{
float res;
res = num1 + num2;
return res;
}

TIPO DE RETORNO O RESULTADO: Es el tipo del dato que vuelve la funcin y aparece antes
del nombre de la funcin. Si la funcin no devuelve ningn valor, se usa el tipo VOID.

LISTA DE PARMETROS : en la que se enumeran los parmetros tipificados (con tipo) tipo1
parametro1, tipo2 parametro2.

CUERPO DE LA FUNCIN : se encierra entre llaves {....}. No hay punto y coma despus de la
llave de cierre

DECLARACIN LOCAL : las constantes, tipo de datos y variables declaradas dentro de las
funciones son locales a la misma, deben declararse en ella y se perdern fuera de ella.

VALOR DEVUELTO POR LA

FUNCIN : mediante la palabra return se regresa el valor de la


funcin al programa principal.
Una llamada a una funcin produce la ejecucin de las sentencias del cuerpo de la funcin y
un retorno a la unidad de programa llamadora despus que la ejecucin de la funcin se ha
terminado, normalmente cuando se encuentra una sentencia return.

NOMBRE DE UNA FUNCIN : El nombre de una funcin comienza con una letra o un subrayado
y puede contener hasta 32 caracteres.

5.1 RESULTADO DE UNA FUNCIN


Una funcin puede devolver un nico valor. El resultado se devuelve al programa principal
con la sentencia return.

5.2 LLAMADA A UNA FUNCIN


Las funciones para poder ser ejecutadas, han de ser llamadas desde el programa principal.
La funcin llamada que recibe el control del programa se ejecuta desde el principio hasta el
final (hasta la sentencia return y a la } final), o sea, se ejecuta todo el cuerpo de la
funcin.
Se usa return para volver un valor al punto de llamada. El tipo de la expresin que figura
despus del return, debe ser el mismo que se define como tipo de salida o retorno en la
definicin de la funcin.
En una funcin que no necesita regresar un valor, un return sin expresin hace que el control
regrese al programa principal sin pasar ningn valor. En este caso, que no regresa nada, se
coloca como tipo de retorno void.

Ejemplos
Ejemplo 1:
Dados dos nmeros, mostrar el mayor (los nmeros son distintos)
void maximo ( int x, int y)
{
if (x > y)
printf ("El valor mximo es %d", x);
else
printf ("El valor mximo es %d", y);
return;
}

Ejemplo 2:
Dado un nmero natural mostrar su factorial.
long fac (int n)
{

int i ;
long prod = 1;
if ( n > 1)
for ( i = 2; i < = n; i++ )
prod * = i;
return prod ;

Ejemplo 3:
Calcular la suma de n nmeros reales.
float suma (int n)
{
int i;
float sum = 0.0, x;
printf(Introduce %d nmeros reales, n);
for ( i=0; i<n; i++)
{
scanf(%f, &x);
sum + =x;
}
return sum;
}

5.3. CMO SE UTILIZAN LAS FUNCIONES EN UN PROGRAMA?


Si se utilizan funciones dentro de un programa, stas deben aparecer en 3 lugares distintos:
1) prototipo,
2) llamada de la funcin dentro del main()
3) definicin y desarrollo.

5.3.1. Prototipo de una funcin


El prototipo es la declaracin de una funcin. Para declararla se da su nombre y la lista de sus
parmetros.
Los prototipos contienen la cabecera de una funcin y terminan con punto y coma.
Se ubican normalmente al principio de un programa, antes de la definicin del main().
Declarar la funcin significa que existe un lugar en el programa donde est desarrollada la
funcin.
Los nombres de los argumentos en los prototipos no tienen significado, son independientes y
no tienen que coincidir necesariamente con los nombres de los parmetros reales (los del
programa principal). Pero el tipo de dato del argumento local debe ser igual al tipo de dato
del argumento real que recibe desde el punto de llamada.

TIPO DE RETORNO

NOMBRE de la FUNCION (TIPO1 ARG1, TIPO2 ARG2, ... );

EJEMPLO DE PROTOTIPOS:
#include <stdio.h>
long fac ( int n);
void maximo ( int x, int y);
int main()
{
}

5.3.2. Llamada a la funcin dentro del main()


Llamar a la funcin significa pasar el control desde el programa principal a la funcin.
En esta instancia, los argumentos de la funcin se llaman argumentos reales, ya que definen
la informacin real que se transfiere del programa principal a la funcin.

En esta llamada los argumentos van sin su tipo, ya que fueron definidos al inicio del
programa.
Recordemos que los argumentos reales son variables que se utilizan en el programa o valores
constantes.
La llamada a una funcin puede ser de dos formas distintas, segn retorne o no un valor.
Si la funcin no regresa ningn valor, en la llamada slo se nombra a la funcin.
Si la funcin regresa un valor, en la llamada debe haber una asignacin del valor que regresa
a otra variable del mismo tipo.

El control del programa


int main()
{
funcion1 (...);
funcion2 ();
}
void funcion1 ()
{
..
return;
}
void funcion2 ()
{..
return;
}

Ejemplos de prototipos y sus llamadas


#include <stdio.h>
void mostrar(int n, int res);
int main( )
{
int n,res;

mostrar(n,res);

#include <stdio.h>
int suma(int a, int b);
int main()
{
int n1,n2,c;

c = suma (n1, n2);


}
En el prototipo puedo no colocar el nombre de las variables, pero si es obligatorio el tipo y
respetar el orden:
int power (int, int);

5.3.3. Definicin y desarrollo de una funcin.


El desarrollo de la funcin con su definicin, su cuerpo y su return se hace al terminar el
programa principal (int main()). La declaracin del prototipo y la definicin de la funcin
deben coincidir en cantidad de parmetros y formatos y en el orden en que se enumeran.
Los nombres de los parmetros no tienen que coincidir necesariamente, es optativo.
La funcin que se invoca no puede alterar directamente una variable del programa principal;
slo puede modificar su copia temporal. Es decir, si entra una variable del programa principal
y es modificada en la funcin, al volver el control al programa principal, la variable no llega
modificada salvo que se devuelva en el return.

Ejemplo:
Escribir a 2 columnas las potencias de 2 y de 3 con exponentes 0 al 9.
#include <stdio.h>
int power (int m,int n); /* funcin prototipo, luego se desarrolla.*/
int main( )
{
int i,a,b;
for (i = 0; i < 10; ++ i)
{if (i==0)
{
a = 1;
b = 1;
}
else
{
a = power (2, i);
/* llamadas a la funcin.*/
b = power (3, i);
}
printf ("%3d %6d %6d \ n", i, a , b);
}/*fin del programa principal*/
int power (int base, int n) /*definicin (no va ;)*/
{
int i, p;
p = 1;
for (i = 1; i < = n, i++)
p *= base;
return p; /*variable local */
}

Cada llamada pasa 2 argumentos a la funcin power(), y


llamado.

regresa un entero p en cada

En el programa principal, los argumentos que se pasan a power() son, uno por valor, ya que
pasa una constante y uno por referencia, ya que pasa una variable.
En la definicin o desarrollo de power() los nombres base y n son argumentos locales. Por el
orden en que estn, la constante se corresponde con base y la variable i con n.
a = power (2, i);

int power(int base, int n)


Las variables i y p que se declaran en la funcin son variables locales, es decir variables que
no se ven en el principal y que si no regresan a travs del return pierden su valor al salir de la
funcin.
En el ejemplo, p regresa su valor por estar declarada en el return y en el principal su valor se
asigna a una variable del mismo tipo (a y b), y la i como no regresa no modifica el valor de la
variable i del programa principal. Sus mbitos son distintos, una es global o general (la del
programa principal) y la otra es local (la de la funcin).

Anda mungkin juga menyukai