Преобразование матрицРефераты >> Программирование и компьютеры >> Преобразование матриц
2. Ввод элементов можно представить соответствующей подпрограммой, структурограмма которой приведена на рис.11. Всего должно быть выведено z*z значений для каждого массива.
3. Печать элементов матриц А, В, С (а также отладочная печать). В данном блоке определёна печать значений элементов квадратных матриц А, В, С размером z*z.
4. Умножение матриц удобно представить следующей подпрограммой, структурограмма которой приведена на рисунке 13.
Имя подпрограммы: SCAL | ||
Входные параметры: A – матрица,размером z*z | ||
I=1(1)z | ||
J=1(1)z | ||
B[i,j]=2*A[i,j] | ||
Выходные параметры: А – матрица размером z*z. | ||
Рис. 14. Детализация блока 6 схемы алгоритма |
5. Транспонирование матрицы N реализуется подпрограммой по схеме, приведённой на рис. 12.
6. Умножение матрицы С на скаляр можно представить соответствующей подпрограммой, структурограмма которой приведена на рис. 14.
7. Вычитание матрицы М из матрицы К представлено в виде подпрограммы на рис.15.
8. Подпрограмма формирования вектора из сумм элементов каждой строки представлена структурограммой на рисунке 16.
9. Сортировка элементов полученного массива по убыванию и итоговый вывод одномерного массива по столбцам. Подпрограмма представлена в виде структурограммы на рис. 17.
Имя подпрограммы SUM | ||
Входные параметры: А – матрица, размером z*z | ||
I=1(1)z | ||
S=0 | ||
J=1(1)z | ||
S=A[i,j] | ||
B[i]=S | ||
Выходные параметры: В – матрица размером z. | ||
Рис. 16. Детализация блока 8 | ||
схемы алгоритма |
Имя подпрограммы: VIC | ||
Входные параметры: A, B – матрицы, размером z*z | ||
I=1(1)z | ||
J=1(1)z | ||
C[i,j]=A[i,j]-B[i,j] | ||
Выходные параметры: C – матрица размером z*z. | ||
Рис. 15. Детализация блока 7 схемы алгоритма |
Имя подпрограммы: SORT | |||
Входные параметры: А – матрица, размером z | |||
I=1(1)z | |||
C=I | |||
J=1(1)z | |||
A[i]<A[j] Да |
Нет | ||
С=A[i] | |||
A[i]=A[j] | |||
A[j]=C | |||
Выходные параметры: A – матрица размером z. | |||
Рис. 17. Детализация блока 9 схемы алгоритма |
После каждой подпрограммы производится отладочная печать, представленная отдельной подпрограммой, структкрограмма которой изображена на рис. 18.
Имя подпрограммы: VVOD | ||
Входные параметры: А – матрица, размером z*z | ||
I=1(1)z | ||
J=1(1)z | ||
Вывод элементов | ||
Выходные параметры: А – матрица размером z*z. | ||
Рис. 18. Детализация подпрограммы вывода элементов |
6. Текст программы.
Программа нахождения одномерного массива, элементы которого расположить по убыванию и вывести в виде столбца, написана на языке Турбо Паскаль. Программа функционирует в среде Турбо Паскаль 7.0.
Исходные данные, имеющие смысл значений элементов массива, вводятся в диалоговом режиме. Вместе с этим значения элементов другого исходного массива вычисляются по заданным формулам.
В процессе получения результирующей матрицы реализованы следующие действия с массивами:
o умножение квадратных матриц размером z*z;
o транспонирование квадратной матрицы;
o умножение квадратной матрицы на скаляр;
o вычитание квадратных матриц.
Для упрощения решения поставленной задачи сформирован массив, каждый элемент которого равен сумме элементов соответствующей строки результирующей матрицы. Далее элементы сортируются в порядке убывания и выводятся по столбцам.
Каждая матричная операция сопровождается печатью соответствующего массива (печать значений элементов квадратной матрицы выполнена в виде подпрограммы).
Окончательный вариант программы имеет следующий вид:
{Программа: Kyrsaс }
{Цель: Развернуть одномерный массив по столбцам }
{расположить элементы полученного вектора по убыванию }
{Переменные: }
{ A, B, C - вводимые массивы }
{ N, K, M, H, Y, X - промежуточные массивы }
{ z - Размер массива }
{ i, j - переменные цикла }