ayuden a este novato es facil pliss java....factorial

Isaac
07 de Septiembre del 2008
hola neses ito mostrar en un applet con una caja de texto y un botton que me calcule el factorila el programa ya lo hi¡ze me falta el entorno grafico al que me ayude le caeran mi bendiciones y toda mi ayuda correo
[email protected]


a ver tengo esto
class factorial2 {
public static void main(String Args[]) {
int factorial[] = new int[999999];
int resto=0;
int numero = 56;
/*el factorial se hace de este numero, para obtener el factorial del numero que quieras solo
*tienes que cambiar esto, de momento solo garantizo el factorial hasta 127000(lo que he probado hasta ahora
*aunque creo que podria llegar hasta 150000 sin problemas pero no mucho mas porque si fuese mas grande
*podria exceder la capacidad del array. Se podria hacer un array bidimensional para obtener mas
*capacidad pero creo que de momento ya esta bien con uno unidimensional*/
int a=1, d=0, f=0;
factorial[0] = 1;
for(;a<=numero;a++) {
if(a%500 == 0)
System.out.println(a);
/*esto es para que el usuario sepa por que número va.*/
for(d=0;d<=f;d++) {
/*voy recorriendo los indices del array hasta llegar al indice maximo hasta el momento*/
factorial[d] = factorial[d] * a + resto;
resto = factorial[d] / 10;
/*el factorial se divide entre 10 para que la variable int me elimine el ultimo numero*/
factorial[d] = factorial[d] - (resto*10);
/*con esto obtengo el ultimo numero que es el que se quedara en el array*/
}
d--;
for(;f>=d;) {
if(resto==0) {
break;
}
f++;
/*aqui es cuando aumento el indice del array a medida que lo voy necesitando*/
factorial[f] = factorial[f] * a + resto;
resto = factorial[f] / 10;
factorial[f] = factorial[f] - (resto*10);
}
}
System.out.print("El factorial de: "+numero+" es: ");
for(d=f+1;f>=0;f--) {
System.out.print(factorial[f]);
}
System.out.println("nEste numero tiene: "+d+" cifras");
}
}

neossoftware
07 de Septiembre del 2008
Mira es dificil q alguien haga el trabajo por ti, asi q debes colocar preguntas mas explicitas y no del estilo necesito un programa....

Livio
07 de Septiembre del 2008
Es facil, solo tienes que extender las clases a Japplet e implementar ActionListener para que puedas progrmarle los eventos de los botones, lee un poco sobre AWT

Livio
07 de Septiembre del 2008
/*
* vamos a crear el mismo ejerccio de los factoriales pero con
* containers y con un boton
*/

package Capitulo_5;

import javax.swing.JApplet;
import java.awt.*; //creamos el contenedor
import java.awt.event.*;//ActionEvent, ActinListener
import javax.swing.*; //JApplet, JButton, JTextField,JLabel

/**
*
* @author Livio Gamboa Tosca
*/
public class FactorialesMejorado extends JApplet implements ActionListener{

//declaramos variables, botones y campos de texto
JLabel instruc,prueba;
JTextField cantidad,resultado,prueba2;
JButton factorial;
int ret,i,r;//las variables para la funcion

@Override
public void init() {
//creamos el contenedor que va aparecer en la pagina
Container contenedor = getContentPane();
contenedor.setLayout(new FlowLayout ());

Container contenedor2 = getContentPane();
contenedor2.setLayout(new FlowLayout());

//agregamos la etiqueta para las instrucciones
instruc = new JLabel("Escriba el numero que desea sacar el factrorial");
contenedor.add(instruc);

//agregamos el campo de texto para recibir la entrada
cantidad = new JTextField(3);
cantidad.setEditable(true);

contenedor.add(cantidad);

//creamos el boton
factorial = new JButton("Ver Resultado");
factorial.addActionListener(this);
contenedor.add(factorial);

//creamos una etiqueta para mostrar el resultado
resultado = new JTextField(10);
resultado.setEditable(false);
contenedor.add(resultado);

prueba = new JLabel("Prueba de Applet");
contenedor2.add(prueba);

}//del inicio

public void actionPerformed(ActionEvent factorial) {
//throw new UnsupportedOperationException("Not supported yet.");
factoriales();


}//del actionlistener

public int factoriales(){
int fac=1;
//tomamos el valor de tipo string "cantidad" y lo pasamos a tipo int
String cadena = cantidad.getText();
r= Integer.parseInt(cadena);
for(i=0;i<=r-1;i++){
fac= fac *(i+1);
}//del for
//le ponemos el resultado al cuadro resultado
resultado.setText(Integer.toString(fac));
return fac;
}//del metodo factoriales



}//de la clase