
Factorizar en 3 procesos... AYUDAAAAA!!!!
Publicado por Sebastian Ibarra (2 intervenciones) el 25/11/2014 02:29:29
Hola, soy nuevo en esto y necesito ayuda, estoy un tanto perdido, ya que retome mis estudios y estoy un poco oxidado en la materia, y tengo que hacer un ejercicio, me podrian ayudar? de antemano gracias.
Este es el ejercicio:
1. Debe crear una aplicación en ambiente gráfico que permita calcular el factorial de un número utilizando multiproceso.
2. Se debe solicitar el número a calcular y la cantidad de procesos que desea ejecutar (de 1 a 3).
3. El programa debe mostrar el resultado por la ventana gráfica.
4. Se debe almacenar en un log (utilice log4j) la ejecución de cada proceso y además los tiempos de ejecución de los mismos y el tiempo total de ejecución.
5. Ejecutar su aplicación con 1, 2, 3 procesos y entregar junto al programa una gráfica de tiempos de ejecución para 5 valores distintos.
Usar long
n! = 1*2*3*4*5*6*….*n-1*n
y hasta ahora he hecho esto :
Este es el ejercicio:
1. Debe crear una aplicación en ambiente gráfico que permita calcular el factorial de un número utilizando multiproceso.
2. Se debe solicitar el número a calcular y la cantidad de procesos que desea ejecutar (de 1 a 3).
3. El programa debe mostrar el resultado por la ventana gráfica.
4. Se debe almacenar en un log (utilice log4j) la ejecución de cada proceso y además los tiempos de ejecución de los mismos y el tiempo total de ejecución.
5. Ejecutar su aplicación con 1, 2, 3 procesos y entregar junto al programa una gráfica de tiempos de ejecución para 5 valores distintos.
Usar long
n! = 1*2*3*4*5*6*….*n-1*n
y hasta ahora he hecho esto :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package factorial;
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class Factorial extends JFrame{
private JButton calcular, salir;
private JTextField numero, resultado;
private JPanel panel;
public Factorial(){
setTitle("Factorial");
setSize(550,150);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
add(getGUI());
setVisible(true);
}
/*función para calcular el factorial*/
public static int factorial(int n){
if(n==0){
return 1;
}else{
return n * factorial(n-1);
}
}
public JPanel getGUI(){
panel=new JPanel();
numero=new JTextField(6);
numero.setToolTipText("debes colocar un número");
numero=new JTextField(15);
numero.setBounds(180,10,150,30);
getContentPane().add(numero);
calcular=new JButton("Calcular");
calcular.setToolTipText("calcular factorial");
salir=new JButton("Salir");
salir.setToolTipText("quitar aplicación");
resultado =new JTextField(5);
resultado.setVisible(true);
/*para el botón calcular*/
ActionListener actionListener1= new ActionListener(){
public void actionPerformed(ActionEvent ev){
/*evento*/
int res=factorial( Integer.parseInt(numero.getText()));
resultado.setText(String.valueOf(res));
resultado.setVisible(true);
}
};
/*para el botón salir*/
ActionListener actionListener2= new ActionListener(){
public void actionPerformed(ActionEvent ev){
System.exit(0);
}
};
calcular.addActionListener(actionListener1);
salir.addActionListener(actionListener2);
panel.add(new JLabel("Ingresar Número"));
panel.setBounds(20,10,150,30);
getContentPane().add(panel);
panel.add(numero);
panel.add(calcular);
panel.add(resultado);
panel.add(salir);
return panel;
}
/*método principal del programa*/
public static void main(String ... args)throws Exception{
for(UIManager.LookAndFeelInfo laf:UIManager.getInstalledLookAndFeels()){
if("Nimbus".equals(laf.getName()))
try {
UIManager.setLookAndFeel(laf.getClassName());
new Factorial();
}
catch (ClassNotFoundException e) {
System.out.println("[Main.main:ClassNotFoundException]"+ e.getMessage());
}
catch (InstantiationException e) {
System.out.println("[Main.main:InstantiationException]"+ e.getMessage());
}
}
}
}
Valora esta pregunta


0