- •Оглавление
- •Постановка задачи
- •Поиск минимальных элементов в строках массивов и создание линейного массива из их произведения
- •Сортировка нечетных элементов полученного массива по возрастанию.
- •Вывод отсортированного массива
- •Блок-схема алгоритма
- •Разработка программы на языке pascal
- •Описание блоков укрупненной схемы алгоритма на языке Pascal Ввод элементов двух двумерных массивов
- •Поиск минимальных элементов в строках массивов и создание линейного массива из их произведения
- •Сортировка нечетных элементов полученного массива по возрастанию
- •Вывод отсортированного массива
- •Текст программы
- •Тестирование программы
- •Список литературы
Поиск минимальных элементов в строках массивов и создание линейного массива из их произведения
Представим алгоритм поиска минимального элемента в каждой строке двумерного массива. Для хранения значения минимумов строк массивов A и B используем переменные mina и minb соответственно. Чтобы реализовать данный алгоритм, нам понадобятся вложенный цикл и ветвящаяся структура. Алгоритм ветвящейся структуры – алгоритм, ход в котором зависит от истинности тех или иных условий. Он делится на 3 вида:
Ответвление - в зависимости от условия выполнение вычислительного процесса происходит только по одному из направлений, например, по направлению, указанному знаком "+".
Развилка - в зависимости от итога проверки условия происходит выполнение либо одного вычислительного процесса, либо другого: если условие выполняется, то процесс продолжается по направлению, указанному знаком «+», иначе (условие не выполняется) – по направлению, указанному знаком «-».
Выбор - в зависимости от значения ключа выбора происходит выбор одного из нескольких возможных направлений и выполнение соответствующего ему вычислительного процесса.
Так как поиск элемента в массиве должен осуществляться по строкам (т.е. по i), то он должен быть организован как внешний цикл. Зафиксировав номер строки и приняв первые в строках числа за минимальные двумя блоками вычислений (mina:=a[i,1] и minb:=b[i,1]), начинаем перебирать элементы с помощью в строке по порядку с помощью внутреннего цикла с параметром: j=2,m. Здесь мы используем ответвление – если переменная mina больше, чем проверяемый элемент соответствующего массива (mina>A[i,j]), то переменной mina присваиваем значение этого элемента (minb:=A[i,j]). В противном случае переходим к другим действиям без присваивания. Так же поступаем и с массивом B. Ветвящаяся структура реализована в блок-схеме с помощью логических блоков. Когда все элементы в строке будут рассмотрены, в результате сравнения их друг с другом, будет найдены самые наименьшие элементы. Эти элементы перемножаем между собой и заносим в линейный массив С с номером элемента, соответствующим номеру проверяемых строк (C[i]) в блоке вычислений: C[i]:=mina*minb.
Все это можно представить в виде следующего фрагмента блок-схемы:
Сортировка нечетных элементов полученного массива по возрастанию.
Для сортировки (упорядочивания) нечетных элементов массива по возрастанию используем алгоритм сортировки обменом. Он реализовывается с помощью вложенного цикла и ответвления. Предположим, что первый элемент массива максимальный. Сравниваем значение этого элемента со значением второго с помощью логического блока, предварительно проверив оба элемента на нечетность. Т.е. если первый элемент больше второго и оба элемента нечетные, то выполнение вычислительного процесса происходит по направлению "+" - элементы меняются местами (Замену производим с помощью буферной переменной l). После этого значение первого элемента массива сравнивается со значением третьего и так далее, пока не проверится последний элемент. Затем уже второй элемент массива сравнивается таким же образом с последующими и так до предпоследнего элемента включительно. Таким образом, мы получим массив, в котором нечетные элементы отсортированы по возрастанию, а четные элементы остались на своих местах.
Соответствующий алгоритм в виде блок-схемы можно представить следующим образом:
