Recursividad

4 views
Skip to first unread message

Dairo Galeano

unread,
Mar 21, 2011, 6:09:54 PM3/21/11
to ELIPSIS
les voy ha plantear el problema de la recursividad, el cual no se
enseña en muchos cursos de programación, pero esta es muy fácil de
usarla, en esencia lo que se hace es llamar ha un método desde e
mismo método para resolver un problema que también se puede resolver
con estructuras iterativas.

La diferencia es que con la recursividad se reduce el código. Un
ejemplo claro de un problema que se puede resolver con recursividad es
el numero fibonacci.

A continuacion les presento un programa hecho en java que consta de
dos clases fibonaci y solucion, la primera contiene el método
recursivo y el segundo lo aplica en un JApplet que recibe un numero en
un JTextField y calcula el numero fibonacci. El código es el
siguiente.
La clase solucion que hace el trabajo sucio.

public class solucion {
private long fibo = 0;

/**
* Method solucion
*
*
*/
public solucion() {

}



/**
* Method calculaFibonacci que utiliza recursivida
*
*
* @return el numero fibonacci
*
*/
public long calculaFibonacci(long num) throws NumberFormatException {

if(num==0){
return 1;
}else{
return num*calculaFibonacci(num -1);
}
}
}


Clase fibonaci que aplica la clase anterior.

/**
* @(#)fibonaci.java
*
* fibonaci Applet application
*
* @author Dairop Galeano
* @version 1.00 2010/11/25
*/

import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class fibonaci extends Applet implements ActionListener{

private Label et1, et2;

private TextField eNum, mostron;

private Button b;
private solucion s;


public void init() {
this.setLayout( new FlowLayout());

s= new solucion();
et1= new Label("Ingresar numero");
eNum= new TextField(12);
b= new Button("calcular Fibonacci");
et2= new Label("
resultado");
mostron= new TextField(15);
mostron.setEditable(false);

add(et1);
add(eNum);
add(b);
b.addActionListener(this);
add(et2);
add(mostron);
}


public void actionPerformed(ActionEvent e){
long num;
long Nfibo;
try{
num= Long.parseLong(eNum.getText());
Nfibo= s.calculaFibonacci(num);
mostron.setText(String.valueOf(Nfibo));
getAppletContext().showStatus("Numero ingresado");
}
catch(NumberFormatException ex){
javax.swing.JOptionPane.showMessageDialog(this, "Debes escribir un
numero",
"valor no valido",

javax.swing.JOptionPane.ERROR_MESSAGE);
}




}


}

Tmabien les voy ha dejar todo el folder en le siguiente enlace. donde
esta el proyecto el la carpeta src esta el codigo y en classes estan
los .class y un html que contiene el Applet
http://dl.dropbox.com/u/23856316/fibonaci.rar
Reply all
Reply to author
Forward
0 new messages