Java matriz

Soy estudiante de ingeniería de sistemas estoy en 2° semestre y me pusieron un ejercicio supuestamente fácil consiste en crear un array multidimensional cuadrado en java y que me llene este array de esta forma en caso de que el array fuera 3*3
xxx
xxx
xxx
les agradecería me colaboraran por que lo intento y me produce xxxxxxxxx ó
x
X
X
X
X
X
X
X
X según la instrucción para imprimir que utilice system. Out. Print o system. Out. Println

2 Respuestas

Respuesta
1
La forma de declarar un array cuadrado es la siguiente. La declararé de tipo String para que sean las "x" lo que se guarde.
String[][] equis = new String [5][5];
Eso quiere decir que es un array de 5 de ancho * 5 de alto.
¿Cómo se rellena con equis?
Con un método como el siguiente:
public void rellenar() {
        for (int i = 0; i < equis.length; i++) {
            for (int e = 0; e < equis.length; e++){
                equis[e] = "x";
            }
        }
    }
Para mostralo como deseas necesitas un método especial:
public void mostrar () {
        String[] aMostrar = new String [equis[0].length];
        for (int i = 0; i < equis.length; i++) {
            for (int e = 0; e < equis.length; e++){
                if (aMostrar == null) aMostrar = equis[e];
                else aMostrar = aMostrar + equis[e];
            }
            System.out.println (aMostrar);
        }
Este último procedimiento lo que hace es que crea una variable String que junta todas las "x" de toda una fila y luego la muestra. Y lo hace con cada fila.
Esto es así ya que el System.out.println imprime línea por línea.
Para que veas también como se manejan las "x" puedes sustituir el método rellenar con este otro:
public void rellenar() {
        for (int i = 0; i < equis.length; i++) {
            for (int e = 0; e < equis.length; e++){
                equis[e] = "x" + i + ""+ e;
            }
        }
    }
Espero haberte ayudado y si no quedó muy claro me avisas que no entendiste.
}
Hola primero quería agradecerte por la pronta respuesta, y también decirte que en netbeans que es el ide que utilizo me aparece error en la siguiente linea
equis[e] = "x";  donde me dice que hay incompatibilidad de tipos requered java.lang.string[] found java.lang.String
 else aMostrar = aMostrar + equis[e] operator + cannot be applied to java.lang.string[]
Gracias y espero me puedas colaborar
Me he dado cuenta que el problema es que en este sitio de Internet no se reconocen las letras i entre corchetes: por eso lo voy a copiar un poco separado y espero que si se vea ahora. Va una prueba: [ i ] (nada más que yo lo escribo junto, sin espacios).
Las líneas quedarían así:
equis[e] = "x"; ---> equis[ i ][e] = "x"; Lo que pasa si no lo escribimos así es que el compilador lo interpreta como que nos referimos al array vetical.
else aMostrar = aMostrar + equis[e]; ----> else aMostrar = aMostrar[ i ] + equis[e]; Aquí sin el [ i ] nos referimos al array.
Creo que con eso bastaria. =D
Pues la verdad consideré que como faltan tantas [ i ] en el código, te voy a poner como queda ya corregido. Es más, sustituye lo que tenias por este. Repito es un error de la página al no permitir el [ i ] sin espacios.
public void rellenar() {
        for (int i = 0; i < equis.length; i++) {
            for (int e = 0; e < equis[ i ].length; e++){
                equis[ i ][e] = "x";
            }
        }
    }
    public void mostrar () {
        String[] aMostrar = new String [equis[0].length];
        for (int i = 0; i < equis.length; i++) {
            for (int e = 0; e < equis.length; e++){
                if (aMostrar == null) aMostrar[ i ] = equis[ i ][e];
                else aMostrar = aMostrar[ i ] + equis[ i ][e];
            }
            System.out.println (aMostrar[ i ]);
        }
    }
Respuesta
1
¿Eres estudiante de ingeniería y no sabes recorrer un array bidimensional?
Igual me he pasado...
¿Eres estudiante de ingeniería y no tienes las narices de buscar como ídem se recorre un array bidimensional en java, pascal, c o pseudocódigo?
Nadie nace sabiendo, pero todos sin excepción podemos aprender, otra cosa es que nos dé la gana.
Debes utilizar dos bucles anidados, imagina tu array o matriz como una serie de valores de este tipo:
public class Array3x3 {
    int matrix [][]= new int [3][3];
    int i=0;
    int j=0;
    int num=1;
    public Array3x3(){
    }
    public void imprime(){
        while (i <= 2){
            while (j <= 2){
                System.out.print(num);
                matrix[j]=num;
                j++;
                num++;
            }
            System.out.println("");
        j=0;
        i++;
        }
    }
    public static void main(String args[]){
        Array3x3 objeto = new Array3x3();
        objeto.imprime();
    }
}
Saludos!
PD. El cócigo no está probado y seguramente falle la sintaxis por algún lado, no pienso molestarme más con esto porque hay millones de ejemplos si estas interesado en buscar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas