Você está na página 1de 16

Algoritmos y Estructuras de Datos Página: 1

Recursividad en Java

I
OBJETIVOS
 Descubrir los conceptos de recursividad.
 Conocer la Recursividad en Java.
 Aprender a utilizar la recursividad en Java.

II
TEMAS A TRATAR
 Conceptos de Recursividad
 Recursividad en Java

III
MARCO TEORICO
Recursividad
Técnica de programación muy potente que puede ser usada en lugar de la iteración, consistente
en la invocación de un algoritmo a sí mismo.
Se trata de que una serie de instrucciones se repiten como una subtarea de la tarea principal, es
decir, las funciones, procesos o rutinas se llaman a sí mismos cada vez que lo requieran y se
ejecutan repetidas veces hasta que se satisface una condición específica.

Ing. Aníbal Sardón Paniagua Sesión 3


Algoritmos y Estructuras de Datos Página: 2

Algoritmos recursivos
Un algoritmo recursivo es un algoritmo que expresa la solución de un problema en términos de
una llamada a sí mismo. La llamada a sí mismo se conoce como llamada recursiva o recurrente.
Un algoritmo recursivo genera la repetición de una o más
instrucciones (como un bucle).
Como cualquier bucle puede crear un bucle infinito, por lo que
es necesario establecer una condición de salida para terminar la
recursividad.
Para evitar el bucle infinito, un algoritmo recursivo tendra:
 Caso Trivial, Caso Base o fin de la recursión.
o La función devuelve un valor simple sin utilizar
la recursión (0! = 1)
 Parte recursiva o Caso General
o Se hacen las llamadas recursivas que se van
aproximando al caso base.

Un ejemplo clásico de una subrutina recursiva es la función usada para calcular el factorial de
un entero

Ing. Aníbal Sardón Paniagua Sesión 3


Algoritmos y Estructuras de Datos Página: 3

Una llamada recursiva, genera un bucle con una condición de salida cuando se llega al caso base:
se ejecuta la llamada hasta que se cumpe la condición de salida, como un bucle.

Ejemplo de función recursiva para hallar la potencia.

Ing. Aníbal Sardón Paniagua Sesión 3


Algoritmos y Estructuras de Datos Página: 4

Ejemplo de función recursiva para convertir un número decimal a binario.

EJEMPLO 01:

Programa que calcule el factorial de un número a través de un algoritmo recursivo.

Ing. Aníbal Sardón Paniagua Sesión 3


Algoritmos y Estructuras de Datos Página: 5

1. Ingresamos al entorno de desarrollo Netbeans:

2. Creamos un nuevo proyecto para lo cual ingresamos a la opción File New Project

3. En el asistente seleccionamos la opción para generar una aplicación General –


JavaApplication:

4. Ponemos nombre al proyecto ( EjemploRecursivo01 ), seleccionamos la ubicación y


ponemos el nombre a la clase principal: Create Main Class:
ejemploRecursivo01.CRecursivo01.

5. En el explorador de proyectos aparece el paquete ejemploRecursivo01 y la clase principal


CRecursivo01.java

6. El código generado es el siguiente:

• El Paquete donde se incluye nuestra clase


• La clase
• Dentro de la clase su constructor

Ing. Aníbal Sardón Paniagua Sesión 3


Algoritmos y Estructuras de Datos Página: 6

• La función main( ) que viene a ser el programa principal

EJEMPLO 02:

Programa que realiza la sucesión Fibonacci:

1. Ingresamos al entorno de desarrollo Netbeans:

2. Creamos un nuevo proyecto para lo cual ingresamos a la opción File New Project

Ing. Aníbal Sardón Paniagua Sesión 3


Algoritmos y Estructuras de Datos Página: 7

3. En el asistente seleccionamos la opción para generar una aplicación General –


JavaApplication:

4. Ponemos nombre al proyecto ( EjemploRecursivo02 ), seleccionamos la ubicación y


ponemos el nombre a la clase principal: Create Main Class:
ejemploRecursivo02.CRecursivo02.

5. En el explorador de proyectos aparece el paquete ejemploRecursivo02 y la clase principal


CRecursivo02.java

6. El código generado es el siguiente:

• El Paquete donde se incluye nuestra clase


• La clase
• Dentro de la clase su constructor
• La función main( ) que viene a ser el programa principal

Ing. Aníbal Sardón Paniagua Sesión 3


Algoritmos y Estructuras de Datos Página: 8

EJEMPLO 03:

Programa que realiza la suma de los elementos de un arreglo.

1. Ingresamos al entorno de desarrollo Netbeans:

Ing. Aníbal Sardón Paniagua Sesión 3


