Autor Tema: hola tengo una duda Guardar una matriz en un vector java  (Leído 24816 veces)

Mac

  • Intermedio
  • ***
  • Mensajes: 174
  • Java-Php
    • Ver Perfil
hola tengo una duda Guardar una matriz en un vector java
« en: 15 de Septiembre 2013, 04:07 »
Quisiera como saber  guardar una matriz en un vector de n*n posiciones ....Les agradecería de antemano su ayuda comunidad !

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:hola tengo una duda Guardar una matriz en un vector java
« Respuesta #1 en: 15 de Septiembre 2013, 11:16 »
Hola, aquí hay una explicación sobre uso de matrices o arrays multidimensionales en Java: http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=233:arrays-arreglos-multidimensionales-en-java-declaracion-y-uso-ejemplos-y-ejercicios-resueltos-cu00904c&catid=58:curso-lenguaje-programacion-java-nivel-avanzado-i&Itemid=180

Aunque no sé si se corresponde con lo que quieres hacer ¿qué es exactamente lo que quieres hacer?

Responsable de departamento de producción aprenderaprogramar.com

Mac

  • Intermedio
  • ***
  • Mensajes: 174
  • Java-Php
    • Ver Perfil
Re:hola tengo una duda Guardar una matriz en un vector java
« Respuesta #2 en: 15 de Septiembre 2013, 15:11 »
Bueno yo ya e mirado todo eso amigo gracias por tu ayuda !! te agradezco Mucho .... La situación es la siguiente ! .... colocare el código que e realizado necesitando solucionar la opción 8 del menú Que es Guardar en un Vector... A qui esta el código que e realizado.
------------------------------------------------------------------------------
public class Menu_matriz {
   
    public static void main(String[] args){
     
       String menu="MENU DE MATRICES \n";
     
      int i,j;
      int n=Integer.parseInt(JOptionPane.showInputDialog(" Cuantas filas ? "));
      int a[][]=new int [n][n];
      int b[][]=new int [n][n];
      int c[][]=new int [n][n];
      int vector []= new int[n*n];
     
      llenar_matrices(a,b,n);
      int op=0;
      menu+="1.  Suma de matrices\n";
      menu+="2.  Transpuesta de matriz\n";
      menu+="3.  Intercambiar filas\n";
      menu+="8.  Guardar en Vector\n";
      menu+="12. Imprimir Matriz por consola\n";
      menu+="13. Imprimir Matriz por ventanas\n";
      menu+="20. Fin\n";
      menu+="Escoja Opción:\n";
      while (op!=20){
         op=Integer.parseInt(JOptionPane.showInputDialog(menu));
         switch (op){
         case 1:
            sumar(a,b,c,n);
           break;
         case 2:
            transpuesta(a,c,n);
            break;
         case 3:
            intercambia_filas(a,c,n);
            break;
         case 8:
          Guardar_Vector(a,b,n);
            break;
         case 12:
            imprimir (a,n);
             break;
         case 13:
            imprime_ventana(a,n,"Matriz A-------GARROTE");
              break;
         case 20:
            break;
         }
      }
   }// cierre del  public static void main Ojo !!!! //------------------
    static void sumar(int a1[][], int b1[][],int c1[][], int n1){
     
      for (int i=0;i<n1;i++){
      for (int j=0;j<n1;j++){
      c1[j] = a1[j] + b1[j];
      }
      }
      imprime_ventana(a1,n1,"Matriz A");
      imprime_ventana(b1,n1,"Matriz B");
      imprime_ventana(c1,n1,"Matriz A+B");
   }
   static void transpuesta(int a[][],int c[][], int n){
      int i,j;
      for(i=0;i<n;i++){
         for(j=0;j<n;j++){
            c[j]=a[j];
         }
      }
      imprime_ventana(a,n,"Matriz A");
      imprime_ventana(c,n,"Matriz Transpuesta");
   }
   static void intercambia_filas(int a[][],int c[][],int n){
      int i,j,t;
      for(i=0;i<n;i++){
         for(j=0;j<n;j++){
            c[j]=a[j];
   }
      }
      int f1=Integer.parseInt(JOptionPane.showInputDialog("Digite primera fila a intercambiar"));
      int f2=Integer.parseInt(JOptionPane.showInputDialog("Digite segunda fila a intercambiar"));
      for(j=0;j<n;j++){
         t=c[f1][j];
         c[f1][j]=c[f2][j];
         c[f2][j]=t;
      }
      imprime_ventana(a,n,"Matriz A");
      imprime_ventana(c,n,"Matriz de filas intercambiadas");
   }
   static void Guardar_Vector(int a[][],int b[][], int n){
 
     
   }
   
   
   static void llenar_matrices(int a1[][], int b1[][],int n1){
      for (int i=0;i<n1;i++){
         for (int j=0;j<n1;j++){
            a1[j]=(int)(Math.random()*10);
            b1[j]=(int)(Math.random()*10);
         }
      }
   }
   static void imprimir(int m[][], int n1){
      for (int i=0;i<n1;i++){
         for (int j=0;j<n1;j++){
            System.out.print(m[j]+"\t");
         }
         System.out.println(" ");
      }
   }
   static void imprime_ventana (int a[][],int n,String mensaje){
      String salida="";
       for (int i=0;i<n;i++){
         for(int j=0;j<n;j++){
            salida=salida+ a[j]+"\t";
         }
         salida=salida+"\n";
      }
         JTextArea area= new JTextArea();
         area.setText(salida);
         JOptionPane.showMessageDialog(null,area,mensaje,JOptionPane.PLAIN_MESSAGE);
   }
   }/// cierre class

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:hola tengo una duda Guardar una matriz en un vector java
« Respuesta #3 en: 15 de Septiembre 2013, 21:09 »
Hola, te comento algunas cuestiones: por un lado, cuando vayas a poner código debes usar el botón con el símbolo # que te aparece en el editor del foro, e introducir el código entre los símbolos [ code] ... [/ code] que te aparecerán, sino el código puede aparecer incompleto o incorrectamente.

