Você está aqui: C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Matriz Simétrica em C++ - Um programa C++ que testa se uma matriz quadrada é uma matriz simétrica - Desafio de Programação Resolvido em C++Quantidade de visualizações: 404 vezes |
Pergunta/Tarefa: Antes de fazermos a resolução deste exercício de matrizes em C++, é importante revermos alguns conceitos sobre a matriz simétrica. O que é uma matriz simétrica Uma matriz simétrica é toda matriz cuja matriz transposta é igual à própria matriz, ou seja, A = At. Para compreender o que é uma matriz simétrica, é importante revermos o que é uma matriz transposta. Matriz transposta: quando invertemos as linhas e colunas de uma matriz, ou seja, dada a matriz A, a matriz transposta de A, representada por At, terá em sua primeira coluna a primeira linha da matriz A; já a segunda coluna da matriz transposta será a segunda linha da matriz A, e assim sucessivamente. Veja a figura: ![]() Matriz simétrica: sabendo o que é uma matriz transposta, dada a matriz A, quando calculamos a matriz transposta de A e encontramos a própria matriz A, ou seja, A = At, então essa matriz é simétrica. Escreva um programa C++ que declara uma matriz de inteiros de 3 linhas e 3 colunas e peça para o usuário informar os valores de cada elemento. Em seguida mostre a matriz informada e indique se a matriz é uma matriz simétrica ou não. Sua saída deverá ser parecida com: Elemento na linha 1 e coluna 1: 5 Elemento na linha 1 e coluna 2: 1 Elemento na linha 1 e coluna 3: 2 Elemento na linha 2 e coluna 1: 1 Elemento na linha 2 e coluna 2: 6 Elemento na linha 2 e coluna 3: 3 Elemento na linha 3 e coluna 1: 2 Elemento na linha 3 e coluna 2: 3 Elemento na linha 3 e coluna 3: 8 5 1 2 1 6 3 2 3 8 A matriz informada é uma matriz simétrica. Veja a resolução comentada deste exercício em C++: ---------------------------------------------------------------------- Precisa de ajuda? Chama no WhatsApp +55 (62) 98553-6711 (Osmar) Este código foi útil? Paga um cafezinho pra mim :-( PIX: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- #include <iostream> #include <iomanip> using namespace std; // função principal do programa int main(int argc, char *argv[]){ int n = 3; // ordem da matriz quadrada int matriz[n][n]; // matriz quadrada bool simetrica = true; // vamos pedir para o usuário informar os valores // dos elementos da matriz, uma linha de cada vez for(int i = 0; i < n; i++){ for(int j = 0; j < n; j++){ cout << "Linha " << (i + 1) << " e coluna " << (j + 1) << ": "; // lê o número e guarda na linha e coluna especificadas cin >> matriz[i][j]; } } // agora verificamos se a matriz é simétrica for (int i = 0; (i < n) && (simetrica); i++) { for (int j = 0; (j < i) && (simetrica); j++) { // os elementos em posicoes simetricas sao iguais? if (matriz[i][j] != matriz[j][i]){ simetrica = false; } } } // agora mostramos a matriz lida cout << "\nValores na matriz\n\n"; for(int i = 0; i < n; i++){ for(int j = 0; j < n; j++){ cout << setw(5) << matriz[i][j]; } // passa para a próxima linha da matriz cout << "\n"; } if (simetrica){ cout << "\nA matriz informada é uma matriz simétrica." << endl; } else{ cout << "\nA matriz informada não é uma matriz simétrica." << endl; } cout << "\n" << endl; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } |
![]() |
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de C++ |
Veja mais Dicas e truques de C++ |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |