Tenho um exercício que deve se ler 2 matrizes, apresentar a soma, subtração e multiplicação delas, e apresentar as diagonais principais e secundárias de todas, já li duas matrizes 4x4, fiz soma, subtração e multiplicação entre elas, e apresentei todas, mas não sei apresentar as diagonais, como posso fazer isso?
Para identificar as diagonais de uma matriz, você precisa, primeiro, saber o que são estas diagonais.
Considere a matriz abaixo, é uma matriz 4x4:
11 12 13 14
21 22 23 24
31 32 33 34
41 42 43 44
Observe com atenção, a diagonal principal é a que começa no canto superior esquerdo e termina no canto inferior direito.Olhando para ela, qual a característica de cada posição da diagonal principal?
A diagonal secundária inicia no canto superior direito e termina no canto inferior esquerdo.
Qual a característica das posições desta diagonal?
Ficou fácil, né?
Então é como se a diagonal principal fosse linha = coluna?
esqueci de falar que quero fazer isso em java, programação.
Isso! Diagonal principal sempre terá o valor da posição (x, y) composta pela combinação de valores onde x é igual a y.
Para criar algo em java, c, c++, php, c# ou o que for, você precisa ter em mente qual estrutura lógica vai utilizar.
Só lembre que o java (e várias outras linguagens) tem particularidades quanto a construção de vetores e matrizes.
A grosso modo a diagonal principal numa matriz 4x4
é o mesmo que:
matrix[0][0] | matrix[1][1] | matrix[2][2] | matrix[3][3]
A secundária também, só que tem que virar a matriz ao contrário
Daí é só iterar pelo tamanho da matriz e aplicar aquela lógica no vetor em Java.
Na verdade, não.
A característica das posições que correspondem à diagonal secundária é que a soma dos valores dos índices x e y é sempre igual ao tamanho da matriz + 1 (no caso de matrizes quadradas, como 2x2, 3x3, 4x4, 10x10, 1000x1000).