Ayuda con programa de JAVA?

Hola necesito realizar el siguiente programa en Java:

Para el siguiente proyecto especificará a través de línea de comandos el tamaño del

Arreglo de Arreglos (matriz) que se utilizará para realizar las operaciones indicadas mas

adelante, ejemplo:

c:\java Proyecto 3 3 <enter>

Significa que el Arreglo de Arreglos en este ejemplo tiene 3 filas y 3 columnas.

Dentro de su programa tendrá que declarar un arreglo de tipo entero con el número de

Filas y Columnas especificados anteriormente.

Este Arreglo de Arreglos será llenado con datos aleatorios utilizando para ello la clase

Math y el método random().

Una vez lleno el Arreglo de Arreglos, realice la matriz simétrica

e imprimala en pantalla.

1 9 -6

0 2 1

-2 4 5

Ojalá me puedan ayudar con el código ya que soy nuevo en esto de la programación y no se aun utilizar el metodo Random. Tengo una matriz hecha en dos claces pero con ella el resultado me da del 1 al 9 se las dejo para ver si me pueden coregir o ayudar con lo que me falte de código.

public class Matriz {

public static void main(String args[]) {

int x = Integer.parseInt(args[0]);

int y = Integer.parseInt(args[1]);

int a[][] = new int[x][y];

ArregloDeArreglos obj = new ArregloDeArreglos(a);

obj.imprimir();

}

}

public class ArregloDeArreglos {

public int a[][];

public ArregloDeArreglos(int a[][]) {

this.a = a;

}

public void operacion() {

int x=1;

for (int i = 0; i < this.a.length; i++) {

for (int j = 0; j < this.a[i].length; j++) {

this.a[i][j] = x++;

}

}

}

public void imprimir() {

operacion();

for (int i = 0; i <= this.a.length; i++) {

for (int j = 0; j < this.a[i].length; j++) {

System.out.print(a[i][j] + " ");

}

System.out.println();

}

}

}

1 2 3

4 5 6

7 8 9

Comments

  • Ok, esta vez si muestras algo hecho, no voy a analizar, pero te voy a dar el código completo de lo que requieres como regalo de Navidad.

    import java.util.*;

    public class Matriz {

    static Random rand = new Random();

    static int pRand(int max, int min) {

    return (int)(Math.random() * (max - min))+min;

    }

    static void imprimir(String s) {

    System.out.print(s);

    }

    public static void main(String[] args){

    int renglones, columnas;

    renglones = Integer.parseInt(args[0]);

    columnas = Integer.parseInt(args[1]);

    if (renglones == columnas){

    int[][] a = new int[renglones][columnas];

    for(int i = 0; i < a.length; i++)

    for(int j = 0; j < a[i].length; j++)

    a[i][j] = pRand(15,-5);

    imprimir("La matriz original es: ");

    for(int i = 0; i < a.length; i++){

    imprimir("\n ");

    for(int j = 0; j < a[i].length; j++)

    imprimir(" "+a[i][j]);

    }

    imprimir("\nLa matriz simetrica es: ");

    for(int i = 0; i < renglones; i++){

    imprimir("\n ");

    for (int j = 0; j < columnas; j++){

    imprimir(" " + a[j][i]);

    }

    }

    }

    else {

    imprimir("La matriz no es cuadrada.");

    }

    }

    }

    Analizalo que de este código puedes darte cuenta de varias cosas.

    Saludos.

  • Necesitas otra variable y dejar tu incrementador aparte pero si no lo acupas puedes borrarlo:

    public void operacion() {

    for (int i = 0; i < this.a.length; i++) {

    for (int j = 0; j < this.a[i].length; j++) {

    int ran = (int)(Math.random()*10);

    this.a[i][j] = ran;

    }

    }

    }

    La explicaciòn es la siguiente:

    Math.random() //Genera un numero al azar

    (int) //Lo comvierte a entero

    10 //Ya que saca aleatoreos entre .1 y .9999 de este modo obtienes un numero despues del decimal

    Como parametro puedes poner cuantos numeros quieres que Math.random genere, si lo dejas en blanco solo creara uno

  • cuando asignas el valor a la localidad de la matriz para que la llene con valores enteros usando la clase Math, usa lo siguiente:

    public void operacion() {

    for (int i = 0; i < this.a.length; i++) {

    for (int j = 0; j < this.a[i].length; j++) {

    int x = (int)(Math.random()*10);

    this.a[i][j] = x;

    }

    }

    }

    eso deberia de funcionar.

    espero te sirva

Sign In or Register to comment.