Sesion 03 Recursividdad Sobrecarga Metodos

download Sesion 03 Recursividdad Sobrecarga Metodos

of 12

Transcript of Sesion 03 Recursividdad Sobrecarga Metodos

TECNICAS DE PROGRAMACIONUniversidad Catlica Los Angeles de Chimbote

RECURSIVIDAD Y SOBRECARGA DE METODOS

RECURSIVIDAD Un mtodo es recursivo cuando se llama a si mismo ya sea directamente e indirectamente. Si un mtodo recursivo se invoca con un caso base, simplemente devuelve un resultado. Si el mtodo se invoca con un problema ms complejo, divide el problema en dos o ms partes conceptuales: una parte del mtodo sabe como resolver y una versin un poco ms pequea del problema original. Dado que este nuevo problema se asemeja al problema original, el mtodo emite una llamada recursiva para trabajar con el problema reducido. Para que la recursividad termine, cada vez que el mtodo recursivo se llama a si mismo con una versin un poco ms sencilla del problema original, la secuencia

Docente: Ing. Martn Salcedo Quiones

Pagina: 1

TECNICAS DE PROGRAMACIONUniversidad Catlica Los Angeles de Chimbote de problemas cada vez menores debe convergir hacia el caso base. Cuando el mtodo reconoce el caso base, devuelve el resultado a la llamada de mtodo previa, y se inicia una secuencia de devoluciones que termina cuando la llamada del mtodo original devuelve el resultado final. Recursividad vs Iteracin Tanto la iteracin como la recursin se basan en una estructura de control.: La iteracin usa una estructura de repeticin; la recursin una estructura de seleccin. Tanto la iteracin como la recursin implican repeticin: la iteracin emplea explcitamente una estructura de repeticin; la recursin logra la repeticin mediante llamadas de mtodos repetidas Tanto la iteracin como la recursin incluyen una prueba de terminacin; la iteracin termina cuando deja de cumplirse la condicin para continuar el ciclo; la recursin termina cuando se reconoce el caso base. PROGRAMAS RESUELTOS 1) Hacer un programa para calcular el factorial de un nmero. import java.io.*; public class Recursividad01{ public static int factorial(int n) { if(n==0) return 1; else return n*factorial(n-1); }

Docente: Ing. Martn Salcedo Quiones

Pagina: 2

TECNICAS DE PROGRAMACIONUniversidad Catlica Los Angeles de Chimbote public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int num; do{ System.out.print("Ingrese numero :"); num=Integer.parseInt(br.readLine()); }while(num