Foro de elhacker.net

Programación => Java => Mensaje iniciado por: fosh en 27 Abril 2011, 07:23 am



Título: Ayuda Matriz java!
Publicado por: fosh en 27 Abril 2011, 07:23 am
Hola que tal estoy haciendo esta matriz, lo que tengo que hacer es llenarla con numero primos, y si no es primo me mande un mensaje, pero que no se guarde en la matriz, mi problema es que si no es numero primo se guarda como un 0 ¿como puedo evitar eso?

espero y me puedan ayudar aquí esta mi código;

Código
  1. import java.io.*;
  2. class pri{
  3.  
  4. int Matriz[][];
  5.  
  6. static String f(){
  7. String dato="";
  8. try{
  9. dato=fosh.readLine();
  10. }catch(IOException error){};
  11.  
  12. return dato;
  13. }//fin del metodo
  14.  
  15. public void llenado(){
  16. int num=0;
  17. Matriz = new int [2][4];
  18. for(int x=0; x<2; x++){
  19. for(int y=0; y<4; y++){
  20. try
  21. {
  22. System.out.print("Introduce un numero: "+(x+1)+"......");
  23. num = Integer.parseInt(f());
  24. int count = 0;
  25. for (int i = 1; i <= num; i++)
  26. {
  27. if (num%i == 0)
  28. {
  29. count++;
  30. }
  31. }
  32. if (count <= 2){
  33. if(num>0){
  34. Matriz [x] [y]=num; // aqui es matriz en la posicion x y y solo que sale un cuadro negro
  35. }
  36. System.out.println("El numero es primo");
  37. }else{
  38. System.out.println("El numero NO es primo");
  39. }
  40. }catch(Exception e)
  41. {
  42. System.out.println("Ha ocurrido un error al leer el dato...");
  43. }
  44. }
  45. }
  46. }//fin del metodo
  47.  
  48. public void imprimir(){
  49. for(int x=0; x<2;x++){
  50. for(int y=0; y<4;y++){
  51. System.out.print(Matriz[x][y]+"\t");
  52. }
  53. System.out.println();
  54. }
  55. }
  56.  
  57. public static void main(String args[]){
  58. pri fosh = new pri();
  59. fosh.llenado();
  60. fosh.imprimir();
  61. }//fin del main
  62. }//fin de la clase

saludos!!


Título: Re: Ayuda Matriz java!
Publicado por: NetJava en 27 Abril 2011, 12:35 pm
Buenas, espero que esto te ayude, en vez de mover la matriz con los bucles pon una variable a la que le vayas sumando 1 cada vez que se pase por el bucle y sea primo tu número, y esa la utilizas para mover tu matriz, así no dependes del bucle para mover la matriz.

Saludos.


Título: Re: Ayuda Matriz java!
Publicado por: Valkyr en 27 Abril 2011, 16:01 pm
Una de dos o haces como dice NetJava o dentro de los dos bucles for incluyes un bucle while que haga lo siguiente: lees un número, haces los cálculos necesarios para saber si es primo o no, entonces en la condición del while haces que continúe la ejecución (es decir, vuelva a pedir un número y vuelvas a comprobar si es primo) si no cumple la condición (es primo) lo introduces en la matriz y listo. A la hora de mostrar el mensaje por pantalla podrías hacerlo dentro del bucle while pero entonces tendrías que hacer una comprobación de si es primo fuera. El algoritmo quedaría así más o menos:


Código
  1. public void llenado(){
  2.  
  3. for(int x=0;x<.........)
  4.     for(int y=0;y<........)
  5.         leer un número;
  6.         calculos para saber si es primo;
  7.         while(!esPrimo){
  8.                 System.out.println("No es primo");
  9.                 lees otro número de teclado;
  10.                 calculos para saber si es primo;
  11.        }
  12.        Introduces el numero leido en la matriz;
  13. }

Espero te sirva!!!!! saludos


Título: Re: Ayuda Matriz java!
Publicado por: fosh en 27 Abril 2011, 16:36 pm
Gracias la verdad las dos respuestas me sirvieron bastante, ya me salio el problema como yo quería gracias de antemano...

saludos y gracias por ayudarme de nuevo...