En segundo lugar, no repitas el mismo mensaje en varios hilos del foro porque confunde al parecer que es otro problema o cuestión distinta, y se agradece no confundir.

Sobre el código en sí, voy a poner aquí lo que creo es el código que tú pegaste añadiendo las cosas que no quedaron bien por no usar el botón #

Código: [Seleccionar]
import javax.swing.JOptionPane;
import javax.swing.JTextArea;

public class Menu_matriz {
   
    public static void main(String[] args){
     
       String menu="MENU DE MATRICES \n";
     
      int i,j;
      int n=Integer.parseInt(JOptionPane.showInputDialog(" Cuantas filas ? "));
      int a[][]=new int [n][n];
      int b[][]=new int [n][n];
      int c[][]=new int [n][n];
      int vector []= new int[n*n];
     
      llenar_matrices(a,b,n);
      int op=0;
      menu+="1.  Suma de matrices\n";
      menu+="2.  Transpuesta de matriz\n";
      menu+="3.  Intercambiar filas\n";
      menu+="8.  Guardar en Vector\n";
      menu+="12. Imprimir Matriz por consola\n";
      menu+="13. Imprimir Matriz por ventanas\n";
      menu+="20. Fin\n";
      menu+="Escoja Opción:\n";
      while (op!=20){
         op=Integer.parseInt(JOptionPane.showInputDialog(menu));
         switch (op){
         case 1:
            sumar(a,b,c,n);
           break;
         case 2:
            transpuesta(a,c,n);
            break;
         case 3:
            intercambia_filas(a,c,n);
            break;
         case 8:
          Guardar_Vector(a,b,n);
            break;
         case 12:
            imprimir (a,n);
             break;
         case 13:
            imprime_ventana(a,n,"Matriz A-------GARROTE");
              break;
         case 20:
            break;
         }
      }
   }// cierre del  public static void main Ojo !!!! //------------------
    static void sumar(int a1[][], int b1[][],int c1[][], int n1){
     
      for (int i=0;i<n1;i++){
      for (int j=0;j<n1;j++){
      c1[i][j] = a1[i][j] + b1[i][j];
      }
      }
      imprime_ventana(a1,n1,"Matriz A");
      imprime_ventana(b1,n1,"Matriz B");
      imprime_ventana(c1,n1,"Matriz A+B");
   }
   static void transpuesta(int a[][],int c[][], int n){
      int i,j;
      for(i=0;i<n;i++){
         for(j=0;j<n;j++){
            c[i][j]=a[j][i];
         }
      }
      imprime_ventana(a,n,"Matriz A");
      imprime_ventana(c,n,"Matriz Transpuesta");
   }
   static void intercambia_filas(int a[][],int c[][],int n){
      int i,j,t;
      for(i=0;i<n;i++){
         for(j=0;j<n;j++){
            c[i][j]=a[i][j];
   }
      }
      int f1=Integer.parseInt(JOptionPane.showInputDialog("Digite primera fila a intercambiar"));
      int f2=Integer.parseInt(JOptionPane.showInputDialog("Digite segunda fila a intercambiar"));
      for(j=0;j<n;j++){
         t=c[f1][j];
         c[f1][j]=c[f2][j];
         c[f2][j]=t;
      }
      imprime_ventana(a,n,"Matriz A");
      imprime_ventana(c,n,"Matriz de filas intercambiadas");
   }
   static void Guardar_Vector(int a[][],int b[][], int n){
 
     
   }
   
   
   static void llenar_matrices(int a1[][], int b1[][],int n1){
      for (int i=0;i<n1;i++){
         for (int j=0;j<n1;j++){
            a1[i][j]=(int)(Math.random()*10);
            b1[i][j]=(int)(Math.random()*10);
            System.out.println("Control apr " + a1[i][j] + " - " + b1[i][j]);
         }
      }
   }
   static void imprimir(int m[][], int n1){
       
      for (int i=0;i<n1;i++){
         for (int j=0;j<n1;j++){
            System.out.print(m[i][j]+"\t");
         }
         System.out.println(" ");
      }
   }
   static void imprime_ventana (int a[][],int n,String mensaje){
      String salida="";
       for (int i=0;i<n;i++){
         for(int j=0;j<n;j++){
            salida=salida+ a[i][j]+"\t";
         }
         salida=salida+"\n";
      }
         JTextArea area= new JTextArea();
         area.setText(salida);
         JOptionPane.showMessageDialog(null,area,mensaje,JOptionPane.PLAIN_MESSAGE);
   }
   }/// cierre class
