Перестановка блоков элементов матриц
В этом пункте задания необходимо найти соответствия между номерами строк и столбцов новой и преобразованной матриц, то есть закон, по которому переставляются элементы матрицы.
Пример 13. Получить матрицу Е, переставив блоки элементов матрицы D. Требуемые перестановки блоков матрицы D показаны на рисунке.
PROGRAM PR13;
VAR D, E : ARRAY [1..6, 1..6] OF REAL;
i, j : INTEGER;
BEGIN
{Ввести элементы матрицы D (способы задания матриц приведены в примерах 1, 2)}
E:=D;
FOR i:=3 TO 4 DO
FOR j:=5 TO 6 DO
E[i+2, j-2]:=D[i, j];
FOR i:=5 TO 6 DO
FOR j:=3 TO 4 DO
E[i-2, j+2]:=D[i, j];
{Вывод на экран матрицы E (см. примеры 3, 4)};
END.
Пояснения к программе: Сначала элементам матрицы E присваиваются соответствующие элементы матрицы D.
Рассмотрим элементы блока 1. Элемент D[3, 5] должен стать элементом E[5, 3]. То есть номер строки элемента D[3, 5] увеличивается на 2, а номер столбца уменьшается на 2.
Аналогичное изменение номеров строк и столбцов будет у элементов: D[3, 6] – E[5, 4];
D[4, 5] – E[6, 3];
D[4, 6] – E[6, 4].
Для перестановки данной группы элементов матрицы D в программе применяется вложенный цикл.
Теперь найдем закономерность для элементов блока 2 матрицы D. Элемент D[5, 3] должен стать элементом E[3, 5];
D[5, 4] – E[3, 6];
D[6, 3] – E[4, 5];
D[6, 4] – E[4, 6].
Нетрудно заметить, что номер строки матрицы D уменьшается на 2, а номер столбца увеличивается на 2.
Для перестановки этой группы элементов матрицы D в программе также используются вложенный цикл. Поскольку в данной программе выполняются однотипные действия, то можно описать процедуру, которая сократит программу. Рассмотрим пример.
Пример 14. Получить матрицу Е, переставив блоки элементов матрицы D. Требуемые перестановки блоков показаны на рисунке в примере 13. Решить задачу, используя процедуру.
PROGRAM PR14;
TYPE Mas = ARRAY [1..6, 1..6] OF REAL;
VAR D, E : Mas;
i, j : INTEGER;
PROCEDURE S (DS:Mas; i1,i2,j1,j2,is,js:INTEGER; VAR ES:Mas);
BEGIN
FOR i:=i1 TO i2 DO
FOR j:=j1 TO j2 DO
ES[i+is, j+js]:=DS[i, j];
END;
BEGIN
{Ввести элементы матрицы D (способы задания матриц приведены в примерах 1, 2)}
E:=D;
S(D, 3, 4, 5, 6, 2, -2, E);
S(D, 5, 6, 3, 4, -2, 2, E);
{Вывод на экран матрицы E (см. примеры 3, 4)};
END.
Пояснения к программе: Формальными параметрами процедуры S являются:
DS – переменная, определяющая имя исходной матрицы;
i1, i2 – номера строк переставляемого блока;
j1, j2 – номера столбцов переставляемого блока;
is, js – переменные, определяющие изменения номеров строк и столбцов матрицы;
ES – переменная, определяющая имя преобразованной матрицы.
Сначала элементам матрицы E присваиваются соответствующие элементы матрицы D. Затем дважды выполняется процедура S, но с различными значениями формальных параметров. При первом выполнении процедуры блок 1 переставляется на место блока 2, при втором – блок 2 на место блока 1.
Пример 15. Получить матрицу Е, переставив блоки элементов матрицы D. Требуемые перестановки блоков матрицы D показаны на рисунке.
PROGRAM PR15;
TYPE Mas =ARRAY [1..6, 1..6] OF REAL;
VAR E, D : Mas;
i, j : INTEGER;
PROCEDURE M (DS:Mas; i1,i2,j1,j2,is,js:INTEGER; VAR ES:Mas);
BEGIN
FOR i:=i1 TO i2 DO
FOR j:=j1 TO j2 DO
ES[i+is, j+js]:=DS[i, j];
END;
BEGIN
{Ввести элементы матрицы D (способы задания матриц приведены в примерах 1, 2)}
E:=D;
M (D, 1, 2, 1, 2, 0, 4, E);
M (D, 1, 2, 5, 6, 4, 0, E);
M (D, 5, 6, 5, 6, 0, -4, E);
M (D, 5, 6, 1, 2, -4, 0, E);
{Вывод на экран матрицы E (см. примеры 3, 4)};
END.
Пояснения к программе:Формальные параметры процедуры M аналогичны формальным параметрам процедуры S из примера 14.
Сначала элементам матрицы E присваиваются соответствующие элементы матрицы D. Затем для каждого переставляемого блока выполняется процедура M, но с различными значениями формальных параметров.
ВЫЧИСЛЕНИЯ В МАТРИЦАХ
В пункте 6 задания требуется осуществить какие-либо вычисления для матрицы. Такими вычислениями могут быть: определение среднеарифметического элементов главной диагонали, определение минимального элемента матрицы, определение количества положительных или отрицательных элементов матрицы и другие вычисления.
Рассмотрим примеры.
Пример 16. Для заданной матрицы E определить номер столбца с максимальной суммой элементов.
PROGRAM PR16;
VAR E : ARRAY [1..6, 1..6] OF REAL;
i, j, jmax : INTEGER;
Smax, s : REAL;
BEGIN
{Ввести элементы матрицы E (способы задания матриц приведены в примерах 1, 2)}
Smax:=0;
jmax:=1;
FOR i:=1 TO 6 DO Smax:=Smax+E[i, 1];
FOR j:=2 TO 6 DO BEGIN
s:=0;
FOR i:=1 TO 6 DO s:=s+E[i, j];
IF s>=Smax THEN BEGIN
Smax:=s;
jmax:=j;
END;
END;
WRITELN (' номер столбца с мак. суммой элем. = ', jmax);
END.
Пояснения к программе: Переменная Smax – определяет максимальную сумму элементов в столбце;
jmax – определяет номер столбца с максимальной суммой элементов;
s – определяет сумму элементов в текущем столбце.
В первом цикле FOR подсчитывается сумма элементов первого столбца. Переменной Smax присваивается это значение. Затем во вложенном цикле подсчитывается сумма элементов каждого столбца, начиная со второго, и при выполнении условия оператора IF, переменной jmax присваивается номер столбца с максимальной суммой элементов.
Пример 17. Для заданной матрицы E определить минимальный элемент 3 и 5 столбца.
PROGRAM PR17;
VAR E : ARRAY [1..6, 1..6] OF REAL;
i, j : INTEGER;
Emin3, Emin5 : REAL;
BEGIN
{Ввести элементы матрицы E (способы задания матриц приведены в примерах 1, 2)}
Emin3:=E[1, 3];
Emin5:=E[1, 5];
FOR i:=2 TO 6 DO BEGIN
IF Emin3>E[i, 3] THEN Emin3:=E[i, 3];
IF Emin5>E[i, 5] THEN Emin5:=E[i, 5];
END;
WRITELN (' мин. элем. 3 столбца = ', Emin3:7:1);
WRITELN (' мин. элем. 5 столбца = ', Emin5:7:1);
END.
Пояснения к программе: Переменная Emin3 – определяет минимальной элемент в 3 столбце; Emin5 – минимальной элемент в 5 столбце.
СПИСОК ЛИТЕРАТУРЫ
1. Фаронов В.В. Программирование на персональных ЭВМ в среде Турбо-Паскаль. – М.: Изд-во МГТУ, 2007. –580 с.
2. Белецкий Я. Турбо Паскаль с графикой для персональных компьютеров / Пер. с польск. Д.И. Юренкова. – М.: Машиностроение, 2006. –320 с.
ЗАДАНИЕ
1. Получить матрицу А( m*n) образованную по соответствующему закону (размер матрицы и закон, по которому определяется каждый элемент матрицы А, для каждого варианта задания приведены в столбце 2 таблицы).
2. Получить матрицу В, осуществив соответствующие преобразования над матрицей А (преобразование, которое необходимо сделать над матрицей А, для каждого варианта задания приведено в столбце 3 таблицы).
3. Построить матрицу С (6*6) соответствующего вида (вид матрицы С для каждого варианта задания приведен в столбце 4 таблицы).
4. Вычислить D=B*C.
5. Получить матрицу Е, переставив блоки матрицы D (необходимые перестановки для каждого варианта задания приведены в столбце 5 таблицы).
6. Сделать соответствующие вычисления для матрицы Е (требуемые вычисления приведены в столбце 6 таблицы).
На экран необходимо последовательно вывести матрицы А, В, С, D, Е и результат вычисления пункта 6 задания.
№ | закон | преобразование для матрицы А | вид матрицы С | вид матрицы Е | вычислить, определить (для матрицы Е) |
(6*6) | упорядочить элементы в строках по возрастанию | сумму min и max элементов главной диагонали | |||
(6*6) | упорядочить элементы в столбцах по возрастанию | среднеарифметическое элементов побочной диагонали | |||
(6*6) | упорядочить элементы в строках по убыванию | среднеарифметическое отрицательных элементов матрицы | |||
(6*6) | упорядочить элементы в строках по возрастанию | минимальный элемент главной диагонали | |||
(6*6) | упорядочить элементы в столбцах по убыванию | номер строки и столбца с максимальным элементом матрицы | |||
(6*6) | упорядочить элементы в строках по убыванию | количество отрицательных элементов матрицы | |||
(6*6) | упорядочить элементы в столбцах по возрастанию | минимальный элемент матрицы | |||
(6*7) | удалить столбец содержащий max элемент матрицы | количество положительных элементов матрицы | |||
(6*6) | поменять местами строки с min и max элементами матрицы | номер столбца с максимальной суммой элементов | |||
(7*6) | удалить строку содержащую min элемент матрицы | количество положительных элементов 1 и 3 строк матрицы | |||
(6*6) | поменять местами столбцы с min и max среди положительных элементов | номер столбца содержащий минимальный элемент матрицы | |||
(6*6) | упорядочить элементы в строках по убыванию | количество положительных элементов главной диагонали | |||
(6*7) | удалить столбец содержащий min элемент матрицы | Минимальный элемент 1 и 6 столбцов матрицы | |||
(6*6) | поменять местами строки с min и max среди положительных элементов | максимальный элемент 2 и 3 строк матрицы | |||
(7*6) | удалить строку, содержащую max элемент матрицы | максимальный элемент матрицы | |||
(6*6) | упорядочить элементы в строках по убыванию | максимальный элемент 1 и 5 строк матрицы | |||
(6*7) | удалить столбец, содержащий max элемент матрицы | Максимальный элемент 2 и 4 строк матрицы | |||
(6*6) | поменять местами строки с min и max элементом матрицы | максимальный элемент главной диагонали | |||
(6*6) | упорядочить элементы в столбцах по убыванию | номер строки содержащей максимальный элемент матрицы | |||
(6*7) | удалить столбец содержащий max элемент матрицы | среднеарифметическое положительных элементов матрицы | |||
(6*6) | поменять местами столбцы с min и max среди положительных элементов матрицы | количество отрицательных элементов главной диагонали | |||
(6*6) | упорядочить элементы в столбцах по возрастанию | сумму минимального и максимального элементов матрицы | |||
(6*7) | удалить столбец содержащий min среди положительных элементов матрицы | номер столбца с минимальной суммой элементов матрицы | |||
(6*7) | удалить столбец содержащий max элемент матрицы | сумму положительных элементов матрицы | |||
(7*6) | удалить строку содержащую max элемент матрицы | минимальный элемент 3 и 5 столбцов матрицы | |||
(6*6) | упорядочить элементы в столбцах по убыванию | номер строки с максимальной суммой элементов матрицы | |||
(6*7) | удалить столбец содержащий min элемент | номер строки с минимальной суммой элементов матрицы | |||
(7*6) | удалить строку содержащую min элемент матрицы | номер строки и столбца с минимальным элементом матрицы | |||
(7*6) | удалить строку содержащую max элемент матрицы | среднеарифметическое элементов главной диагонали | |||
(6*6) | поменять местами строки содержащие max и min элементы матрицы | сумму отрицательных элементов матрицы |
СОДЕРЖАНИЕ
ВВЕДЕНИЕ. 3
1. ОПИСАНИЕ МАССИВОВ.. 3
2. ЗАПОЛНЕНИЕ МАССИВА ЭЛЕМЕНТАМИ.. 4
3. ВЫВОД МАССИВОВ НА ЭКРАН.. 6
4. ДЕЙСТВИЯ НАД МАТРИЦАМИ.. 7
5. ПОСТРОЕНИЕ МАТРИЦ ПО ЗАДАННОМУ ВИДУ.. 10
6. УМНОЖЕНИЕ МАТРИЦ.. 12
7. ПЕРЕСТАНОВКА БЛОКОВ ЭЛЕМЕНТОВ МАТРИЦ.. 13
8. ВЫЧИСЛЕНИЯ В МАТРИЦАХ.. 17
СПИСОК ЛИТЕРАТУРЫ.. 18
ЗАДАНИЕ. 18