Алгоритм ветвления
Ты уже знаешь
Алгоритм ветвления включает в себя:
условные операторы,
команды, которые выполняются в зависимости от выполнения или невыполнения определенного условия,
несколько альтернативных последовательностей команд,
условные блоки в виде ромба с двумя выходами.
Давайте разработаем псевдокод простого алгоритма ветвления, который используется для выбора большего из двух чисел, введенных пользователем. Вот блок-схема такого алгоритма:
Нажмите, чтобы начать предварительный просмотрНа рисунке показана блок-схема: 1: зеленый овал «СТАРТ», 2: фиолетовый параллелограмм «Загрузить a, b», 3: темно-фиолетовый ромб «ab», если верно: 4: фиолетовый параллелограмм «Печать a», если ложь: 4: фиолетовый параллелограмм «Печать b», 5: красный овал «СТОП».
рисунок 1
Источник: Contentplus.pl Sp. z o. o., лицензия: CC BY-SA 3.0.
Первым элементом схемы является стартовый блок. Затем читаем два числа, заданные пользователем: a и b. Эта операция соответствует входному блоку, имеющему форму параллелограмма. Далее идет условный алмазный блок с двумя выходами; он содержит команду для проверки, является ли число a большим, чем число b. Если это так, номер печатается на экране a. В противном случае отображается число b. Мы не учитываем ситуацию, при которой числа равны — тогда неважно, какое из них мы пишем (в случае использования показанного алгоритма это будет число b).
Условие, записанное на диаграмме, не является единственным решением. В условном блоке можно указать и другие выражения:
b a,
b = a,
a = b.
Однако надо помнить, что инструкции в зависимости от выполнения или невыполнения условия в первых двух случаях будут иными, чем в схеме, содержащей выражениеa b.
На основе разработанной блок-схемы можно написать псевдокод алгоритма. Условный оператор будет выглядеть так:
Строка 1. если условие. Строка 2. инструкция1. Строка 3 в противном случае. Строка 4. инструкция2.
1
если условие
2
инструкция1
3
в противном случае
4
инструкция2
В начале проверяется warunek, что идет после слова jeżeli. Если он встречается, выполняются инструкции, написанные сразу после него (в примере это instrukcja1). Если условие не выполняется, выполняются операторы, написанные после выражения w przeciwnym wypadku (в примере это будет instrukcja2).
Таким образом, алгоритм псевдокода, используемый для выбора большего из двух чисел, будет выглядеть следующим образом:
Строка 1. поставить запятую б. Строка 2. если a закрыть угловую скобку б. Строка 3. вывести а. Строка 4. иначе. Строка 5. печать б.
1
нагрузка а, б
2
если а б
3
написать
4
в противном случае
5
список б
Алгоритм с вложенными условиями
Для решения некоторых задач недостаточно проверить только одно условие (и выбрать одну из двух строк операторов). В случае, когда после проверки одного условия нужно проверить другое, мы имеем дело с алгоритмом с вложенными условиями . Примером такого алгоритма является выбор наибольшего из трех чисел. Вот блок-схема этого алгоритма:
Нажмите, чтобы начать предварительный просмотрНа рисунке показана блок-схема, состоящая из 2 меньших областей внутри большей: Основная область: 1: зеленый овал «СТАРТ», 2: фиолетовый параллелограмм «Загрузка a, b, c», 3: темно-фиолетовый ромб «a b». " если блок 3 (a b) верен: перейти к подразделу 1: 4: темно-фиолетовый ромб "a c", если блок 4 (a c) верен: 5a: фиолетовый параллелограмм "Выведите a", если блок 4 ( a c) неверен: 5b: фиолетовый параллелограмм "Выведите c", если блок 3 (a b) неверен: 4: темно-фиолетовый ромб "b c", если блок 4 (b c) ) тогда верно: 5a: фиолетовый параллелограмм «Вывести b», если блок 4 (b c) неверен: 5b: фиолетовый параллелограмм «Вывести c», Все блоки в подразделе ведут к 6:красный овал «СТОП».
Рис. 2
Источник: Contentplus.pl Sp. z o. o., лицензия: CC BY-SA 3.0.
В первом условном блоке есть команда, проверяющая, больше ли число a , чем число b. В результате будет указано большее число. Путь слева, помеченный словом «истина», ведет к набору инструкций, которые выполняются, когда a есть большее число. Справа от условного блока находится переход к инструкциям, выполняемым при большем числе b.
Когда мы выбираем большее из двух чисел, мы можем проверить, больше ли оно третьего числа - c. Эта операция представлена двумя блоками, представляющими вложенные условные выражения.
Если оказывается, что число, указанное после проверки первого условия, больше , то cв результате указываем a или b. В противном случае выводим число c.
Проанализируем псевдокод этого алгоритма.
Строка 1. поставить запятую b запятую c. Строку 2. если a закрыть угловую скобку b. Строку 3. если a закрыть угловую скобку c. Строку 4. вывести a. Строку 5. иначе. Строка 6 печатает c. Строка 7 иначе. Строка 8. Если б закрыть шеврон, в Строка 9, вывести б, Строка 10, иначе. Строка 11. печать c.
1
нагрузка а, б, в
2
если а б
3
если а с
4
написать
5
в противном случае
6
список с
7
в противном случае
8
если б с
9
список б
10
в противном случае
11
список с
Внутри одного условного оператора находится другой оператор, называемый вложенным условием. Если условие a b выполняется, проверяется условие a c, в противном случае проверяется условие b c. Каждая последовательность операторов требует проверки двух условий. Есть четыре способа решения проблемы.
Словарь
алгоритм ветвления
алгоритм, в котором записывается несколько альтернативных последовательностей инструкций
алгоритм с вложенными условиями
алгоритм, в котором другой условный оператор записывается внутри одного условного оператора