2.
Алгоритмы с разветвляющейся структурой применяются для составления программ, когда в них возникает необходимость проверить условия или (реже) неоднократно повторить однородные действия.
Оператор передачи управления (безусловного перехода) − gotOn
Оператор даёт возможность перевести процесс выполнения программы в любую строку программы.
|
Формат конструкции: … GOTO метка … |
Блок-схема конструкции:
|
В программе одному оператору GOTO всегда соответствуют две одинаковые метки. Одна расположена справа от оператора, вторая – первым элементом строки, в которую передаётся управление. Допускается передача управления в одну и ту же строку программы несколькими операторами GOTO по одной и той же метке.
Метки могут быть цифровыми и текстовыми. Текстовая метка обязательно начинается с буквы и в целевой строке заканчивается двоеточием.
На блок-схемах GOTO обозначается окружностью с номером блока, которому передаётся управление.
Оператор используется в основном совместно с другими операторами для создания циклов (с операторами IF …) и для организации автоматического реагирования программы на ошибки (с оператором ON ERROR).
В QBasic широко используется группа операторов, в имени которых обязательно присутствует слово IF – если со знаком сравнения.
Конструкция if … then («если – то»)
Позволяет в зависимости от проверки условия выполнять или не выполнять какое-либо действие.
|
Формат конструкции: … IF условие THEN действие … |
Блок-схема конструкции:
|
Условием всех конструкций IF является выражение со знаком сравнения. Оно может иметь только два значения TRUE (истина) – при котором условие выполняется и FALSE (ложь) – при котором условие не выполняется. В условиях используются знаки сравнения. Сравниваться могут не только числа и переменные, но и математические выражения.
Условие может задаваться довольно сложным образом и состоять из нескольких блоков. Для создания таких сложных условий используют специальные операторы AND, OR, NOT, IMP, XOR, EQV.
Особенность конструкции IF … THEN в том, что в зависимости от результата проверки условия Действие может не выполняться, конструкция заканчивает работу и передаёт управление.
Код простейшей программы:
Задание: Рассчитать значение математического выражения x=sin 35 + 2,25 + a. Если переменная x будет иметь значение меньше нуля, умножить её на (-1). Вывести результат (положительное значение переменной x).
|
|
CLS INPUT “Ввести значение переменной а”; a X = SIN(35) + 2.25 + a IF X<0 THEN X = X * (-1) PRINT “X=”; X END |
Конструкция IF…THEN…ELSE («если − то − иначе»)
Позволяет выполнять одно из двух действий в зависимости от выполнения условия.
|
Формат конструкции: … IF условие THEN действие 1 ELSE действие 2 … |
Блок-схема конструкции:
|
Особенность конструкции в том, что Действие 1 и действие 2 не могут выполняться последовательно. Выполняется одно из действий, в зависимости от выполнения или невыполнения условия.
Код простейшей программы:
Задание: Ввести X. Если его значение чётное или равно 0, то прибавить 2, если нечетное, то прибавить 1. Вывести результат.
|
|
CLS INPUT «Введите значение x»; x IF X/2 = X\2 THEN X = X+2 ELSE X = X+1 PRINT x END |
Для двух переменных вопрос нахождения максимума (минимума) с помощью данной конструкции решается в одну строку.
…
IF A > B THEN PRINT “A > B” ELSE PRINT “A < B”
…
Для обработки нескольких переменных используется другой подход. Вводится дополнительная переменная – эталон.
Задание: Определить, наименьшее значение одной из нескольких переменных.
Программный код:
INPUT “Введите значения переменных A1, A2, A3, A4”; A1, A2, A3, A4
IF A1 < A2 THEN MIN = A1 ELSE MIN = A2
IF A3 < MIN THEN MIN A3
IF A4 < MIN THEN MIN A4
PRINT “Минимальное значение”; MIN
В данном случае введена переменная – эталон с именем MIN
Конструкция IF…THEN END IF (“если − то” многострочная)
Рассмотренные конструкции оператора IF требуют их написания в одной строке кода программы. Но если после проверки условия необходимо выполнить несколько действий, писать их одной строкой становится затруднительно.
Выход из этой ситуации предлагает конструкция IF…THEN END IF
|
Формат конструкции: … IF условие THEN действие 1 действие 2 … действие n END IF … |
Блок-схема конструкции:
|
Количество операторов, расположенных в теле конструкции ограничивается только размерами файла, занимаемого программой. Элементы оператора IF и END IF должны быть первыми элементами в своих строках кода программы. После THEN все операторы тела конструкции начинают записывать с новой строки.
Задание: Ввести значение X, извлечь из него квадратный корень и вывести результат. Если значение X меньше нуля, то сообщить «Введено отрицательное значение X» и умножить X на -1. Вывести значение подкоренного выражения.
|
|
CLS INPUT “Введите значение x”; x IF x < 0 THEN PRINT “Введено отриц. Значение X” X = X * (-1) END IF PRINT “Корень квадратный из X”; SQR(x) END |







