Verificar a Simetria de uma Matriz Quadrada

CBeginner
Pratique Agora

Introdução

Neste laboratório, aprenderemos como verificar se uma matriz quadrada é simétrica ou não usando a linguagem de programação C. Diz-se que uma matriz quadrada é simétrica se for igual à sua transposta. Encontraremos a transposta da matriz e a compararemos com a matriz original para verificar sua simetria.

Nota: Você precisa criar o arquivo ~/project/main.c por conta própria para praticar a codificação e aprender como compilar e executá-lo usando o gcc.

cd ~/project
## create main.c
touch main.c
## compile main.c
gcc main.c -o main
## run main
./main

Declarar as Variáveis e Inserir a Matriz

Primeiramente, precisamos declarar as variáveis e inserir a matriz do usuário. Usaremos loops aninhados para inserir a matriz. Para inserir a matriz do usuário, primeiro pedimos ao usuário a dimensão da matriz e a armazenamos em 'n'. Em seguida, inserimos cada elemento da matriz usando um loop.

#include <stdio.h>

int main() {

    int c, d, a[10][10], b[10][10], n;
    printf("\nEnter the dimension of the matrix: \n\n");
    scanf("%d", &n);

    printf("\nEnter the %d elements of the matrix: \n\n", n * n);
    for (c = 0; c < n; c++)
        for (d = 0; d < n; d++)
            scanf("%d", &a[c][d]);

    return 0;
}

Encontrar a Transposta da Matriz

A transposta da matriz é obtida trocando os índices de linhas e colunas. Usamos loops aninhados para encontrar a transposta da matriz. Para encontrar a transposta da matriz, usamos dois loops. O primeiro loop itera sobre as linhas, e o segundo loop itera sobre as colunas.

// finding transpose of a matrix and storing it in b[][]
for (c = 0; c < n; c++)
    for (d = 0; d < n; d++)
        b[d][c] = a[c][d];

Verificar a Simetria da Matriz

Nesta etapa, verificaremos se a matriz original é a mesma que sua transposta ou não. Usamos loops aninhados para verificar isso. Para verificar a simetria da matriz, usamos dois loops. O primeiro loop itera sobre as linhas, e o segundo loop itera sobre as colunas.

// checking if the original matrix is the same as its transpose
for (c = 0; c < n; c++)
    for (d = 0; d < n; d++)
        if (a[c][d] != b[c][d]) {
            printf("\n\nMatrix is not Symmetric\n\n");
            exit(0); // a system defined method to terminate the program
        }

Imprimir Resultados

Após verificar que a matriz é simétrica, o programa exibe uma mensagem confirmando isso. O programa será encerrado se a matriz não for simétrica.

// If the program is not terminated yet, it means the matrix is symmetric
printf("\n\nMatrix is Symmetric\n\n");
printf("\n\n\t\t\tCoding is Fun !\n\n\n");

Resumo

Neste laboratório, aprendemos como verificar se uma matriz quadrada é simétrica ou não usando a linguagem de programação C. Usamos loops aninhados para inserir e encontrar a transposta da matriz, e então verificamos se a matriz original é a mesma que sua transposta ou não. Se as duas matrizes fossem iguais, o programa exibia uma mensagem afirmando que a matriz é simétrica.