Algoritmos y Estructuras de Datos Página: 9

2. Creamos un nuevo proyecto para lo cual ingresamos a la opción File New Project

3. En el asistente seleccionamos la opción para generar una aplicación General –


JavaApplication:

4. Ponemos nombre al proyecto ( EjemploRecursivo03 ), seleccionamos la ubicación y


ponemos el nombre a la clase principal: Create Main Class:
ejemploRecursivo03.CRecursivo03.

5. En el explorador de proyectos aparece el paquete ejemploRecursivo03 y la clase principal


CRecursivo03.java

6. El código generado es el siguiente:

• El Paquete donde se incluye nuestra clase


• La clase
• Dentro de la clase su constructor
• La función main( ) que viene a ser el programa principal

Ing. Aníbal Sardón Paniagua Sesión 3


Algoritmos y Estructuras de Datos Página: 10

EJEMPLO 04:

Programa que realiza la división de números a través de restas.

1. Ingresamos al entorno de desarrollo Netbeans:

2. Creamos un nuevo proyecto para lo cual ingresamos a la opción File New Project

3. En el asistente seleccionamos la opción para generar una aplicación General –


JavaApplication:

Ing. Aníbal Sardón Paniagua Sesión 3


Algoritmos y Estructuras de Datos Página: 11

4. Ponemos nombre al proyecto ( EjemploRecursivo04 ), seleccionamos la ubicación y


ponemos el nombre a la clase principal: Create Main Class:
ejemploRecursivo04.CRecursivo04.

5. En el explorador de proyectos aparece el paquete ejemploRecursivo04y la clase principal


CRecursivo04.java

6. El código generado es el siguiente:

• El Paquete donde se incluye nuestra clase


• La clase
• Dentro de la clase su constructor
• La función main( ) que viene a ser el programa principal

Ing. Aníbal Sardón Paniagua Sesión 3


Algoritmos y Estructuras de Datos Página: 12

EJEMPLO 05:

Programa recursivo que encuentra el número menor de un arreglo.

1. Ingresamos al entorno de desarrollo Netbeans:

2. Creamos un nuevo proyecto para lo cual ingresamos a la opción File New Project

Ing. Aníbal Sardón Paniagua Sesión 3


Algoritmos y Estructuras de Datos Página: 13

3. En el asistente seleccionamos la opción para generar una aplicación General –


JavaApplication:

4. Ponemos nombre al proyecto ( EjemploRecursivo05 ), seleccionamos la ubicación y


ponemos el nombre a la clase principal: Create Main Class:
ejemploRecursivo05.CRecursivo05.

5. En el explorador de proyectos aparece el paquete ejemploRecursivo05 y la clase principal


CRecursivo05.java

6. El código generado es el siguiente:

• El Paquete donde se incluye nuestra clase


• La clase
• Dentro de la clase su constructor
• La función main( ) que viene a ser el programa principal

Ing. Aníbal Sardón Paniagua Sesión 3


Algoritmos y Estructuras de Datos Página: 14

EJEMPLO 06:

Programa recursivo que súmar los elementos de una Matriz

1. Ingresamos al entorno de desarrollo Netbeans:

2. Creamos un nuevo proyecto para lo cual ingresamos a la opción File New Project

3. En el asistente seleccionamos la opción para generar una aplicación General –


JavaApplication:

Ing. Aníbal Sardón Paniagua Sesión 3


Algoritmos y Estructuras de Datos Página: 15

4. Ponemos nombre al proyecto ( EjemploRecursivo06 ), seleccionamos la ubicación y


ponemos el nombre a la clase principal: Create Main Class:
ejemploRecursivo06.CRecursivo06.

5. En el explorador de proyectos aparece el paquete ejemploRecursivo06 y la clase principal


CRecursivo006.java

6. El código generado es el siguiente:

• El Paquete donde se incluye nuestra clase


• La clase
• Dentro de la clase su constructor
• La función main( ) que viene a ser el programa principal

Ing. Aníbal Sardón Paniagua Sesión 3


Algoritmos y Estructuras de Datos Página: 16

IV
ACTIVIDADES
01. Realizar un programa que mediante una función recursiva para convierta un número
decimal a binario y mediante otra función recursiva convierta un número binario a decimal.
02. Desarrollar un programa que mediante una función recursiva permita mostrar los elementos
de una matriz de M x N que estén por encima del promedio de todos sus valores.
03. Crear un programa que reciba 2 números por entrada y a través de una función recursiva
muestre todos los números PRIMOS que se encuentren entre dichos número.

Ing. Aníbal Sardón Paniagua Sesión 3

Você também pode gostar