Введение
В этом лабораторном задании мы научимся проверять, является ли квадратная матрица симметричной, используя язык программирования C. Квадратная матрица называется симметричной, если она равна своей транспонированной матрице. Мы найдем транспонированную матрицу и сравним ее с исходной матрицей, чтобы проверить ее симметрию.
Примечание: вам нужно самостоятельно создать файл
~/project/main.c, чтобы практиковаться в написании кода и узнать, как компилировать и запускать его с использованием gcc.
cd ~/project
## создать main.c
touch main.c
## скомпилировать main.c
gcc main.c -o main
## запустить main
./main
Объявить переменные и ввести матрицу
Сначала нам нужно объявить переменные и ввести матрицу от пользователя. Мы будем использовать вложенные циклы для ввода матрицы. Чтобы ввести матрицу от пользователя, мы сначала спрашиваем у пользователя размерность матрицы и сохраняем ее в 'n'. Затем мы вводим каждый элемент матрицы с использованием цикла.
#include <stdio.h>
int main() {
int c, d, a[10][10], b[10][10], n;
printf("\nВведите размерность матрицы: \n\n");
scanf("%d", &n);
printf("\nВведите %d элементов матрицы: \n\n", n * n);
for (c = 0; c < n; c++)
for (d = 0; d < n; d++)
scanf("%d", &a[c][d]);
return 0;
}
Найти транспонированную матрицу
Транспонированная матрица получается путем обмена индексов строк и столбцов. Мы используем вложенные циклы, чтобы найти транспонированную матрицу. Для нахождения транспонированной матрицы мы используем два цикла. Первый цикл итерируется по строкам, а второй цикл итерируется по столбцам.
// 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];
Проверить симметрию матрицы
В этом шаге мы проверим, совпадает ли исходная матрица с ее транспонированной матрицей или нет. Для этого мы используем вложенные циклы. Чтобы проверить симметрию матрицы, мы используем два цикла. Первый цикл итерируется по строкам, а второй цикл итерируется по столбцам.
// 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\nМатрица не является симметричной\n\n");
exit(0); // системный метод для завершения программы
}
Напечатать результаты
После проверки того, что матрица симметрична, программа выводит сообщение, подтверждающее это. Программа будет завершаться, если матрица не является симметричной.
// If the program is not terminated yet, it means the matrix is symmetric
printf("\n\nМатрица является симметричной\n\n");
printf("\n\n\t\t\tПрограммирование весело!\n\n\n");
Резюме
В этом практическом занятии мы научились проверять, является ли квадратная матрица симметричной, используя язык программирования C. Мы использовали вложенные циклы для ввода и нахождения транспонированной матрицы, а затем проверили, совпадает ли исходная матрица с ее транспонированной. Если две матрицы были одинаковыми, программа выводила сообщение, которое говорило, что матрица симметрична.



