Найти тему
Top Skill

Базовая алгоритмическая конструкция "Ветвление"

Данная статья является дополнением ранее опубликованного видео третьего урока, поэтому перед прочтением рекомендуется его посмотреть.

Ветвление - алгоритмическая конструкция, организующая выполнение лишь одного из двух указанных действий в зависимости от результатов вычисления логического выражения.

Логическое выражение (условие) - высказывание, построенное с помощью операций отношения (таких как "равно", "больше", "меньше", "больше либо равно", "меньше либо равно", "не равно") и логических операций (логическое "И", логическое "ИЛИ", логическое отрицание "НЕ"), имеющее два варианта ответа: истина (true) или ложь (false).

Запись ветвления выполняется в двух формах: полной и неполной. Неполная форма с одним оператором выглядит следующим образом:

Не полная форма конструкции ветвление с одним оператором
Не полная форма конструкции ветвление с одним оператором

В виде псевдокода такой вариант ветвления будет выглядеть так:

если условие то
оператор

Приведённый псевдокод следует читать следующим образом: если условие истинно (true), то выполнить оператор.

Полная форма с одним оператором выглядит следующим образом:

Полная форма конструкции ветвление с одним оператором
Полная форма конструкции ветвление с одним оператором

В виде псевдокода такой вариант ветвления будет выглядеть следующим образом:

если условие то
оператор 1
иначе
оператор 2

Приведённый псевдокод следует читать следующим образом: если условие истинно (true), то выполнить оператор 1, иначе выполнить оператор 2. В секцию иначе произойдёт переход в случае, когда условие ложно (false).

Неполная форма ветвления с несколькими операторами приведена ниже:

Неполная форма конструкции ветвление с несколькими операторами
Неполная форма конструкции ветвление с несколькими операторами
если условие то
оператор 1
оператор 2
...
оператор n

Приведённый псевдокод следует читать следующим образом: если условие истинно, то выполнить оператор 1, оператор 2 и так далее оператор n (n определяет количество операторов).

Полная форма с несколькими операторами.

Полная форма конструкции ветвление с несколькими операторами
Полная форма конструкции ветвление с несколькими операторами
если условие то
оператор 1
оператор 2
...
оператор n
иначе
оператор 1`
оператор 2`
...
оператор n`

Приведённый псевдокод следует читать следующим образом: если условие истинно, то выполнить оператор 1, оператор 2 и так далее оператор n (n определяет количество операторов), иначе выполнить оператор 1', оператор 2' и так далее оператор n' (n' определяет количество операторов).

При использовании конструкции ветвление возможны случаи, в которых одна конструкция ветвление вложена внутри другой. Ниже приведён пример такого вложения в общем виде.

Конструкция ветвление с 2-я уровнями вложения
Конструкция ветвление с 2-я уровнями вложения
если условие 1 то
оператор 1
иначе если условие 2 то
оператор 2
если условие 3 то
оператор 3
иначе
оператор 4
оператор 5

В данном случае конструкция, проверяющая условие 3, является вложенной и зависит от выполнения условия 2. Если условие 1 ложно (false), а условие 2 истинно (true), то выполниться оператор 2, а после него управление будет передано блоку, в котором проверяется условие 3.

Ниже приводится несколько алгоритмов, использующих базовую алгоритмическую конструкцию ветвление.

Пример 1. Определить знак числа, если оно отлично от нуля.

Блок-схема алгоритма определения знака числа
Блок-схема алгоритма определения знака числа
ввод(N)
если N > 0 то
вывод(“N-положительное”)
иначе если N< 0 то
вывод(“N-отрицательное”)
иначе
вывод(“N = 0”)

В данном примере N является входным параметром, о чём свидетельствует операция ввода. После того как значение N определено проверяется условие N>0, если это условие истинно, то выполняется вывод сообщения "N - положительно" и алгоритм на этом завершается, иначе проверяется условие N<0, если оно истинно - выводится "N-отрицательное", а иначе (то есть если не выполняется ни первое, ни второе условие) выполняется вывод "N=0".

Пример 2. Ввести оценку студента в баллах и сообщить ее название.

Блок схема алгоритма определения названия оценки в зависимости от количества баллов
Блок схема алгоритма определения названия оценки в зависимости от количества баллов
ввод(b)
если b == 5 то
вывод(“отлиично”)
иначе если b == 4 то
вывод(“хорошо”)
иначе если b == 3 то
вывод(“удовл”)
иначе если b == 2 то
вывод(“неуд”)
Иначе
вывод(“не оценка”)

Проанализируйте и опишите (как это сделано в 1-м примере) самостоятельно, приведённый в данном и следующем примере, псевдокод (при необходимости, обращайтесь за помощью к видео 3-го урока).

Пример 3. Ввести значение двух аргументов и знак арифметической операции. Вычислить результат операции.

Блок-схема алгоритма вычисления значения в зависимости от введённого знака операции
Блок-схема алгоритма вычисления значения в зависимости от введённого знака операции
ввод(Num1, Num2, Sign)
если Sign == “+” то
Result = Num1 + Num2
иначе если Sign == “-” то
Result = Num1 - Num2
иначе если Sign == “*” то
Result = Num1 * Num2
иначе если Sign == “/” то
Result = Num1 / Num2
Иначе
вывод(“Не верный знак операции”)
Вывод(Result)

Пример 4. Вычисление действительных корней квадратного уравнения.

Блок-схема алгоритма вычисления действительных корней квадратного уравнения
Блок-схема алгоритма вычисления действительных корней квадратного уравнения
ввод(a, b, c)
D = b^2 - 4 * a * c
если D < 0 то
вывод("Действительных корней нет")
иначе
если D = 0 то
x1,2 = -b / 2 * a
вывод(x1,2)
иначе
x1 = -b + sqrt(D) / 2 * a
x2 = -b - sqrt(D) / 2 * a
вывод(x1, x2)

На вход данного алгоритма поступает три параметра a, b, c, которые подставляются в формулу вычисления дискриминанта и далее, на основе полученного значения, алгоритм принимает решение о дальнейших действиях. Если дискриминант меньше нуля, то выводится сообщение "Действительных корней нет", а иначе уточняется значение дискриминанта. Если дискриминант равен нулю, то значение x1,2 будет вычислено по формуле -b / 2 * a, а иначе будет два значения, каждое из которых вычисляется по своей формуле, так x1 = -b + sqrt(D) / 2 * a, x2 = -b + sqrt(D) / 2 * a (обратите внимание на приоритет выполняемых операций и при необходимости добавьте скобки).

Пример 5. Вычисление значения Y в зависимости от заданного значения X.

Условия задачи, определяющие зависимость вычисления Y от заданного значения X
Условия задачи, определяющие зависимость вычисления Y от заданного значения X
Блок-схема алгоритма вычисления значения Y в зависимости от заданного значения X
Блок-схема алгоритма вычисления значения Y в зависимости от заданного значения X
ввод(x)
если x >= 0 то
y = sin^2 (x^2)
иначе если x <= -1 то
y = sqrt( abs(x^2 + 1) )
иначе
y = 2 * x + abs(x+3)

На вход данного алгоритма поступает параметр X, на основе значения которого принимается решение о том, как будет вычислено значение Y. Если X >= 0, то значение Y вычисляется по формуле Y = sin^2 (X^2), иначе если X <= -1, то Y вычисляется по формуле Y = sqrt( abs(X^2 + 1) ), а иначе Y = 2 * X + abs(X + 3).

Если Вы хотите выполнить индивидуальное задание по этой теме и получить по результатам его выполнения обратную связь - пишите на email olzo.curses@gmail.com