[size=18] comecei a estudar java a pouco tempo e tenho uma lista de exercicios para fazer, e um deles esta tirando o meu sono, o enunciado é este:
Crie um programa que receba como parâmetro de entrada 16 valores, coloque os em uma matriz 4x4 e exiba o resultado.[/size]
[size=12]Aprendi a criar programas que recebem como parâmetros 2 ou 3 valores, mas e pra receber 16 valores? e depois como faço para coloca-los em uma matriz?
Agradeço muito quem à quem puder me ajudar[/size]
Você sabe o que é uma matriz 4 x 4?
Sabe como construir uma?
A questão dos parâmetros é o de menos.
Amigo já pensou em fazer no seu metodo recebendo como parametro um Array, uma lista, um arraylist e etc…
Existem diversas estruturas de dados para se armazenar 16 valores.
Mas pensando no array de 16 posições.
Cara uma matriz é um array de 2 dimensões.
Você deve ser novo em programação entao você deverá conhecer bem os conceitos de Loops.
Mas basicamente você tera um array de 2 dimensoes ARRAYEXEMPLO [8][8]. A ideia é quer você terá que fazer um Loop dentro de outro Loop, para cada linha terá colunas.
for(int linha=0 ; linha < 8 ; linha++){
for(int coluna = 0; coluna < 8 ; coluna ++){
System.out.printf(linha,coluna);
}
}
Pergunta: Os valores serão pedidos pelo usuário, ou o programa já tem valores pré-definidos?
No caso de pedir valores ao usuário:
int[][] matriz = new int [4][4];
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 4;i++){ //Aqui será contado as linhas da matriz.
for (int j = 0; j < 4;j++){ //Aqui será contado as colunas da matriz.
System.out.println("Digite um valor:");
matriz[i][j] = sc.newInt();
}
}
E para exibir os valores que foram pedidos ao usuario ou já estão pré-definidos no programa, o código do mr.michels já responde o resto da questão. =D
[quote=AAWeihermann]Pergunta: Os valores serão pedidos pelo usuário, ou o programa já tem valores pré-definidos?
No caso de pedir valores ao usuário:
int[][] matriz = new int [4][4];
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 4;i++){ //Aqui será contado as linhas da matriz.
for (int j = 0; j < 4;j++){ //Aqui será contado as colunas da matriz.
System.out.println("Digite um valor:");
matriz[i][j] = sc.newInt();
}
}
E para exibir os valores que foram pedidos ao usuario ou já estão pré-definidos no programa, o código do mr.michels já responde o resto da questão. =D[/quote]
Camarada, a pior coisa que pode ser feita, você acabou de fazer.
Quer mostrar que sabe? Ensine, não faça.
Pow, o sujeito nunca vai aprender enquanto um trouxa fizer por ele.
Desculpe! Foi mal ai, só dei minha opinião…
A idéia do mr.michels é boa, acho que resolve seu problema, gravar os 16 valores em um array e trabalhar esse array no seu método.
[size=18]Agradeço pela atenção e ajuda de todos[/size]
[quote=AAWeihermann]Pergunta: Os valores serão pedidos pelo usuário, ou o programa já tem valores pré-definidos?
No caso de pedir valores ao usuário:
int[][] matriz = new int [4][4];
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 4;i++){ //Aqui será contado as linhas da matriz.
for (int j = 0; j < 4;j++){ //Aqui será contado as colunas da matriz.
System.out.println("Digite um valor:");
matriz[i][j] = sc.newInt();
}
}
E para exibir os valores que foram pedidos ao usuario ou já estão pré-definidos no programa, o código do mr.michels já responde o resto da questão. =D[/quote]
Legal, então pra complementar, eu ainda daria a dica pra ele procurar algo sobre laços de repetição.
como funciona o do, do while, for, foreach…
Agora pensa no plano cartesiano.
eixo x e y.
// esse laço cria as linhas
for (int y = 0; y<4; y++)
{
// esse laço cria as colunas
for (int x = 0; x<4; x++)
{
System.out.println("Digite um valor:");
matriz[i][j] = sc.newInt();
}
}
Mas pra continuar, vc já fez pelo menos um hello world?
A idéia de laços de repetição depende de alguns conceitos básicos, tais como, sobre isolamento de variáveis através dos blocos de comandos (chaves: "{" e "}" )