Comprobar la simetría de la matriz cuadrada

CCBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderemos a verificar si una matriz cuadrada es simétrica o no utilizando el lenguaje de programación C. Se dice que una matriz cuadrada es simétrica si es igual a su traspuesta. Encontraremos la traspuesta de la matriz y la compararemos con la matriz original para comprobar su simetría.

Nota: Debes crear el archivo ~/project/main.c tú mismo para practicar la codificación y aprender a compilar y ejecutarlo utilizando gcc.

cd ~/project
## crear main.c
touch main.c
## compilar main.c
gcc main.c -o main
## ejecutar main
./main

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/ControlFlowGroup(["Control Flow"]) c(("C")) -.-> c/CompoundTypesGroup(["Compound Types"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c(("C")) -.-> c/BasicsGroup(["Basics"]) c/BasicsGroup -.-> c/variables("Variables") c/BasicsGroup -.-> c/operators("Operators") c/ControlFlowGroup -.-> c/if_else("If...Else") c/ControlFlowGroup -.-> c/for_loop("For Loop") c/CompoundTypesGroup -.-> c/arrays("Arrays") c/UserInteractionGroup -.-> c/user_input("User Input") c/UserInteractionGroup -.-> c/output("Output") subgraph Lab Skills c/variables -.-> lab-123215{{"Comprobar la simetría de la matriz cuadrada"}} c/operators -.-> lab-123215{{"Comprobar la simetría de la matriz cuadrada"}} c/if_else -.-> lab-123215{{"Comprobar la simetría de la matriz cuadrada"}} c/for_loop -.-> lab-123215{{"Comprobar la simetría de la matriz cuadrada"}} c/arrays -.-> lab-123215{{"Comprobar la simetría de la matriz cuadrada"}} c/user_input -.-> lab-123215{{"Comprobar la simetría de la matriz cuadrada"}} c/output -.-> lab-123215{{"Comprobar la simetría de la matriz cuadrada"}} end

Declarar las variables e ingresar la matriz

Primero, necesitamos declarar las variables e ingresar la matriz por parte del usuario. Utilizaremos bucles anidados para ingresar la matriz. Para ingresar la matriz por parte del usuario, primero le preguntamos al usuario por la dimensión de la matriz y la almacenamos en 'n'. Luego ingresamos cada elemento de la matriz utilizando un bucle.

#include <stdio.h>

int main() {

    int c, d, a[10][10], b[10][10], n;
    printf("\nIngrese la dimensión de la matriz: \n\n");
    scanf("%d", &n);

    printf("\nIngrese los %d elementos de la matriz: \n\n", n * n);
    for (c = 0; c < n; c++)
        for (d = 0; d < n; d++)
            scanf("%d", &a[c][d]);

    return 0;
}

Encontrar la traspuesta de la matriz

La traspuesta de la matriz se obtiene intercambiando los índices de las filas y columnas. Utilizamos bucles anidados para encontrar la traspuesta de la matriz. Para encontrar la traspuesta de la matriz, utilizamos dos bucles. El primer bucle itera sobre las filas y el segundo bucle itera sobre las columnas.

// 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];

Comprobar la simetría de la matriz

En este paso, comprobaremos si la matriz original es igual a su traspuesta o no. Utilizamos bucles anidados para comprobar esto. Para comprobar la simetría de la matriz, utilizamos dos bucles. El primer bucle itera sobre las filas y el segundo bucle itera sobre las columnas.

// 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); // un método definido por el sistema para terminar el programa
        }

Imprimir los resultados

Después de comprobar que la matriz es simétrica, el programa muestra un mensaje que la confirma. El programa terminará si la matriz no es 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");

Resumen

En este laboratorio, aprendimos cómo comprobar si una matriz cuadrada es simétrica o no utilizando el lenguaje de programación C. Utilizamos bucles anidados para ingresar y encontrar la traspuesta de la matriz, luego comprobamos si la matriz original es igual a su traspuesta o no. Si las dos matrices eran iguales, el programa mostraba un mensaje que decía que la matriz es simétrica.