elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


  Mostrar Mensajes
Páginas: 1 [2] 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ... 40
11  Programación / Java / simulador de procesos en: 23 Junio 2015, 03:36 am
Saludos

Tengo el siguiente programa que se trata de un simulador de procesos

Tengo que introducir desde el teclado N procesos, estos seran los que conformen los lotes,
la capacidad máxima de un lote es de 5, y si el número de procesos que se introduce
excede esta cantidad, se conformará otro lote.Al terminar un lote se ejecuta.

La información a capturar por cada proceso es:

1)Nombre de Programador
2)Operación(+,-,*,/) y datos a realizar(validar operaciones)
3 Tiempo Máximo Estimado (validar, debe ser mayor a 0)

Los procesos se atenderán en el orden en que se capturaron. En pantalla debe mostrarse lo
siguiente:

a) Procesos en Espera
   1) Nombre de programador
   2) Tiempo Maximo Estimado
   3) Si hay lotes en espera, anotar el número de lotes pendientes.
b) Proceso en Ejecucion
   1) Se deberán mostrar todos los datos del proceso (Nombre, Operacion, tiempo max)
   2) Tiempo transcurrido de ejecución
   3) Tiempo restante por ejecutar.
c) Procesos Terminados
   1) Número de Programa
   2) Operación y datos
   3) Resultado de la operación.

Desde que se inicia la simulacion, se desplegará un reloj global, es decir, un contador
que lleve el tiempo desde el inicio del programa hasta que termine
El programa se pausa una vez que se hayan realizado todas las operaciones.

hasta ahora tengo ya la parte que captura la información de los procesos y los va
almacenando en un arreglo de tipo infoProceso, pero no se bien como tengo que usar hilos
(Threads) para que se vayan ejecutando los procesos, tengo que usar una clase para los lotes???

el codigo es el siguiente:

Código
  1. class infoProceso{
  2. String nombreProgramador;
  3. int numeroPrograma,tiempoMaximo,num1,num2,resultado;
  4. char operador;
  5. }
  6.  
  7. public class ProcesamientoPorLotes
  8. {
  9. public static int MAX = 5;
  10. public static infoProceso[] lote = new infoProceso[50];
  11. public static void main(String[] args)
  12. {
  13. int numProcesos;
  14. Scanner entradaTeclado = new Scanner(System.in);
  15. System.out.println("Dame el numero de procesos: ");
  16. numProcesos = entradaTeclado.nextInt();
  17. entradaTeclado.close();
  18. capturarInformacion(numProcesos);
  19. }
  20.  
  21. public static void capturarInformacion(int numProcesos)
  22. {
  23. String nombre = "",operador = "";
  24. boolean opValido,tiempoValido = true,idRepetido = false;
  25. int tiempo,numero,i,j;
  26.        for(i = numProcesos;i > 0;i--)
  27.        {
  28. for(j = 0;j < MAX;j++)
  29. {
  30. Scanner teclado = new Scanner(System.in);
  31. //ingresar nombre del programador
  32. System.out.println("Dame Nombre de Programador: ");
  33. nombre = teclado.nextLine();
  34. lote[j].nombreProgramador = nombre;
  35. //ingresar la operación
  36. do
  37. {
  38. System.out.println("Dame la Operacion: ");
  39. operador = teclado.nextLine();
  40. teclado.close();
  41. opValido = validarOperador(operador);
  42. }while(!opValido);
  43. capturarOperacion(operador,j);
  44. //ingresar el máximo tiempo estimado
  45. do
  46. {
  47. System.out.println("Dame el tiempo maximo estimado: ");
  48. tiempo = teclado.nextInt();
  49. teclado.close();
  50. tiempoValido = validarTiempo(tiempo);
  51. }while(!tiempoValido);
  52. lote[j].tiempoMaximo = tiempo;
  53. //ingresar ID
  54. do
  55. {
  56.    System.out.println("Dame el numero de programa: ");
  57.    numero = teclado.nextInt();
  58.    teclado.close();
  59.    verificarID(numero);
  60. }while(idRepetido);
  61. }
  62. //
  63. }
  64. }
  65.  
  66. public static boolean verificarID(int numero)
  67. {
  68. boolean esRepetido = false;
  69. return esRepetido;
  70. }
  71.  
  72. public static boolean validarOperador(String op)
  73. {
  74. boolean esValido;
  75. char operador = op.charAt(0);
  76. if(operador == '+' || operador == '-' || operador == '*' || operador == '/')
  77.   esValido = true;
  78. else
  79.   esValido = false;
  80. return esValido;
  81. }
  82.  
  83. public static boolean validarTiempo(int tiempo)
  84. {
  85. boolean esValido = true;
  86. if(tiempo <= 0)
  87. {
  88.        System.out.println("Tiempo invalido (debe ser mayor a 0).\nIntroducir dato nuevamente");
  89.        esValido = false;
  90. }
  91. return esValido;
  92. }
  93.  
  94. public static void capturarOperacion(String op,int j){
  95. char operador = op.charAt(0);
  96. int num1,num2;
  97. Scanner entrada1 = new Scanner(System.in);
  98. Scanner entrada2 = new Scanner(System.in);
  99. System.out.println("Dame el numero1: ");
  100.        num1 = entrada1.nextInt();
  101.        System.out.println("Dame el numero2: ");
  102.        num2 = entrada2.nextInt();
  103.        lote[j].num1 = num1;
  104.    lote[j].num2 = num2;
  105.    lote[j].operador = operador;
  106. switch(operador)
  107. {
  108.    case '+':  
  109.       lote[j].resultado = lote[j].num1+lote[j].num2;
  110.       break;
  111.    case '-':
  112.       lote[j].resultado = lote[j].num1-lote[j].num2;
  113.       break;
  114.    case '*':
  115.       lote[j].resultado = lote[j].num1*lote[j].num2;
  116.       break;
  117.    case '/':
  118.       lote[j].resultado = lote[j].num1/lote[j].num2;
  119.       break;
  120. }
  121. entrada1.close();
  122. entrada2.close();
  123. }
  124. }
  125.  

