Скачиваний:
1
Добавлен:
01.03.2025
Размер:
683.01 Кб
Скачать

Информационная структура задачи

В соответствии со схемой (Рисунок 11), в процессе обработки вводится промежуточный массив минимальных значений строк и массив номеров строк, по которому происходит сортировка матрицы.

Входные данные:

  • m – число строк матрицы – целое число от 1 до 255;

  • n – число столбцов матрицы – целое число от 1 до 255;

  • A – двумерный массив с матрицей – 255x255 числового типа.

Промежуточные данные:

  • Mins – одномерный массив минимумов строк – 255 чисел.

  • Nums – одномерный массив номеров строк – 255 целых чисел.

Выходные данные:

  • B – двумерный массив с упорядоченной матрицей – 255x255 чисел.

Разработка алгоритма программы сортировки матрицы

Для получения результата программа должна выполнять следующую последовательность действий: Ввод размеров матрицы, ввод матрицы, определение минимальных значений строк, сортировка номеров строк в порядке возрастания минимальных значений, сортировка матрицы, вывод данных. В соответствии с принципом нисходящего структурного программирования представим эти действия на схеме алгоритма в виде последовательности подпрограмм.

Первая и вторая процедуры обеспечивают подсказку и корректный ввод пользователем размеров матрицы. Подсказка и ограничения задаются входными параметрами. Возвращаемое значение – число в заданных границах. В процедуре ввода массива: входные параметры задают размеры массива и область ввода, возвращаемые данные – массив исходных значений. В процедуре определения минимальных значений строк: входные параметры – исходный массив и его размеры, возвращаемые данные – массив минимальных значений строк. В процедуре сортировки номеров строк: входные данные – массив минимальных значений строк и его размеры, выходные - массив номеров строк, отсортированный в порядке возрастания минимальных значений. В процедуре сортировки матрицы: входные параметры – исходный массив, его размеры, отсортированный массив номеров строк, возвращаемые данные – отсортированный массив. В процедуре вывода массива: входные параметры – отсортированный массив, его размеры и координаты начала вывода.

Рисунок 12. Схема алгоритма сортировки матрицы по возрастанию минимальных значений строк

Разработка исходного текста программы

Sub SortM ()

Dim A(1 To 255, 1 To 255), B(1 To 255, 1 To 255), Mins(1 To 255)

Dim m As Long, n As Long, Nums(1 To 255) As Long

m=inputvalue(“Введите количество строк”,1,255)

n=inputvalue(“Введите количество столбцов”,1,255)

InputMas A,m,n,1,1 'Ввод массива A начиная с ячейки 1,1

FindMins A,m,n,Mins 'Поиск минимальных элементов строк

SortByMins m,Mins,Nums 'Сортировка номеров по Mins

SortByNums A,m,n,Nums,B 'Сортировка массива A в B по Nums

OutputMas B,m,n,m+2,1 'Вывод массива B mxn с ячейки m+2,1

End Sub

Все процедуры, кроме FindMins, SortByMins и SortByNums написаны в предыдущих примерах.

Процедура поиска минимальных значений строк

Информационная структура

Входные данные

  • m – число строк матрицы – целое число >0;

  • n – число столбцов матрицы – целое число >0;

  • A – двумерный массив с матрицей – числового типа.

Локальные данные

  • i – номер текущей строки массива – целое число от 1 до m;

  • j – номер текущего столбца массива – целое число от 1 до n;

Выходные данные

  • Mins – одномерный массив минимальных значений – числового типа.

Разработка алгоритма

Рисунок 13. Схема алгоритма поиска минимумов строк

Разработка исходного текста процедуры поиска минимальных значений строк.

Sub FindMins(A(),m As Long, n As Long, Mins())

Dim i As Long, j As Long

For i=1 To m 'Для всех строк

Mins(i)=A(i,1) 'Первый элемент считаем минимальным

For j=2 To n 'Для всех остальных элементов строки

If Mins(i)>A(i,j) Then Mins(i)=A(i,j)'Меньший–запоминаем

Next j 'Следующий элемент строки

Next i 'Следующая строка

End Sub

Процедура сортировки номеров строк

Информационная структура

Входные данные

  • m – число строк матрицы – целое число >0;

  • Mins – одномерный массив минимумов строк –числового типа.

Локальные данные

  • i – номер текущей строки массива – целое число от 1 до m;

  • j – позиция пузырька при сортировке - целое число от 1 до m;

  • x – промежуточное минимальное значения при сортировке – число.

  • y – промежуточный номер строки при сортировке – целое число.

Выходные данные

  • Nums – упорядоченный одномерный массив номеров строк – целые.

  • Mins – упорядоченный одномерный массив минимумов – числа.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]