Gerar Matriz em JAVA * Netbeans

Boas pessoal!

Alguem me pode explicar como e k posso por um programa a criar uma matriz aleatoria em java?!
Por exemplo:

O programa pedia ao utilizador o numero de linhas e de colunas da matriz, e esse programa geraria uma matriz com esse numero de linhas e colunas introduzidas pelo utilizador, com valores aleatorios.

Obrigado!

a) Aloque a matriz usando “new”
b) Preencha os valores da matriz usando Math.random() e 2 loops, um dentro do outro (um para as linhas, outro para as colunas).
c) Como você usou a palavra “utilizador” presumo que esteja falando de Portugal. É isso mesmo?

estou sim a falar d portugal :slight_smile:

pode-me explicar melhor como e o codigo para fazer isso ?!

tipo:

int [][] matriz = new int [][];

e agr km aloco na matriz?! com o random ?! sou mt basico nisto, tou no 1º ano d informatica e n tenho mt experiencia com programaçao… ando um bocado a deriva :frowning:

Obrigado

Estou supondo que você já tenha obtido o número de linhas e de colunas.
Pra começar, você deve saber que em Java tanto as linhas quanto as colunas começam a partir do zero, portanto se você quer criar uma matriz de 5 linhas por 10 colunas você faz o seguinte:

double [][] matriz = new double[linhas][colunas];

e então preencha os valores:

for (int linha = 0; linha &lt linhas; linha++) {
    for (int coluna = 0; coluna &lt colunas; coluna++) {
        matriz [linha] [coluna] = Math.random();
    }
}

Você terá uma matriz com elementos aleatórios que vão de 0 (inclusive) até 1 (exclusive). Por exemplo, o elemento [0][2] poderia conter o valor 0.231123986894756

1 curtida

Você gera a matriz assim:
int a[][]=new int[3][4];//o [3] é o número de linhas e o [4] é o número de linhas

para preencher esta matriz vc deve fazer da seguinte forma:

int linha, coluna;
for(coluna=0;coluna<3;coluna++)
{
for(linha=0;linha<3;linha++)
{
a[linha][coluna]=Integer.parseInt(JOptionPane.showInputDialog(null,“Digite um numero”,
“Teste”,JOptionPane.PLAIN_MESSAGE));
}
}

Assim vc vai iserir os valores digitados em linha e coluna, preenchendo primeiro a coluna.

int linhas = Integer.parseInt(JOptionPane.showInputDialog(“digite o numero de linhas:”));

int colunas = Integer.parseInt(JOptionPane.showInputDialog(“digite o numero de colunas:”));

int [][] matriz = new int [linhas][colunas];

for ( int i = 0; i < linhas; i ++ )
for ( int z = 0; z < colunas; z ++)
matriz[i][z] = (int) (Math.random() * 10));

Ao invés de Math.random() você também pode usar a classe Random.

Random random = new Random(); for (int linha = 0; linha &lt linhas; linha++) { for (int coluna = 0; coluna &lt colunas; coluna++) { matriz [linha] [coluna] = random.nextDouble(); } }

http://www.guj.com.br/posts/list/37400.java#198487

Muito obrigado a todos! ajudaram imenso!

Thingol especialmente a si, pela rapidez de resposta :slight_smile: e pela bela explicaçao :slight_smile:

Mais uma vez obrigado a todos!

[quote=ashibarai]Muito obrigado a todos! ajudaram imenso!

Thingol especialmente a si, pela rapidez de resposta :slight_smile: e pela bela explicaçao :slight_smile:

Mais uma vez obrigado a todos![/quote]

Preciso das Matrizes Abaixo, onde posso conseguir??

60/40/33/33(?)
60/40/32/32(?)
60/40/31/31(?)
50/40/33/33(?)
50/40/32/32(?)
50/40/31/31(?)

[quote=ViniGodoy]Ao invés de Math.random() você também pode usar a classe Random.

Random random = new Random(); for (int linha = 0; linha &lt linhas; linha++) { for (int coluna = 0; coluna &lt colunas; coluna++) { matriz [linha] [coluna] = random.nextDouble(); } }[/quote]

Preciso das Matrizes Abaixo, onde posso conseguir??

60/40/33/33(?)
60/40/32/32(?)
60/40/31/31(?)
50/40/33/33(?)
50/40/32/32(?)
50/40/31/31(?)

[quote=fabim]int linhas = Integer.parseInt(JOptionPane.showInputDialog(“digite o numero de linhas:”));

int colunas = Integer.parseInt(JOptionPane.showInputDialog(“digite o numero de colunas:”));

int [][] matriz = new int [linhas][colunas];

for ( int i = 0; i < linhas; i ++ )
for ( int z = 0; z < colunas; z ++)
matriz[i][z] = (int) (Math.random() * 10));[/quote]

Preciso das Matrizes Abaixo, onde posso conseguir??

60/40/33/33(?)
60/40/32/32(?)
60/40/31/31(?)
50/40/33/33(?)
50/40/32/32(?)
50/40/31/31(?)

[quote=thingol]a) Aloque a matriz usando “new”
b) Preencha os valores da matriz usando Math.random() e 2 loops, um dentro do outro (um para as linhas, outro para as colunas).
c) Como você usou a palavra “utilizador” presumo que esteja falando de Portugal. É isso mesmo?
[/quote]

Preciso das Matrizes Abaixo, onde posso conseguir??

60/40/33/33(?)
60/40/32/32(?)
60/40/31/31(?)
50/40/33/33(?)
50/40/32/32(?)
50/40/31/31(?)

[quote=michael.martins]Você gera a matriz assim:
int a[][]=new int[3][4];//o [3] é o número de linhas e o [4] é o número de linhas

para preencher esta matriz vc deve fazer da seguinte forma:

int linha, coluna;
for(coluna=0;coluna<3;coluna++)
{
for(linha=0;linha<3;linha++)
{
a[linha][coluna]=Integer.parseInt(JOptionPane.showInputDialog(null,“Digite um numero”,
“Teste”,JOptionPane.PLAIN_MESSAGE));
}
}

Assim vc vai iserir os valores digitados em linha e coluna, preenchendo primeiro a coluna.[/quote]

Preciso das Matrizes Abaixo, onde posso conseguir??

60/40/33/33(?)
60/40/32/32(?)
60/40/31/31(?)
50/40/33/33(?)
50/40/32/32(?)
50/40/31/31(?)

Entrei no tópico e lembrei de um antigo programa meu, que era um problema proposto por uma professora… poxa que série ‘pro’ …
programa,problema ,proposto,professora.

Enfim é bem interessante, um número é um centro, e os números todos crescem em espiral ao redor dele (em uma matriz ou array bidimensional) . Na hora pareceu muito simples, mas exige um grande raciocínio para construir. É um programa pequeno, mas muito interessante.

Ao pedir um número cabível temos que achar sua localização…

É até possível apartir deste raciocínio construir um jogo ou alguma outra rotina interessante. Pode servir em um jogo para localização de alvos por exemplo, ou aparição de naves, objetos, e uma outra infinidade de coisas… Segue o programa em anexo, se couber… Mas é pequeno, porém complexo…
Espero que executem, entendam e observem seu funcionamento.

Aguardo comentários.