« Última modificación: 15 de Septiembre 2013, 21:20 por César Krall »
Responsable de departamento de producción aprenderaprogramar.com

Mac

  • Intermedio
  • ***
  • Mensajes: 174
  • Java-Php
    • Ver Perfil
Re:hola tengo una duda Guardar una matriz en un vector java
« Respuesta #4 en: 15 de Septiembre 2013, 21:19 »
si el cogido esta bien cesar ... Mil y Mil Disculpas es que soy nuevo y tengo un poco de desespero es que no e podido encontrar la solución del menú 8 .. que pena de verdad pido nuevamente disculpa me gustaría que me ayudaras en este problema de como guardar en un vector la matriz ! Muchas gracias de ante mano !! ;)

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:hola tengo una duda Guardar una matriz en un vector java
« Respuesta #5 en: 15 de Septiembre 2013, 21:20 »
Estoy mirándolo, en cuanto tenga algo te respondo. Saludos!
Responsable de departamento de producción aprenderaprogramar.com

Mac

  • Intermedio
  • ***
  • Mensajes: 174
  • Java-Php
    • Ver Perfil
Re:hola tengo una duda Guardar una matriz en un vector java
« Respuesta #6 en: 15 de Septiembre 2013, 21:27 »
Gracias Cesar Muchísimas Gracias ..

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:hola tengo una duda Guardar una matriz en un vector java
« Respuesta #7 en: 15 de Septiembre 2013, 21:45 »
Aquí te pongo el código que podría ser una solución, aunque no sé exactamente si es así como lo quieres.

Yo esto suponiendo que si tienes una matriz como:

[ 9 8 7
  2 6 5
  9 9 2 ]

Lo que quieres es generar un vector con los elementos de la matriz extrayendo fila a fila, de forma que el vector quedaría así:

