Matriz Simetrica

2 respostas
J

Olá pessoal…

Eu tô com um problema no teste desse código que vou escrever logo mais.
A questão é:
'escrever um programa que leia uma matriz Notas[3x3]. Depois de preenchida a matriz, o programa deverá verificar se a mesma é simétrica ou não.
OBS: a matriz a seguir é simetrica, pois A = A(transposta).

import java.util.*;


public class MatrizSimetrica {

	
	public static void main(String[] args){
   	
   		boolean teste = false;
		int matriz [][] = new int [3][3]; //Cria uma matriz 3x3 (3 linhas e 2 colunas)
		Scanner leitura = new Scanner(System.in);
		
		//LEITURA
		for (int i= 0; i <=2; i++){
			
			for (int j=0; j <=2; j++){
				
				System.out.println("Digite o valor [" + (i+1) + ", " + (j+1) + "]:");
				matriz[i][j] = leitura.nextInt();
				
			}
							
		}
		
				
		for (int i= 0; i <=2; i++){
			
			for (int j=0; j <=2; j++){
				
				if ( (matriz[i][j]) == (matriz[j][i])){
					
					teste = true;
				}
				
				else {
					
					teste = false;
				}
							
			}
		
		}
			
		//IMPRESSÃO	
		System.out.println();
		
		if (teste == true){
	
			System.out.println("Matriz simetrica");
		
		}
		
		else {
			
			System.out.println("A matriz nao eh simetrica");	
		}
		
	
	}
   	
}

Pessoal, agradeço muito a quem conseguir organizar esse teste aê.

[]'s.

2 Respostas

T

Opa, beleza.

vc precisa “parar” o for, para quando a comparação for igual a false:

if ( (matriz[i][j]) == (matriz[j][i])){

fazer algo do tipo:

teste = true; for (int i= 0; i <=2; i++){ for (int j=0; j <=2; j++){ if ( (matriz[i][j]) != (matriz[j][i])){ teste = false; break; } } }
até mais.

A

javaxpython

O seu código está ok, só precisa ser organizado !!!
Apenas copiei seu código para métodos divididos, assim é mais facil organizar as coisas.

Segue abaixo um exemplo, é importante olhar as diferencas com o seu código, que na verdade são bem minimas.
import java.util.Scanner;

public class MatrizSimetrica {

	private final int QUANT_MATRIZ = 3;
	private int matriz[][] = new int[QUANT_MATRIZ][QUANT_MATRIZ];
	
	public void carregaMatriz() {
		Scanner leitura = new Scanner(System.in);
		for (int i = 0; i < QUANT_MATRIZ; i++) {
			for (int j = 0; j < QUANT_MATRIZ; j++) {
				System.out.println("Digite o valor [" + (i + 1) + ", " + (j + 1) + "]:");
				matriz[i][j] = leitura.nextInt();
			}
		}		
	}
	
	public boolean isSimetrica() {
		for (int i = 0; i < QUANT_MATRIZ; i++) {
			for (int j = 0; j < QUANT_MATRIZ; j++) {
				if ((matriz[i][j]) != (matriz[j][i])) 
					return false;
			}
		}
		return true;
	}
	
	public static void main(String[] args) {
		MatrizSimetrica matriz = new MatrizSimetrica();
		matriz.carregaMatriz();
		if (matriz.isSimetrica())
			System.out.println("Matriz simetrica");
		else 
			System.out.println("A matriz nao eh simetrica");
	}
}
Att
Criado 19 de abril de 2011
Ultima resposta 19 de abr. de 2011
Respostas 2
Participantes 3