Алгоритмы ветвящейся структуры
В отличие от линейныхалгоритмов, в которых команды выполняются последовательно одна за другой, в разветвляющиеся алгоритмы входит условие, в зависимости от выполнения или невыполнения которого выполняется та или иная последовательность операций, групп операций или базовая управляющая структура. Каждая такая последовательность действий называется ветвью алгоритма.
Таким образом, алгоритм ветвящейся структуры содержит только структуры «Следование» и «Ветвление» (рис. 9.2, 9.3 и 9.4).
Структура «Ветвление» описывает следующий процесс: если B – ИСТИНА (TRUE) (не равно нулю), то выполняется структура S1; если B – ЛОЖЬ (FALSE) – структура S2. При этом происходит разветвление алгоритма (рис. 9.3).
Следует иметь в виду, что, хотя на схеме алгоритма должны быть показаны все возможные направления вычислений в зависимости от выполнения определённого условия (или условий), при однократном прохождении программы процесс реализуется только по одной ветви, а остальные исключаются. Любая ветвь, по которой осуществляются вычисления, должна приводить к завершению вычислительного процесса.
Пример. Рассмотрим пример ветвящегося вычислительного процесса. Определить и вывести на экран монитора сведения о положении точки (Х,Y) в указанной области (рис. 9.10). Координаты точки вводятся с клавиатуры по запросу пользователя. Примечание: прямая, уравнение которой х = 2 принадлежит области В.
Рис. 9.10. Рисунок, иллюстрирующий условие примера
Визуальное представление алгоритма в виде блок-схемы представлено на рисунке 9.11.
Рис. 9.11. Визуальное представление простого ветвящегося алгоритма решения задачи в виде блок-схемы
Если сравнить схему на рисунке 9.11 со схемами на рисунках 9.2 и 9.3, то видно, что данный алгоритм содержит базовые управляющие структуры – «Следование» и «Ветвление». При x ≥ 2 блоки выполняются в следующей последовательности: 1, 2, 3, 4, 5, 7. Следовательно, если x ≥ 2, в блоке 5 на мониторе будет выведено «точка X,Y в области В». Если x < 2, последовательность выполнения блоков следующая: 1, 2, 3, 4, 6, 7, т.е. на экран в блоке 6 будет выведено «точка X,Y в области А». Данный результат соответствует условию задачи.
В тестовом задании 9.2 представлен фрагмент данного ветвящегося алгоритма, записанный в словесно-формульном виде.
Тестовое задание 9.8
Определите значение переменной z после выполнения фрагмента алгоритма, представленного на рисунке 9.12:
Рис. 9.12. Рисунок к заданию 9.8
Решение.
Блок 1. Присваиваем значения х = 7 и y = 5.
Блок 2. Выполняем проверку x > y, результат – «истина», следовательно, после блока 2 выполняем блок 3.
Блок 3. Вычисляем значение переменной z = x+y = 7+5 = 12.
Блок 5. Выводим значение переменной z на экран монитора.