Faça um algoritmo que preencha uma matriz de 5X5 com valores numéricos e após faça a
soma dos elementos que se encontram na diagonal principal.
Isso aí ta me tirando o sono …
criar a matriz 5x5 inicialmente acho que consigo , dando os valores para cada posição manualmente ou através de laços de repetição( 2 for um seguido do outro um sendo para linhas e outro para colunas) o problema é todo o restante … já revisei a matéria e em nenhum lugar ensina a tipo mostrar graficamente como fica a tabela e nem como fazer a soma da diagonal principal e depois mostrar o resultado…
Posta o código para a gente dá uma olhada! Para somar todos os elementos da diagonal principal basta somar todos os elementos, no qual, os índices i e j são iguais!
Eu estou todo perdido , tentei fazer 2 for um dentro do outro mas me enrolei todo pq não entendi nada direito , essa materia ta sendo tensa… então decidi colocar os valores manualmente e ta assim:
public class Trabalho_recuperação_2 {
public static void main(String[] args) {
int matriz [][]= new int[5][5];
matriz [0][0]=1;
matriz [0][1]=2;
matriz [0][2]=3;
matriz [0][3]=4;
matriz [0][4]=5;
matriz [1] [0]=6;
matriz [1] [1]=7;
matriz [1] [2]=8;
matriz [1][3]=9;
matriz [1][4]=10;
matriz [2] [0]=11;
matriz [2] [1]=12;
matriz [2] [2]=13;
matriz [2] [3]=14;
matriz [2] [4]=15;
matriz [3] [0]=16;
matriz [3] [1]=17;
matriz [3] [2]=18;
matriz [3] [3]=19;
matriz [3] [4]=20;
matriz [4] [0]=21;
matriz [4] [1]=22;
matriz [4] [2]=23;
matriz [4] [3]=24;
matriz [4] [4]=25;
}
}
no caso acho que consegui criar a matriz e preencher todos os locais agora falta o resto…
Agora você cria a lógica para pecorrer todos os elementos dessa matriz, para cada valor você testa se os índices i e j são iguais, caso positivo, você deve realizar a soma desses valores em uma variável auxiliar.
Abraço!
Isso eu sei amigo, e obrigado por responder!
O problema é como fazer isso!
Já entendi que a diagonal principal é obtida fazendo a soma do valor dos mesmos indices…o problema é conseguir fazer o código… Essa é única disciplina de programação que tenho no meu curso(lógica de programação e algoritmo com java ) e está se mostrando um pesadelo
Ok, olha isso você encontra facilmente na Internet, mas vou deixar um exemplo com matriz 3x3:
public class Main {
public static void main(String[] args) {
int[][] matriz = {{0, 1, 2},
{3, 4, 5},
{6, 7, 8}};
// Somar a diagonal principal
int soma = 0;
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 3; j++) {
if(i == j) {
soma += matriz[i][j];
}
}
}
System.out.println("resultado: " + soma);
}
}
O resultado é 12.
nesse seu exemplo isso é do inicio ao fim ?
tipo isso é o inicio ?
int[][] matriz = {{0, 1, 2},
{3, 4, 5},
{6, 7, 8}};
ou ainda antes é necessário
fazer o seguinte:
int matrizgfh [] [] = new int [3] [3];
O exemplo que fiz está completo. Existem duas formas de inicializar uma matriz, no exemplo que mostrei é uma delas. Você só precisa mudar a matriz de 3x3 para 5x5 e inicializar com os valores que você quiser.
boa noite amigo , tentei fazer como voce falou e apenas acrescentar mais linhas e colunas e nos laços for atualizar i<3 e j<3 para i<5 e j<5 mas acusa um monte de erro no netbeans e nao deixa executar…
Tem uma chave " } " perdida aí no meio! Antes da variavel soma.
Obs: É preferível postar o código em vez da foto do código.
onde ? é que tmb são vários erros como vc viu na imagem…
mas vou postar o código.
public class Trabalho_recuperacao {
public static void main(String[] args) {
int[][] matriz = {{0, 1, 2,3,4},
{5, 6, 7,8,9},
{10, 11, 12,13,14},
{15,16,17,18,19},
{20,21,22,23,24}};
}
// Somar a diagonal principal
int soma = 0;
for(int i = 0; i < 5; i++) {
for(int j = 0; j < 5; j++) {
if(i == j) {
soma += matriz[i][j];
}
}
}
System.out.println("resultado: " + soma);
}
}
Se você olhar bem tem uma chave antes da variavel soma. Mas segue o código sem erro, assim espero:
public class Trabalho_recuperacao {
public static void main(String[] args) {
int[][] matriz = {{0, 1, 2,3,4},
{5, 6, 7,8,9},
{10, 11, 12,13,14},
{15,16,17,18,19},
{20,21,22,23,24}};
// } <<<<<<<<< aqui
// Somar a diagonal principal
int soma = 0;
for(int i = 0; i < 5; i++) {
for(int j = 0; j < 5; j++) {
if(i == j) {
soma += matriz[i][j];
}
}
}
System.out.println("resultado: " + soma);
}
}
Os erros são por causa dessa chave a mais no código!
Não precisa fazer assim.
Você pode colocar os valores diretamente, como indicaram ({ { 0, 1, 2, etc...
, mas também é possível fazer um loop para preencher a matriz:
int[][] matriz = new int[5][5]; // cria a matriz 5x5
int valor = 0;
for (int i = 0; i < matriz.length; i++) {
for (int j = 0; j < matriz[i].length; j++) {
matriz[i][j] = valor;
valor++;
}
}
Assim, cada posição recebe um valor (que começa em zero, e vai sendo incrementado). No final, a matriz contém os números da forma que você queria.
Repare também que uso length
no loop, pois assim é melhor do que usar um número fixo. Pois se o tamanho da matriz mudar, você não precisa mudar o for
, já que length
terá o tamanho correto.
E para somar a diagonal principal, não precisa fazer 2 for
. Como a diagonal principal são as posições em que i
é igual a j
, faz 2 loops é meio redundante. Como eu sei que a matriz é quadrada, dá pra fazer só assim:
int soma = 0;
for(int i = 0; i < matriz.length; i++) {
soma += matriz[i][i];
}
Fazer um outro for
interno e ficar testando se i == j
é completamente desnecessário, pois se eu sei que a posição que eu quero é aquela em que i
é igual a j
, então posso usar somente o i
para ambas as posições.
Vlw pela ajuda amigo!!!