Алгоритмическая структура «Ветвление» используется в тех случаях, когда для решения задачи необходимо проверить некоторое заданное условие и совершить одни действия при выполненном условии и иные действия при невыполненном условии. На блок-схеме это выглядит следующим образом:
нет да
Обе ветки «Да» и «Нет» сходятся в одной точке, называемой концом ветвления.
Соответствующий оператор Pascal:
IF <условие> THEN <блок_1> ELSE <блок-2> ;
В «переводе на русский язык»: если заданное условие выполняется, работают операторы блока_1, в противном случае – операторы блока _2. Блок_1 и блок_2 могут состоять из одного или нескольких операторов (не обязательно линейных, т.е. любой из блоков может содержать новое ветвление или цикл). Если блок_1 или блок_2 состоит из нескольких операторов, то их нужно заключить в операторные скобки Begin end
Данный вариант блок-схемы и оператора соответствует полному ветвлению. Существует также неполное ветвление, в котором отсутствуют операторы блока_2, т.е. фактически производится обход операторов блока_1: если заданное условие выполняется, работают операторы блока_1, в противном случае (по ветке «нет») никакие действия не производятся
Оператор Pascal для неполного ветвления: IF <условие> THEN <блок_1>;
Соответствующий элемент блок-схемы:
. нет да
Задача № 6
Даны (вводятся с клавиатуры) коэффициенты a, b, c квадратного уравнения ax2 + bx + c = 0. Найти и вывести на экран монитора действительные корни этого уравнения. Если данное уравнение не имеет действительных корней, вывести на экран монитора сообщение об этом. Как известно, наличие (отсутствие) действительных корней определяется значением дискриминанта d = b2 – 4ac: Если d>=0, то корни существуют.
Данная программа – пример полного ветвления. При проверке программы необходимо задать исходные данные (числа a, b и с) так, чтобы: 1) вывелось сообщение «Действительных корней нет», 2) получились одинаковые корни, 3) получились разные корни. SQRT(аргумент) – извлечение квадратного корня.
Рассмотрим пример задачи с неполным ветвлением.
Задача № 7 (для самостоятельной записи блок-схемы и программы)
Даны (вводятся с клавиатуры) три числа (углы треугольника в градусах). Составить программу, которая определяет, существует ли треугольник с такими углами. Вывести на экран монитора соответствующее сообщение.
Задача № 8 (полное ветвление), для самостоятельной записи программы по готовой блок-схеме.
Даны три произвольных числа a, b, c. Вычислить и вывести на экран значения аргумента х и функции y:
X = a + b – c
ì x2 , если х < -3
y = í sinx, если -3=< x <= 3
î x - 10, если х >3
Блок-схема алгоритма:
Х = а + b - c
Нет да
Y = x2
Нет да
Примечание. При проверке программы задать 3 – 5 вариантов исходных данных (значений a, b, c): 1) чтобы Х получилось меньше -3; 2) X - в диапазоне от -3 до +3; 3) X >3; 4) X = 3; 5) X = -3.
В качестве условия в операторе ветвления может быть задано логическое выражение – совокупность операций отношения (<, <=, >, >=, =, <>) и базовых логических операций. До сих пор в приведенных примерах использовались только операции отношения. Операции отношения, логические операции и логические выражения могут вырабатывать только два значения: True (истина) или False (ложь).Значениеистина (True)означает, чтоусловие выполнено, ложь (False) – условие не выполнено.