[9  , 8  , 7  , 2  , 6  , 5  , 9  , 9  , 2  ]

Código ampliado:

Código: [Seleccionar]
import javax.swing.JOptionPane;
import javax.swing.JTextArea;

public class Menu_matriz {

    public static void main(String[] args){

        String menu="MENU DE MATRICES \n";

        int i,j;
        int n=Integer.parseInt(JOptionPane.showInputDialog(" Cuantas filas ? "));
        int a[][]=new int [n][n];
        int b[][]=new int [n][n];
        int c[][]=new int [n][n];
        int vector []= new int[n*n];

        llenar_matrices(a,b,n);
        int op=0;
        menu+="1.  Suma de matrices\n";
        menu+="2.  Transpuesta de matriz\n";
        menu+="3.  Intercambiar filas\n";
        menu+="8.  Guardar en Vector\n";
        menu+="12. Imprimir Matriz por consola\n";
        menu+="13. Imprimir Matriz por ventanas\n";
        menu+="20. Fin\n";
        menu+="Escoja Opción:\n";
        while (op!=20){
            op=Integer.parseInt(JOptionPane.showInputDialog(menu));
            switch (op){
                case 1:
                sumar(a,b,c,n);
                break;
                case 2:
                transpuesta(a,c,n);
                break;
                case 3:
                intercambia_filas(a,c,n);
                break;
                case 8:
                Guardar_Vector(a, vector, n);
                break;
                case 12:
                imprimir (a,n);
                break;
                case 13:
                imprime_ventana(a,n,"Matriz A-------GARROTE");
                break;
                case 20:
                break;
            }
        }
    }// cierre del  public static void main Ojo !!!! //------------------
    static void sumar(int a1[][], int b1[][],int c1[][], int n1){

        for (int i=0;i<n1;i++){
            for (int j=0;j<n1;j++){
                c1[i][j] = a1[i][j] + b1[i][j];
            }
        }
        imprime_ventana(a1,n1,"Matriz A");
        imprime_ventana(b1,n1,"Matriz B");
        imprime_ventana(c1,n1,"Matriz A+B");
    }


    static void transpuesta(int a[][],int c[][], int n){
        int i,j;
        for(i=0;i<n;i++){
            for(j=0;j<n;j++){
                c[i][j]=a[j][i];
            }
        }
        imprime_ventana(a,n,"Matriz A");
        imprime_ventana(c,n,"Matriz Transpuesta");
    }


    static void intercambia_filas(int a[][],int c[][],int n){
        int i,j,t;
        for(i=0;i<n;i++){
            for(j=0;j<n;j++){
                c[i][j]=a[i][j];
            }
        }
        int f1=Integer.parseInt(JOptionPane.showInputDialog("Digite primera fila a intercambiar"));
        int f2=Integer.parseInt(JOptionPane.showInputDialog("Digite segunda fila a intercambiar"));
        for(j=0;j<n;j++){
            t=c[f1][j];
            c[f1][j]=c[f2][j];
            c[f2][j]=t;
        }
        imprime_ventana(a,n,"Matriz A");
        imprime_ventana(c,n,"Matriz de filas intercambiadas");
    }


    static void Guardar_Vector(int a[][], int vector[], int n){
        int i,j;
        int contador = 0;
        for(i=0;i<n;i++){
            for(j=0;j<n;j++){
                vector[contador]=a[i][j];
                contador = contador+1;
            }
        }
       
        imprime_ventana(a,n,"Matriz A");
        imprime_ventana_vector(vector,n,"Vector generado");

    }

    static void llenar_matrices(int a1[][], int b1[][],int n1){
        for (int i=0;i<n1;i++){
            for (int j=0;j<n1;j++){
                a1[i][j]=(int)(Math.random()*10);
                b1[i][j]=(int)(Math.random()*10);
                //System.out.println("Control apr " + a1[i][j] + " - " + b1[i][j]);
            }
        }
    }


    static void imprimir(int m[][], int n1){

        for (int i=0;i<n1;i++){
            for (int j=0;j<n1;j++){
                System.out.print(m[i][j]+"\t");
            }
            System.out.println(" ");
        }
    }


