Преобразование матрицРефераты >> Программирование и компьютеры >> Преобразование матриц
Исходный массив из 8 элементов расположен по вертикали, и сортировка осуществляется по возрастанию значений его элементов. На первом проходе наверх на первую позицию «всплывает» самый «лёгкий» (наименьший) элемент (6) – «пузырёк», а все остальные «тонут», на втором проходе – «всплывают» уже два элемента: 12 – на вторую позицию и 18 – на пятую и т.д. отсортированные элементы массива отделены от не отсортированных чертой. На четвёртом проходе массив оказывается уже от сортированным, однако, если в алгоритме не предусмотреть специальных мер, будут выполнены оставшиеся 3 прохода, являющиеся холостыми.
На рис.8 приведён алгоритм сортировки массива Bиз nэлементов по возрастанию методом «пузырька». Для исключения холостых проходов в этот алгоритм вводится «флаг» - ячейка Ф (рис.9). В начале каждого прохода «флаг» сбрасывается Ф=0 (блок 3). Если в процессе прохождения будет хотя бы одна перестановка, то флаг поднимается Ф=1 (блок 7), разрешая переход к следующему проходу (блок 8). Если в процессе очередного прохода не будет ни одной перестановки, то флаг останется опущенным, и в блоке 8 управление будет передано на окончание сортировки. Если в алгоритмах, приведённых на рис. 8 (блок 4) и рис. 9 (блок 5), отношение > заменить на отношение <, то массив будет отсортирован по убыванию значений элементов.
5. Алгоритм основной программы и его описание.
По результатам анализа задания можно составить укрупненную схему алгоритма последовательной структуры (рис. 10).
1
2
3
4
Отладочная печать
матрицы N
5
Отладочная печать
6 матрицы К
Отладочная печать
матрицы М
7
Печать
результирующей
8 матрицы Н
9
Рис. 10. Укрупненная схема алгоритма
решения задачи
Проведём детализацию в последовательности, определяемой нумерацией блоков на рис. 1.
1. Ввод размеров матриц А, В, С. В данном блоке определён ввод размеров квадратных матриц А, В, С (z – размер матриц).
Имя подпрограммы: VVOD |
Имя подпрограммы: TRAN | |||||
Входные параметры: количество элементов z*z |
Входные параметры: А – матрица, размером z*z | |||||
I=1(1)z |
I=1(1)z | |||||
J=1(1)z |
J=1(1)z | |||||
Ввод элементов |
AТ[i,j]=B[j,i] | |||||
Выходные параметры: А – матрица размером z*z. |
Выходные параметры: В – матрица размером z*z | |||||
Рис.11. Детализация блока 2 Рис. 12. Детализация блока 5
схемы алгоритма. схемы алгоритма.
Имя подпрограммы YMN | |||
Входные параметры: А, В – матрицы размером z*z | |||
I=1(1)z | |||
J=1(1)z | |||
S=0 | |||
K=1(1)z | |||
S=S+A[i,k]*B[k,j] | |||
C[i,j]=S | |||
Выходные параметры: матрица С размером z*z | |||
Рис. 13. Детализация блока 4 | |||
схемы алгоритма |