Преобразование матриц
Рефераты >> Программирование и компьютеры >> Преобразование матриц

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 - переменные цикла }


Страница: