Лабораторная работа №6
Работа с матрицами
1. Цель работы
Целью лабораторной работы является получение практических навыков в работе с матрицами в языке C++.
2. Задачи работы
Освоить следующие темы:
Операторы цикла языка C++. Вложенные циклы.
Условный оператор языка C++.
Матрицы.
3. Содержание работы
1. Создать квадратную матрицу целых чисел размером 9х9. В индивидуальных заданиях указано, какую обработку матрицы требуется выполнить.
Если по условию задания матрицу следует заполнить случайными числами, рекомендуем выбирать эти числа из диапазона 0 - 99. Если по условию задания в матрицу следует записать ЛП - линейную последовательность чисел, имеется в виду последовательность: 1, 2, 3, ...
2. Вывести на печать исходные данные и результат.
4. Порядок выполнения работы
1. Двумерные массивы
Подробно этот пункт раскрыт в указаниях к лабораторной работе № 1. Вспомним основные моменты при работе с многомерными (двумерными) массивами.
Для того чтобы элементы матрицы располагались один под другим, используется манипулятор setw(), устанавливающий для очередного выводимого значения ширину поля. Для использования манипулятора необходимо подключить заголовочный файл . В массивах, определенных с помощью операторов описания, обе размерности должны быть константами или константными выражениями. Массив хранится по строкам в непрерывной области памяти. Первый индекс – номер строки, второй – номер столбца. Каждый индекс может изменяться от 0 до значения соответствующей размерности, уменьшенной на единицу. При описании массива можно в фигурных скобках задать начальные значения его элементов.
2. Разбор типового варианта
Заполнить матрицу случайными числами. Отобразить главную и побочную диагонали симметрично относительно вертикальной оси.
Вначале (первый блок программы) необходимо заполнить матрицу случайными числами и вывести ее на экран. Это можно сделать с помощью двух вложенных циклов.
Затем (второй блок) – отобразить главную и побочную диагональ симметрично вертикальной оси. Обозначим размерность матрицы как S, номер строки как i, а номер столбца как j, и заметим, что нумерация строк и столбцов будет начинаться с 0, отсюда можно определить, что если элементы главной диагонали имеют индексы [i][i], то соответствующие элементы побочной диагонали имеют индексы [i][S-1-i]. Следовательно, алгоритм может состоять из перебора матрицы строка за строкой и сменой соответствующих элементов главной и побочной диагоналей местами (с помощью вспомогательной переменной).
Затем (третий блок) необходимо вывести на экран элементы новой матрицы.
#include
#include
#include
main() {
const int s = 9;
int A[s][s];
short i,j,x;
clrscr();
randomize();
printf("\nPervonachalnaya matrica:\n\n");
for(i=0;i//заполняем и выводим матрицу -1-й блок
for(j=0;jA[i][j]=random(100);
printf("%3d",A[i][j]);
}
putchar('\n');
}
for(i=0;i//меняем диагонали – 2-й блок
x=A[i][i];
A[i][i]=A[i][s-1-i];
A[i][s-1-i]=x;
}
printf("\nNovaya matrica:\n\n");
for(i=0;i//выводим результирующую матрицу – 3-й блок
for(j=0;jprintf("%3d",A[i][j]);
putchar('\n');
}
getchar();
return 0;
}
Достарыңызбен бөлісу: |