Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Recursividad en C
Recursividad en C
Funciones en C: Recursividad
Funciones en C
Agrupan un conjunto de instrucciones bajo el mismo nombre para realizar una tarea
especfica.
Facilitan la resolucin de problemas, dividiendo a ste en pequeos subproblemas.
Funciones en C
Una llamada a una funcin ejecuta el grupo de instrucciones de una funcin
Una vez que la funcin ha sido llamada, ejecuta sus instrucciones y luego regresa al
mismo punto donde fue llamada. Esta ltima accin se conoce como retorno.
Declaracin de Funciones
Al igual que las variables, las funciones deben ser
declaradas antes de usarse.
La forma de declarar una funcin es:
Ejemplo:
Implementacin de Funciones
int potencia (int base, int exponente)
{
/* Aqu, siempre entre llaves, se
escriben todas las instrucciones que debe
ejecutar la funcin */
}
Retorno en Funciones
Si la funcin debe retornar un valor, lo har usando la sentencia return
dentro del cuerpo de la funcin y en el lugar en que deba retornar.
La forma de usar esta sentencia es:
Esto especifica que la funcin debe terminar y devolver el valor de la
variable o expresin indicada.
Hay funciones que no retornan datos, en este caso puede usarse return,
de la siguiente forma:
Uso de Funciones
Para las funciones que retornan un valor, el uso de ellas consiste en cmo se
utiliza el valor retornado.
Otro Ejemplo
void holamundo()
{
printf(HOLA MUNDO);
return;
}
main()
{
holamundo();
}
Otro Ejemplo
#include<stdio.h>
int sumar(int numero1, int numero2)
{
return numero1+numero2;
}
main()
{
int suma = sumar(5, 3);
printf(La suma es %d, suma);
}
Otro Ejemplo
#include<stdio.h>
main()
{
int suma = sumar(5, 3);
printf(La suma es %d, suma);
}
int sumar(int numero1, int numero2)
{
return numero1+numero2;
}
Otro Ejemplo
#include<stdio.h>
int sumar(int numero1, int numero2);
main()
{
int suma = sumar(5, 3);
printf(La suma es %d, suma);
}
int sumar(int numero1, int numero2)
{
return numero1+numero2;
}
Otro Ejemplo
#include<stdio.h>
int sumar(int numero1, int numero2)
{
return numero1+numero2;
}
main()
{
int a=5, b=3;
int suma = sumar(a, b);
printf(La suma es %d, suma);
}
Paso de Parmetros
Las funciones pueden, o no, recibir datos.
Existen dos formas de enviar los datos hacia una funcin:
Por Valor
Por Referencia
numero = 9
int numero = 9;
sumar_valor(numero);
printf(%d, numero);
}
void sumar_valor(int numero)
{
numero++;
printf(%d, numero);
return;
}
numero = 10
numero = 10
int numero = 9;
sumar_valor(&numero);
printf(%d, numero);
}
void sumar_valor(int *numero)
{
*numero=*numero+1;
printf(%d, *numero);
return;
}
numero = 10
main()
{
funcion1();
funcion2();
}
#include<stdio.h>
int x = 20;
void funcion()
{
printf(%d, x);
return;
}
main()
{
printf(%d, x);
funcion();
}
main()
{
funcion1();
funcion2();
}
main()
{
int x[5] = {1, 2, 3, 4, 5};
printf(%d, suma_vector(x, 5));
}
Analizar Ejemplo
i es variable global
Recursividad
- Javier Checa
Recursividad
Se dice que una funcin es recursiva cuando se define en funcin de si misma
(se llama a s misma).
No todas la funciones pueden llamarse a si mismas, sino que deben estar
diseadas especialmente para que sean recursivas, de otro modo podran
conducir a bucles infinitos, o a que el programa termine inadecuadamente.
Ejemplo
Se desea calcular el factorial de un nmero.
El factorial de un nmero se define de forma recursiva como sigue:
1 !,
! =
1,
2
<2
Ejemplo
Ejemplo
Ejemplo
Ejemplo
Ejemplo
Ejemplo
Ejercicios
Escribir, para cada caso, una funcin recursiva que permita:
Sumar los N primeros nmeros enteros positivos.
Calcular la potencia (a y b enteros; b positivo).
La multiplicacin de dos nmeros enteros positivos.
Tarea:
Sumar los elementos de un vector de tamao n (de tipo entero).
Encontrar el elemento mayor dentro de un vector de tamao n (de tipo
entero).
Calcular el valor de la serie de Fibonacci para un nmero n dado (de tipo
entero).
Calcular la potencia (solo considerando b entero).