Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Mac en 15 de Septiembre 2013, 04:07

Título: hola tengo una duda Guardar una matriz en un vector java
Publicado por: Mac 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 !
Título: Re:hola tengo una duda Guardar una matriz en un vector java
Publicado por: César Krall 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?

Título: Re:hola tengo una duda Guardar una matriz en un vector java
Publicado por: Mac 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
Título: Re:hola tengo una duda Guardar una matriz en un vector java
Publicado por: César Krall 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
Título: Re:hola tengo una duda Guardar una matriz en un vector java
Publicado por: Mac 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 !! ;)
Título: Re:hola tengo una duda Guardar una matriz en un vector java
Publicado por: César Krall en 15 de Septiembre 2013, 21:20
Estoy mirándolo, en cuanto tenga algo te respondo. Saludos!
Título: Re:hola tengo una duda Guardar una matriz en un vector java
Publicado por: Mac en 15 de Septiembre 2013, 21:27
Gracias Cesar Muchísimas Gracias ..
Título: Re:hola tengo una duda Guardar una matriz en un vector java
Publicado por: César Krall 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.
Título: Re:hola tengo una duda Guardar una matriz en un vector java
Publicado por: Mac 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   
Título: Re:hola tengo una duda Guardar una matriz en un vector java
Publicado por: César Krall 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!
Título: Re:hola tengo una duda Guardar una matriz en un vector java
Publicado por: Mac 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 ?
Título: Re:hola tengo una duda Guardar una matriz en un vector java
Publicado por: César Krall 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
Título: Re:hola tengo una duda Guardar una matriz en un vector java
Publicado por: Mac 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);

    }
Título: Re:hola tengo una duda Guardar una matriz en un vector java
Publicado por: César Krall 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."