Данная статья является дополнением ранее опубликованного видео третьего урока, поэтому перед прочтением рекомендуется его посмотреть.
Ветвление - алгоритмическая конструкция, организующая выполнение лишь одного из двух указанных действий в зависимости от результатов вычисления логического выражения.
Логическое выражение (условие) - высказывание, построенное с помощью операций отношения (таких как "равно", "больше", "меньше", "больше либо равно", "меньше либо равно", "не равно") и логических операций (логическое "И", логическое "ИЛИ", логическое отрицание "НЕ"), имеющее два варианта ответа: истина (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' определяет количество операторов).
При использовании конструкции ветвление возможны случаи, в которых одна конструкция ветвление вложена внутри другой. Ниже приведён пример такого вложения в общем виде.
если условие 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.
ввод(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