de antemano gracias
12  Informática / Software / problema en virtualbox en: 9 Junio 2015, 20:22 pm
Saludos

Estoy teniendo problemas a la hora de querer bootear una USB en virtualbox. Lo primero que hice una vez que instale virtualbox y su sistema operativo(windows 7 32-bits) fue instalar el VM virtualbox Extension Pack y también el virtualbox Guest Additions para instalar los controladores(drivers) que le faltaban y habilito la USB. Una vez hecho esto instalo el plpbt.iso (herramienta para arrancar desde USB) y me voy a la ventana de Configuración, ahi en la parte donde dice Controlador: IDE me aparecen dos opciones:

plpbt.iso
VBoxGuestAdditions.iso

y en cada una de estas opciones tengo que seleccionar si es IDE secundario esclavo, IDE secundario maestro, IDE primario maestro o IDE primario esclavo.

Yo a plpbt le asigne IDE secundario maestro, y a GuestAdditions IDE secundario esclavo.

El problema es que a la hora de reiniciar la maquina para que boote desde la USB, no hace nada, me aparece: PORT 1: DEVICE CONNECTED, y eso es todo.

Alguna sugerencia de como solucionar esto??

de antemano gracias
13  Comunicaciones / Redes / Diseño de una red en: 25 Mayo 2015, 21:19 pm
Saludos

Estoy diseñando una red de computadoras en Packet Tracer para una pequeña empresa(ficticia). La red debe tener un máximo de 5 conexiones wireless, 25 nodos mínimo y una MDF y IDF. Yo ya sé como crear las redes inalámbricas y alámbricas en Packet Tracer. Ahorita ya tengo tres conexiones inalámbricas: una para el departamento de marketing, otra para ventas y otra para el departamento de soporte. El problema es que no se en qué departamentos sería conveniente poner una red alámbrica en vez de una inalámbrica (debo de usar ambas)

Alguna sugerencia????

De antemano gracias
14  Foros Generales / Dudas Generales / Re: servidores en: 10 Mayo 2015, 01:33 am
Por la redacción no te preocupes, que este no es un foro de la Real Academia de la Lengua Española :)
15  Foros Generales / Dudas Generales / servidores en: 9 Mayo 2015, 22:25 pm
Saludos