    static void imprime_ventana (int a[][],int n,String mensaje){
        String salida="";
        for (int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                salida=salida+ a[i][j]+"\t";
            }
            salida=salida+"\n";
        }
        JTextArea area= new JTextArea();
        area.setText(salida);
        JOptionPane.showMessageDialog(null,area,mensaje,JOptionPane.PLAIN_MESSAGE);
    }

    static void imprime_ventana_vector (int a[],int n,String mensaje){
        String salida="[";
        for (int i=0;i<n*n;i++){

            salida=salida+ a[i]+"  ";

            if (i != n*n-1) {salida=salida+", ";} else {salida=salida+"] ";}
        }
        JTextArea area= new JTextArea();
        area.setText(salida);
        JOptionPane.showMessageDialog(null,area,mensaje,JOptionPane.PLAIN_MESSAGE);
    }

}/// cierre class


Esto es lo que hace el código que te he puesto. He tenido que crear un método para imprimir el vector, revísalo a ver si te sirve. Saludos y suerte.
Responsable de departamento de producción aprenderaprogramar.com

Mac

  • Intermedio
  • ***
  • Mensajes: 174
  • Java-Php
    • Ver Perfil
Re:hola tengo una duda Guardar una matriz en un vector java
« Respuesta #8 en: 16 de Septiembre 2013, 17:26 »
Hola cesar Muchísimas Gracias .. por entenderme lo que se tenia propuesto hacer Muchísimas Gracias... Si fila a fila , también, si fuese en el  caso de columnas se tendría que colocar la matriz b[][] en el Static Guardar_Vector?  (me corriges si no es a si lo que digo cesar)... ahora quisiera que me explicaras por que tuviste que haces un Static para imprimir el vector, mi pregunta es por que no se pudo colocar el imprimir_vector en el Static de Guardar_Vector ..


Gracias Cesar Me  has sido de mucha ayuda muchísima Espero que podamos seguir en contacto ! !! De ante mano  un saludo ! :D   

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:hola tengo una duda Guardar una matriz en un vector java
« Respuesta #9 en: 16 de Septiembre 2013, 17:53 »
La matriz b[][] es una matriz auxiliar respecto a la matriz a[][]. Si quisieras hacerlo por columnas tendrías que seguir usando la matriz a[][] (al menos así lo entiendo yo), únicamente tendrías que definir otro método que trabajara por columnas.

El poner el imprimir_vector por separado fue para guardar la misma lógica que traía el código: en el código por un lado se trabaja la obtención del resultado y por otro lado están los métodos para imprimir, lo único que hice fue seguir esa lógica, pero si quieres meter el código de imprimir dentro del método guardar_vector podrías hacerlo.

Saludos!
Responsable de departamento de producción aprenderaprogramar.com

Mac

  • Intermedio
  • ***
  • Mensajes: 174
  • Java-Php
    • Ver Perfil
Re:hola tengo una duda Guardar una matriz en un vector java
« Respuesta #10 en: 16 de Septiembre 2013, 19:55 »
ahora entiendo ! Cesar estoy tratando de colocar el imprime del Vector pero me saca un error en la variable vector ! como haría para pasarlo ?

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:hola tengo una duda Guardar una matriz en un vector java
« Respuesta #11 en: 16 de Septiembre 2013, 21:26 »
Si te refieres a colocar la impresión dentro del método guardar_vector puedes hacerlo así, aunque no sé si es a esto a lo que te refieres:

Código: [Seleccionar]
import javax.swing.JOptionPane;
import javax.swing.JTextArea;

public class Menu_matriz {

