26
5. АЛГОРИТМЫ ОБРАБОТКИ МАССИВОВ ДАННЫХ
С ИСПОЛЬЗОВАНИЕМ ПОДПРОЦЕССОВ
Понятие «подпроцесс» при решении инженерных задач встречается
очень часто и имеет различные трактовки. В нашем случае под терми"
ном «подпроцесс» будем понимать конечный набор действий (шагов),
направленных на решение подзадачи, выделенной из главной (основ"
ной) задачи. Алгоритмизация задач, в которых можно выделить одну
или несколько подзадач (встречающихся обычно не один раз по ходу
решения основной задачи), является полезным занятием для приобре"
тения навыков модульного принципа программирования.
Рассмотрим на примере два подхода к решению одной и той же
задачи обработки массивов данных.
Пример 5.1
Ввести значения элементов одномерного массива A
n
. Элементы
массива B
n
вычисляются по формуле:
1sin(2*) 1...
i
biin12 1
Най"
ти значения максимальных элементов в каждом из массивов. Вывес"
ти промежуточные и окончательные результаты расчетов.
Решение
Вариант 1. Составим схему алгоритма решения задачи, последо"
вательно выполняя все указанные требования (рис. 5.1).
Вариант 2. Перед алгоритмизацией задачи проведем ее анализ. В
задаче (основном процессе) можно выделить дважды встречающуюся
подзадачу (подпроцесс) нахождения значения максимального элемен"
та в одномерном массиве. Решение этой подзадачи можно оформить в
виде отдельной схемы алгоритма, на которую необходимо организо"
вать две ссылки (отдельно для массива A и массива B) из схемы алго"
ритма решения основной задачи (рис. 5.2).
На втором варианте решения задачи следует остановиться под"
робнее.
Во"первых, о введенных обозначениях: Maximum – имя подпроцесса
нахождения значения максимального элемента в одномерном массиве;
Z и n – внутренние имена использующихся в подпроцессе так называе"
мых формальных параметров, причем Z – это одномерный массив
размерностью n. Подпроцесс Maximum инициируется из основного про"
цесса посредством упоминания имени подпроцесса с указанием так на"
зываемых фактических параметров (рис. 5.2, блок 9 – A и n, блок
11 – B и n). Z
max
– так называемый локальный параметр, который
может использоваться только внутри подпроцесса.
Во"вторых, подпроцесс Maximum можно с определенной степенью
условности отождествить с понятием «функция». Функция – это оп"