Estoy haciendo una investigación sobre servidores, los distintos tipos de servidores, sus aplicaciones, etc. Y estoy buscando información acerca de como configurar un servidor en Linux y en Windows, pero que sean servidores que no sean de computadoras de escritorio. He estado buscando pero no encuentro lo que busco. Alguna recomendación de donde puedo encontrar información de esto???

De antemano gracias
16  Foros Generales / Dudas Generales / discos, cilindros, pistas y sectores en: 20 Abril 2015, 01:34 am
Saludos

Tengo el siguiente problema de estructuras de archivos sobre la capacidad que tienen pistas sectores y unidades de discos dados algunos datos. En el siguiente ejemplo tengo los siguientes datos:

Capacidad de unidad de disco : 473.14453125MB
Número de pistas de un cilindro : 50
Número de sectores por pista: 102
 
y me dice que Determine el número de cilindros en el disco.

yo ya tengo las fórmulas para calcular esto:

numero de cilindros = capacidad de unidad/capacidad del cilindro

capacidad del cilindro = numero de pistas por cilindro X capacidad de la pista

capacidad de la pista = número de sectores por pista X bytes por sector

Aquí el único dato que me falta es el de BYTES POR SECTOR, y no estoy muy seguro de cómo calcularlo.

de antemano gracias
17  Programación / Java / interfaz grafica, eventos, hilos y stocks en: 7 Marzo 2015, 01:52 am
Saludos

he estado estudiando sobre hilos, interfaces graficas y eventos de boton, en practicas anteriores los habia programado por separado, pero en esta práctica tengo que usar tanto hilos, como interfaces, eventos, etc... Los requerimientos de la practica son:

1. Mostrar un área de texto
2. Mostrar una etiqueta "IP" seguida de un campo de texto a la derecha
3. Mostrar una etiqueta "mensaje" seguida de un campo de texto a la derecha
4. Mostrar un botón con la etiqueta "enviar"
5. Programar un Thread(como clase interna o externa a la clase Chat)
6. El hilo anterior se quede bloqueado a la espera de mensajes(como en Receptor.java)
7. El hilo imprima en el área de texto la IP de donde provenga el mensaje
8. Para la IP, se imprima sin la "/" usando el método getHostAdress() en lugar de toString()
9. El hilo imprima en el área de texto el contenido del mensaje que llegue
10. Realizar los puntos 7 al 10 para todo mensaje que llegue
11. Se puede probar la parte receptora de su chat si escucha al mismo puerto que el ejemplo
Receptor.java y se usa al Emisor.java para enviarle mensaje a su máquina.
12. Tras presionar el botón se obtenga el contenido del "campo IP" y del "campoMensaje"
13. Despues del paso anterior se inicien las instrucciones para emisión de mensaje por la red
(como en Emisor.java) usando los datos obtenidos del punto anterior.

ya tengo hecha la interfaz, y la clase Emisor y Receptor (que son las que envian los mensajes), el problema es que no se como manejar el hilo y las clases Emisor y Receptor en el codigo