    public static void main(String[] args){

        String menu="MENU DE MATRICES \n";

        int i,j;
        int n=Integer.parseInt(JOptionPane.showInputDialog(" Cuantas filas ? "));
        int a[][]=new int [n][n];
        int b[][]=new int [n][n];
        int c[][]=new int [n][n];
        int vector []= new int[n*n];

        llenar_matrices(a,b,n);
        int op=0;
        menu+="1.  Suma de matrices\n";
        menu+="2.  Transpuesta de matriz\n";
        menu+="3.  Intercambiar filas\n";
        menu+="8.  Guardar en Vector\n";
        menu+="12. Imprimir Matriz por consola\n";
        menu+="13. Imprimir Matriz por ventanas\n";
        menu+="20. Fin\n";
        menu+="Escoja Opción:\n";
        while (op!=20){
            op=Integer.parseInt(JOptionPane.showInputDialog(menu));
            switch (op){
                case 1:
                sumar(a,b,c,n);
                break;
                case 2:
                transpuesta(a,c,n);
                break;
                case 3:
                intercambia_filas(a,c,n);
                break;
                case 8:
                Guardar_Vector(a, vector, n);
                break;
                case 12:
                imprimir (a,n);
                break;
                case 13:
                imprime_ventana(a,n,"Matriz A-------GARROTE");
                break;
                case 20:
                break;
            }
        }
    }// cierre del  public static void main Ojo !!!! //------------------
    static void sumar(int a1[][], int b1[][],int c1[][], int n1){

        for (int i=0;i<n1;i++){
            for (int j=0;j<n1;j++){
                c1[i][j] = a1[i][j] + b1[i][j];
            }
        }
        imprime_ventana(a1,n1,"Matriz A");
        imprime_ventana(b1,n1,"Matriz B");
        imprime_ventana(c1,n1,"Matriz A+B");
    }


    static void transpuesta(int a[][],int c[][], int n){
        int i,j;
        for(i=0;i<n;i++){
            for(j=0;j<n;j++){
                c[i][j]=a[j][i];
            }
        }
        imprime_ventana(a,n,"Matriz A");
        imprime_ventana(c,n,"Matriz Transpuesta");
    }


    static void intercambia_filas(int a[][],int c[][],int n){
        int i,j,t;
        for(i=0;i<n;i++){
            for(j=0;j<n;j++){
                c[i][j]=a[i][j];
            }
        }
        int f1=Integer.parseInt(JOptionPane.showInputDialog("Digite primera fila a intercambiar"));
        int f2=Integer.parseInt(JOptionPane.showInputDialog("Digite segunda fila a intercambiar"));
        for(j=0;j<n;j++){
            t=c[f1][j];
            c[f1][j]=c[f2][j];
            c[f2][j]=t;
        }
        imprime_ventana(a,n,"Matriz A");
        imprime_ventana(c,n,"Matriz de filas intercambiadas");
    }


    static void Guardar_Vector(int a[][], int vector[], int n){
        int i,j;
        int contador = 0;
        for(i=0;i<n;i++){
            for(j=0;j<n;j++){
                vector[contador]=a[i][j];
                contador = contador+1;
            }
        }
       
        imprime_ventana(a,n,"Matriz A");
                String salida="[";
        for (int k=0;k<n*n;k++){

            salida=salida+ vector[k]+"  ";

            if (k != n*n-1) {salida=salida+", ";} else {salida=salida+"] ";}
        }
        JTextArea area= new JTextArea();
        area.setText(salida);
        JOptionPane.showMessageDialog(null,area,"Mostrando vector",JOptionPane.PLAIN_MESSAGE);

    }

    static void llenar_matrices(int a1[][], int b1[][],int n1){
        for (int i=0;i<n1;i++){
            for (int j=0;j<n1;j++){
                a1[i][j]=(int)(Math.random()*10);
                b1[i][j]=(int)(Math.random()*10);
                //System.out.println("Control apr " + a1[i][j] + " - " + b1[i][j]);
            }
        }
    }

    static void imprimir(int m[][], int n1){

        for (int i=0;i<n1;i++){
            for (int j=0;j<n1;j++){
                System.out.print(m[i][j]+"\t");
            }
            System.out.println(" ");
        }
    }


    static void imprime_ventana (int a[][],int n,String mensaje){
        String salida="";
        for (int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                salida=salida+ a[i][j]+"\t";
            }
            salida=salida+"\n";
        }
        JTextArea area= new JTextArea();
        area.setText(salida);
        JOptionPane.showMessageDialog(null,area,mensaje,JOptionPane.PLAIN_MESSAGE);
    }

}/// cierre class
Responsable de departamento de producción aprenderaprogramar.com

