You are on page 1of 20

SEMESTRE ACADMICO 2012-1

ESTRUCTURA DE DATOS
ING. JUAN VERA CASTILLO

SESIN 6

Recursividad
Agosto 2010

CARRERA DE INGENIERA DE SISTEMAS

Estructura de datos

Recursividad en java

Ing. Juan Francisco Vera Castillo juanfvera@gmail.com


CARRERA DE INGENIERA DE SISTEMAS

Recursividad en java

CARRERA DE INGENIERA DE SISTEMAS

Contenido
TEMARIO * Introduccin. * Fundamentos de recursividad. * Tipos de recursividad * Programacin de aplicaciones. ACTIVIDADES PROPUESTAS * Los alumnos reconocen un programa recursivo. * Los alumnos usan mtodos recursivos en la sus aplicaciones.

CARRERA DE INGENIERA DE SISTEMAS

Contenido
TIPOS DE RECURSIVIDAD

Mtodos recursivos que retornan un valor


Mtodos recursivos tipo void

CARRERA DE INGENIERA DE SISTEMAS

Estructura de Datos
Sesin : Recursividad
Mtodos recursivos tipeados (retornan un valor)

CARRERA DE INGENIERA DE SISTEMAS

Mtodos recursivos Que retornan un valor

Mtodos que se invocan a s mismos, y retornan un valor.

CARRERA DE INGENIERA DE SISTEMAS

Sintaxis Representacin
tipo metodoRecursivo (parmetros) { if(condicin) return metodoRecursivo(parmetros); else return valor } Del mismo tipo

CARRERA DE INGENIERA DE SISTEMAS

Ejemplo 1 Obtener el factorial de n


Llamada del mtodo: int f = fact (3); Solucin : private long fact (int num) { if (num>1) return num*fact(num-1); else return 1; }

SALIDA :
CARRERA DE INGENIERA DE SISTEMAS

Ejemplo 1 Obtener el factorial de n

CARRERA DE INGENIERA DE SISTEMAS

Ejemplo 2 Obtener la sumatoria de los n


primeros nmeros enteros
Llamada del mtodo: int s = sum (3); Solucin :

private int sum (int num) { if (num>1) return num + sum(num-1); else return 1; }

SALIDA :
CARRERA DE INGENIERA DE SISTEMAS

Ejemplo 2 Mostrar la sumatoria de


los n primeros nmeros enteros

CARRERA DE INGENIERA DE SISTEMAS

Ejemplo 3

Obtener

los n primeros nmeros

en orden ascendente Llamada del mtodo: long x = enAsc(3); Solucin : private long enAsc(int n) { if (n>1) return n + 10*enAsc(n-1); else return 1; }

SALIDA :
CARRERA DE INGENIERA DE SISTEMAS

123

Ejemplo 3

Obtener

los n primeros nmeros

en orden ascendente

CARRERA DE INGENIERA DE SISTEMAS

Ejemplo 4 Obtener la sumatoria de los n


primeros nmeros pares
Llamada del mtodo:
int s = sumPares (3);

private int sumPares (int n) { if (n>1) { if(n % 2==0) return n + sumPares(n-1); else return sumPares(n-1); } else return 0; }

CARRERA DE INGENIERA DE SISTEMAS

Ejemplo 5
de un nmero

Obtener

la cantidad de dgitos

Llamada del mtodo: int x = cantDigits(471);

private int cantDigits(int n) { if (n>9) return 1 + cantDigits(n/10); else return 1; }

CARRERA DE INGENIERA DE SISTEMAS

Ejercicios de laboratorio
Implementar una clase para ingresar numeros enteros. Por cada nmero ingresado, el usuario podr hacer clic en el botn Mostrar factorial y ver el resultado en un TextArea. Implementar una clase para ingresar numeros enteros. Por cada nmero ingresado, el usuario podr hacer clic en el botn Sumatoria de los n primeros numeros y ver el resultado en un TextArea.

CARRERA DE INGENIERA DE SISTEMAS

Ejercicios laboratorio
Implementar una clase para ingresar numeros enteros. Por cada nmero ingresado, el usuario podr hacer clic en el botn Mostrar los n primeros numeros y ver el resultado en un TextArea. Implementar una clase para ingresar numeros enteros. Por cada nmero ingresado, el usuario podr hacer clic en el botn Sumatoria de los n primeros numeros pares y ver el resultado en un TextArea.

CARRERA DE INGENIERA DE SISTEMAS

Ejercicios de laboratorio
Implementar una clase para ingresar numeros enteros. Por cada nmero ingresado, el usuario podr hacer clic en el botn Mostrar cantidad de digitos y ver el resultado en un TextArea. Implementar una clase para ingresar nmeros enteros. Por cada nmero ingresado, el usuario podr hacer clic en el botn Suma de digitos del nmero y ver el resultado en un TextArea. Implementar una clase para ingresar nmeros enteros. Por cada nmero ingresado, el usuario podr hacer clic en el botn Digito izquierdo del nmero y ver el resultado en un TextArea.
CARRERA DE INGENIERA DE SISTEMAS

Discusin de Resultados

CARRERA DE INGENIERA DE SISTEMAS

You might also like