Código
  1. import javax.swing.*;
  2. import javax.swing.GroupLayout.Alignment;
  3. import javax.swing.LayoutStyle.ComponentPlacement;
  4.  
  5. import java.awt.event.ActionEvent;
  6. import java.awt.event.ActionListener;
  7.  
  8. class Hilo extends Thread{
  9. private boolean puedeImprimir = true;
  10. private JTextArea areaTexto;
  11. private JTextField campoMensaje;
  12.  
  13. Hilo(JTextArea cuadroTexto,JTextField campoTexto1){
  14. areaTexto = cuadroTexto;
  15. campoMensaje = campoTexto1;
  16. }
  17.  
  18. public void ocurrioBotonazo()
  19. {
  20. if(puedeImprimir)
  21.   this.puedeImprimir = false;
  22. else
  23.   this.puedeImprimir = true;
  24. }
  25.  
  26. public void run()
  27. {
  28. //?????
  29. }
  30. }
  31.  
  32. class Interfaz extends JFrame implements ActionListener{
  33. private Hilo hilo;
  34. private GroupLayout marco;
  35. private JButton boton;
  36. private JLabel IP,mensaje;
  37. private JTextArea areaTexto;
  38. private JTextField campoIP,campoMensaje;
  39.  
  40. Interfaz(){
  41. marco = new GroupLayout(getContentPane());
  42. getContentPane().setLayout(marco);
  43.  
  44. boton = new JButton("enviar");
  45. IP = new JLabel("IP");
  46. mensaje = new JLabel("mensaje");
  47. areaTexto = new JTextArea();
  48. campoIP = new JTextField();
  49. campoMensaje = new JTextField();
  50. hilo = new Hilo(areaTexto,campoMensaje);
  51.  
  52. boton.addActionListener(this);
  53.  
  54. marco.setHorizontalGroup(
  55. marco.createParallelGroup(Alignment.LEADING)
  56. .addGroup(marco.createSequentialGroup()
  57. .addContainerGap()
  58. .addGroup(marco.createParallelGroup(Alignment.TRAILING)
  59. .addGroup(marco.createSequentialGroup()
  60. .addComponent(areaTexto, GroupLayout.DEFAULT_SIZE, 414, Short.MAX_VALUE)
  61. .addContainerGap())
  62. .addGroup(marco.createSequentialGroup()
  63. .addGroup(marco.createParallelGroup(Alignment.TRAILING)
  64. .addComponent(mensaje)
  65. .addComponent(IP))
  66. .addPreferredGap(ComponentPlacement.UNRELATED)
  67. .addGroup(marco.createParallelGroup(Alignment.LEADING, false)
  68. .addComponent(campoIP)
  69. .addComponent(campoMensaje, GroupLayout.DEFAULT_SIZE, 274, Short.MAX_VALUE))
  70. .addGap(43))))
  71. .addGroup(marco.createSequentialGroup()
  72. .addGap(185)
  73. .addComponent(boton)
  74. .addContainerGap(186, Short.MAX_VALUE))
  75. );
  76.  
  77. marco.setVerticalGroup(
  78. marco.createParallelGroup(Alignment.LEADING)
  79. .addGroup(marco.createSequentialGroup()
  80. .addContainerGap()
  81. .addComponent(areaTexto, GroupLayout.PREFERRED_SIZE, 85, GroupLayout.PREFERRED_SIZE)
  82. .addGap(18)
  83. .addGroup(marco.createParallelGroup(Alignment.BASELINE)
  84. .addComponent(campoIP, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
  85. .addComponent(IP))
  86. .addPreferredGap(ComponentPlacement.UNRELATED)
  87. .addGroup(marco.createParallelGroup(Alignment.BASELINE)
  88. .addComponent(mensaje)
  89. .addComponent(campoMensaje, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
  90. .addGap(30)
  91. .addComponent(boton)
  92. .addContainerGap(43, Short.MAX_VALUE))
  93. );
  94. }
  95.  
  96. public void actionPerformed(ActionEvent e) {
  97. hilo.ocurrioBotonazo();
  98.  
  99. }
  100. }
  101.  
  102. public class ChatUDP {
  103.  
  104. public static void main(String[] args) {
  105. Interfaz interfaz = new Interfaz();
  106. interfaz.setBounds(100, 100, 450, 300);
  107. interfaz.setTitle("ChatUDP");
  108. interfaz.setVisible(true);
  109. }
  110. }
  111.  

Código
  1. import java.net.DatagramSocket;
  2. import java.net.DatagramPacket;
  3. import java.net.SocketException;
  4. import java.net.InetAddress;
  5. import java.net.UnknownHostException;
  6. import java.io.IOException;
  7. import javax.swing.*;
  8.  
  9. public class Emisor {
  10. DatagramSocket emisionSocket;
  11. DatagramPacket paquete;
  12. String IP;
  13. byte[] mensaje;
  14.  
  15. Emisor(JTextField campoMensaje,JTextField campoIP){
  16. mensaje = campoMensaje.getText().getBytes();
  17. IP = campoIP.getText();
  18. }
  19.  
  20. public void main(JTextField campoMensaje,JTextField campoIP) {
  21. try
  22. {
  23. emisionSocket = new DatagramSocket();
  24. paquete = new DatagramPacket(mensaje,mensaje.length,InetAddress.getByName(IP),2001);
  25. emisionSocket.send(paquete);
  26. emisionSocket.close();
  27. }
  28. catch(SocketException e){
  29. e.getMessage();
  30. }
  31. e.getMessage();
  32. }
  33. catch(IOException e){
  34. e.getMessage();
  35. }
  36. }
  37.  
  38. }
  39.  

Código
  1. import java.net.DatagramSocket;
  2. import java.net.DatagramPacket;
  3. import java.net.SocketException;
  4. import java.io.IOException;
  5. import javax.swing.*;
  6. import javax.swing.GroupLayout.Alignment;
  7. import javax.swing.LayoutStyle.ComponentPlacement;
  8.  
  9. public class Receptor {
  10. DatagramSocket recepcionSocket;
  11. DatagramPacket paquete;
  12. int puerto = 2001;
  13. byte[] buffer = new byte[1024];
  14.  
  15. Receptor(JTextArea areaTexto)
  16. {
  17.  
  18. }
  19.  
  20. public void main() {
  21. try
  22. {
  23. recepcionSocket = new DatagramSocket(puerto);
  24. paquete = new DatagramPacket(buffer,buffer.length);
  25. recepcionSocket.receive(paquete);
  26. }
  27. catch(SocketException e)
  28. {
  29. e.getMessage();
  30. }
  31. catch(IOException e)
  32. {
  33. e.getMessage();
  34. }
  35. }
  36.  
  37. }
  38.  

de antemano gracias
18  Programación / Java / Re: sockets en: 3 Marzo 2015, 02:23 am
muchas gracias Gus Garsaky por tu respuesta, otra duda, si yo tengo aparte de la clase Emisor y Receptor otra clase en la que tengo dos atributos y esos atributos se los quiero pasar a la clase Emisor, seria algo como esto???

Código
  1. import java.net.DatagramSocket;
  2. import java.net.DatagramPacket;
  3. import java.net.SocketException;
  4. import java.net.InetAddress;
  5. import java.net.UnknownHostException;
  6. import java.io.IOException;
  7. import javax.swing.*;
  8.  
  9. public class Emisor {
  10. DatagramSocket emisionSocket;
  11. DatagramPacket paquete;
  12. String IP;
  13. byte[] mensaje;
  14.  
  15. Emisor(JTextField campoMensaje,JTextField campoIP){
  16. mensaje = campoMensaje.getText().getBytes();
  17. IP = campoIP.getText();
  18. }
  19.  
  20. public void main() {
  21. try
  22. {
  23. emisionSocket = new DatagramSocket();
  24. paquete = new DatagramPacket(mensaje,mensaje.length,InetAddress.getByName(IP),2001);
  25. emisionSocket.send(paquete);
  26. emisionSocket.close();
  27. }
  28. catch(SocketException e){
  29. e.getMessage();
  30. }
  31. e.getMessage();
  32. }
  33. catch(IOException e){
  34. e.getMessage();
  35. }
  36. }
  37.  
  38. }
  39.  

de antemano gracias
19  Programación / Java / sockets en: 1 Marzo 2015, 03:10 am
Saludos

Estoy empezando a estudiar sobre los sockets. Tengo este programa sencillo que me pasaron para estudiarlo, una clase se llama Emisor y la otra Receptor. Ya he estado leyendo sobre la clase DatagramPacket y DatagramSocket. La duda que tengo es si el codigo se puede realizar sin necesidad de tener dos archivos .java, y si se puede poner todo en un solo proyecto.

Código
  1. import java.net.DatagramSocket;
  2. import java.net.DatagramPacket;
  3. import java.net.SocketException;
  4. import java.net.InetAddress;
  5. import java.net.UnknownHostException;
  6. import java.io.IOException;
  7. public class Emisor{
  8. public static void main(String args[]){
  9. DatagramSocket socketEmision;
  10. String ip=args[0];
  11. String mensaje=args[1];
  12. //int puertoSalida=2002;
  13. byte[] buffer;
  14. //System.out.print("Iniciando socket emision en puerto "+puertoSalida+"...");
  15. try{
  16. socketEmision=new DatagramSocket();  //constructor sobrecargado para recibir o no un #puerto
  17. System.out.println("hecho");
  18. buffer=mensaje.getBytes();
  19. dp=new DatagramPacket(buffer,buffer.length,InetAddress.getByName(ip),2001);
  20. socketEmision.send(dp);
  21. System.out.print("Cerrando socket emision...");
  22. socketEmision.close();
  23. System.out.println("hecho");
  24. }catch(SocketException e){
  25. System.out.println("Error iniciando socket: "+e.getMessage());
  26. System.out.println("UnknownHostException: "+e.getMessage());
  27. }catch(IOException e){
  28. System.out.println("IOException: "+e.getMessage());
  29. }
  30. }
  31. }

y el otro es:

Código
  1. import java.net.DatagramSocket;
  2. import java.net.DatagramPacket;
  3. import java.net.SocketException;
  4. import java.io.IOException;
  5. public class Receptor{
  6. public static void main(String args[]){
  7. DatagramSocket socketRecepcion;
  8. int puertoEntrada=2001;
  9. byte[] buffer=new byte[1024];
  10. System.out.print("Iniciando socket recepcion en puerto "+puertoEntrada+"...");
  11. try{
  12. socketRecepcion=new DatagramSocket(puertoEntrada);
  13. System.out.println("hecho");
  14. dp=new DatagramPacket(buffer,buffer.length);
  15. while(true){//deseable validar con bandera
  16. socketRecepcion.receive(dp);
  17. System.out.print("IP emisora: "+dp.getAddress().toString()+":");
  18. System.out.println(new String(buffer,0,dp.getLength()));
  19. }
  20. //socketRecepcion.close();//código inalcanzable sin bandera
  21. }catch(SocketException e){
  22. System.out.println("Error iniciando socket: "+e.getMessage());
  23. }catch(IOException e){
  24. System.out.println("IOException: "+e.getMessage());
  25. }
  26. System.out.print("Cerrando socket recepcion...");
  27. System.out.println("hecho");
  28. }
  29. }

es estrictamente necesario tener dos archivos???
20  Programación / Java / Interfaz Grafica con GroupLayout en: 22 Febrero 2015, 19:31 pm
Saludos

Estoy haciendo una interfaz gráfica utilizando GroupLayout, esto porque me permite ponerle la posición y el tamaño que yo quiero a los componentes de la interfaz.

Yo también había hecho una interfaz así con el uso de WindowBuilder, pero ahora quiero hacerla desde 0.

Código
  1. import javax.swing.*;
  2.  
  3. class Interfaz extends JFrame{
  4. private JTextArea areaTexto;
  5. private JButton boton;
  6. private JLabel IP,mensaje;
  7. private JTextField campoIP,campoMensaje;
  8.  
  9. Interfaz(){
  10. areaTexto = new JTextArea();
  11.  
  12. boton = new JButton("enviar");
  13.  
  14. IP = new JLabel("IP");
  15. mensaje = new JLabel("mensaje");
  16.  
  17. campoIP = new JTextField();
  18. campoIP.setColumns(10);
  19. campoMensaje = new JTextField();
  20. campoMensaje.setColumns(10);
  21.  
  22.  
  23. }
  24. }
  25.  
  26. public class ChatUDP {
  27.  
  28. public static void main(String[] args){
  29. Interfaz interfaz = new Interfaz();
  30. interfaz.setBounds(100, 100, 450, 300);
  31. interfaz.setTitle("ChatUDP");
  32. interfaz.setVisible(true);
  33. interfaz.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  34. GroupLayout groupLayout = new GroupLayout(interfaz.getContentPane());
  35. interfaz.getContentPane().setLayout(groupLayout);
  36. }
  37. }
  38.  

esto es lo que llevo hasta ahora, pero no se bien como usar el GroupLayout para agregarle los componentes al Frame

de antemano gracias
Páginas: 1 [2] 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ... 40
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines