Даны переменные a и b (a ¹ b). Переменной max присвоить численное значение наибольшей переменной. Математическая формулировка задачи:
Анализ задачи показывает:
1. Существуют два возможных пути решения задачи:
max = a (ветвь 1) и max = b (ветвь 2).
2. Вопрос о том, численное значение какой из переменных aилиb, следует присвоить переменнойmax, может быть решен только после проверки одного из условий: a > b или a < b. Проверке может быть подвергнуто только одно из двух условий, поскольку они являются взаимоисключающими.
3. Проверка выбранного условия производится машиной в процессе выполнения программы, следовательно, разработчику программы результат этой проверки заранее не известен. Поэтому в алгоритме нужно предусмотреть возможность вычислений по каждой из двух ветвей.
Алгоритм состоит из линейной структуры, в которую вложена типовая ветвящаяся структура-разветвление.
Схема алгоритма
|
|
Пример 1.8
Сравнить величины a и b. Если a < b, величину b уменьшить вдвое, результат вывести.
При решении этой задачи нужно использовать ответвление, т.к. в одной из ветвей должны производиться уменьшение величины b и вывод результата, а в другой никаких действий выполнять не следует.
Алгоритм представляет собой сложную линейную структуру, в которую вложена ветвящаяся структура – ответвление.
Схема алгоритма
Пример 1.9
Вычислить значение функции
В алгоритме следует использовать третью разновидность ветвящейся структуры - переключение, так как в зависимости от значения величины k вычислительный процесс может пойти по одной из трех ветвей.
Схема алгоритма
Алгоритм так же, как и в двух предыдущих примерах, является сложной линейной структурой с переключением в качестве вложенной структуры.
Пример 1.10
Вычислить значение функции
Схема алгоритма
Здесь в линейную структуру вложена ветвящаяся, ветвь «нет» которой, в свою очередь, составляет еще одна ветвящаяся структура. Глубина вложения такой ветвящейся структуры равна 2.