Re:Matriz ajuda por favor!

5 respostas
Daniel_Quirino_Olive

Procure uma parte do seu código onde possa haver acesso ao índice -3 da sua matriz.

  • dica: procure por alguma coisa como “0 - 3”
  • dica: procure por isso dentro de um loop :wink:

5 Respostas

tiaguinhooo
Obrigado por esta lendo aki neh e q assim eu queria fazer a soma da diagonal inversa de uma matriz so q tem um problema .. veja :
public static void fazz(){
		float matriz[][] = new float[3][3];
		float soma=0;
		int l, c;
		for(l=0;l<3;l++){
			for(c=0;c<3;c++){
				matriz[l][c] = Float.parseFloat(JOptionPane.showInputDialog("matriz["+l+"]["+c+"]"));
			}
		}
			soma = soma +matriz[0][2]+matriz[1][1]+matriz[2][0];	
			JOptionPane.showMessageDialog(null,"a soma é "+soma);
			
	}
essa e uma matriz 3x3 e se um dia eu quiser uma matriz 10X10 eu vo ter de fazer a soma celula por celula ou tem uma forma mais simples como a de fazer a soma da matriz principal de uma matriz desse modo :
public static void fazz(){
		float matriz[][] = new float[3][3];
		float soma=0;
		int l, c;
		for(l=0;l<3;l++){
			for(c=0;c<3;c++){
				matriz[l][c] = Float.parseFloat(JOptionPane.showInputDialog("matriz["+l+"]["+c+"]"));
			}
		}
                               for(l=0;l<3;l++){
			soma = soma +matriz[l][l]
                                     }
			JOptionPane.showMessageDialog(null,"a soma é "+soma);
			
	}
me ajudem por favor agradeço !
L

Pelo que eu entendi é este trecho que tu quer melhorar?

faz um for:

porque se tu prestar atenção, as diagonais são sempre:
0,10
1,9
2,8
3,7
4,6
5,5
6,4
7,3
8,2
9,1
10,0

ou seja: é a linha e a o numero da coluna é o numero de colunas menos o número de linhas.

espero ter ajudado.

flw :wink:

tiaguinhooo

poxa veiu vc tem razao hein ! mais essa parte do tamanho da matriz me esclarece um poko pq so ignorante aainda fica ria assim

for (int i=0; i<10; i++){ 
soma = soma + matriz[i][10-i] 
}

certo ?

tiaguinhooo
eu fiz assim olha !
public static void fazz(){
		float matriz[][] = new float[3][3];
		float soma=0;
		int l, c;
		for(l=0;l<3;l++){
			for(c=0;c<3;c++){
				matriz[l][c] = Float.parseFloat(JOptionPane.showInputDialog("matriz["+l+"]["+c+"]"));
			}
		}
		for(l=0;l<3;l++){
			soma = soma +matriz[l][l-3]	;
			
			}
			JOptionPane.showMessageDialog(null,"a soma é "+soma);
	}
so q da erro assim : Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -3 q eu faço ?
L

tiaguinhooo:
eu fiz assim olha !

for(l=0;l<3;l++){
			soma = soma +matriz[l][l-3]	;
			
			}

teu prob tá aqui.
é 2-l.
Se tu fizer l-3, quando l for 0, 0-3=-3, e não existe a coluna -3.
e se tu fizer 3-l, quando l for 0, 3-0=3, e como a tua matriz tem 3 posições (de 0 a 2) então tu não vai ter a coluna 3.
Faz então 2-l

flw :wink:

Criado 8 de junho de 2006
Ultima resposta 8 de jun. de 2006
Respostas 5
Participantes 3