Mac

  • Intermedio
  • ***
  • Mensajes: 174
  • Java-Php
    • Ver Perfil
Re:hola tengo una duda Guardar una matriz en un vector java
« Respuesta #12 en: 18 de Septiembre 2013, 01:15 »
Si Cesar a si es que quiero ! que imprima dentro del static Guardar_Vector Muchas gracias por su gran ayuda !! Quisieras que me dieras unos consejo para ser un buen programador como tu  :D

Otra pregunta quiero hacerte y es que quiero que me expliques si es ¿Necesario? o por que colocaste  los condicionales if y el else, y si hay otra forma de hacerlo que no sea con condicionales .....Gracias Un Abrazo !



Código: [Seleccionar]
imprime_ventana(a,n,"Matriz A");
                String salida="[";
        for (int k=0;k<n*n;k++){

            salida=salida+ vector[k]+"  ";

            if (k != n*n-1) {salida=salida+", ";} else {salida=salida+"] ";}
        }
        JTextArea area= new JTextArea();
        area.setText(salida);
        JOptionPane.showMessageDialog(null,area,"Mostrando vector",JOptionPane.PLAIN_MESSAGE);

    }

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:hola tengo una duda Guardar una matriz en un vector java
« Respuesta #13 en: 19 de Septiembre 2013, 08:41 »
Hola! Sobre el condicional if (k != n*n-1) {salida=salida+", ";} else {salida=salida+"] ";} lo puse para que en cada pasada por el bucle se escriba un número y una coma, excepto en la última que es lo que detecta el condicional, para que en la última se escriba un número y el cierre de corchetes.

Gracias al condicional sale por ejemplo [22,11,4,2] en vez de [22,11,4,2

Si quieres poner un símbolo de comienzo y cierre como [ y ] necesitas saber cuál es el último número a imprimir y esta es la forma que se me ocurrió, si se te ocurre otra también puedes usarla.



Sobre cómo llegar a ser un buen programador te copio lo que se ha escrito en otro hilo que en general me parece correcto, hay varios hilos donde se ha hablado de este tema:

"Llegar a ser un buen programador depende de la persona, su capacidad innata para la programación, el esfuerzo y estudio que aplique para el aprendizaje y además, de forma importante, en que ese esfuerzo y estudio esté bien organizado y estructurado.

Me explico: una persona puede dedicar 5 horas al día a estudiar y practicar delante del ordenador y si lo hace sin seguir un orden y organización adecuados, al cabo de un año no haber aprendido prácticamente nada. En cambio, si esa misma persona sigue un orden y pautas adecuadas, al cabo de un año puede estar a nivel profesional en alguna tecnología.

¿A qué me refiero con buena organización, estructuración, orden, etc.?

Me refiero a que para adquirir conocimientos de programación existen miles de fuentes de información: libros, páginas web, revistas, etc. Es importante elegir buenas fuentes: buenos libros, buenas páginas web, etc.

También me refiero a que a la hora de estudiar y practicar hay que marcarse un orden y unos objetivos. Por ejemplo, si quieres convertirte en programador web un buen itinerario empezaría con un curso de Fundamentos de Programación o quizás con HTML. Si comienzas tu formación con un curso de Dreamweaver ó un curso de CSS posiblemente pierdas el tiempo. No tiene sentido estudiar CSS sin antes tener fundamentos de HTML... al menos esa es mi opinión.

Tampoco a todo el mundo se le da la programación. Es como dibujar, hay gente que tiene facilidad y gente a la que le cuesta mucho. Si me cuesta mucho lo lógico es que no sea pintor, sino que me dedique a algo que me suponga menos esfuerzo.

Si tienes una capacidad innata y te formas siguiendo una organización y orden adecuados, lograrás comprensión sobre la lógica que hay debajo de los sistemas informáticos y esto te permitirá resolver mayor cantidad de problemas. Nadie lo sabe todo, pero hay algunas personas que con conocimiento y práctica son capaces de resolver cosas que la mayoría de la gente no sabría resolver. Y te lo digo después de haber trabajado junto a un buen número de programadores, cada uno de ellos distinto."


Responsable de departamento de producción aprenderaprogramar.com

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".