
- •2.5.2.3. Средства программирования разветвляющихся структур
- •2.5.1.2. Средства программирования алгоритмов линейной структуры
- •Input [;] [подсказка { ; | , }] список_переменных
- •Input “Введите коэффициенты уравнения a, b, c “, a#, b#, c#
- •Input ;“Радиус круга”; r!
- •2.5.1.3. Средства программирования разветвляющихся структур
- •If выражение then оператор(ы) [else оператор(ы)]
- •2.5.1.4. Средства программирования регулярных циклических структур
- •2.5.1.5. Средства программирования итеративных циклических структур
- •2.5.1.6. Средства описания и работы с одномерными массивами данных
- •2.5.1.7. Средства описания и работы с двумерными массивами данных
- •2.5.1.8. Строковые данные и операции над строками
- •Val(строка)
- •2.5.1.9. Средства процедурного программирования в среде qb
- •Dim shared переменная [as тип][, переменная [as тип]]...
- •2.5.2.2. Средства программирования алгоритмов линейной структуры и функций
- •2.5.2.3. Средства программирования разветвляющихся структур
- •If (выражение) оператор_1; [ else оператор_2;]
- •2.5.2.4. Средства программирования регулярных циклических структур
- •2.5.2.5. Средства программирования итеративных циклических структур
- •2.5.2.6. Средства описания и работы с одномерными массивами данных
- •Int array[4]; /* array - массив из 4 элементов типа int */
- •2.5.2.7. Средства описания и работы с двумерными массивами данных
- •Int w[2][3]; /* двумерный массив из двух строк и трех столбцов
- •2.5.2.8. Строковые данные и операции над строками
- •2.5.3. Контрольные вопросы по теме «Основные конструкции языка программирования qb» (вставить из лаб.Работ!)
- •Тема 2.5. Основные конструкции языков программирования Страница 274
2.5.2.3. Средства программирования разветвляющихся структур
На практике редко встречаются задачи, решение которых представляется только в виде алгоритмов линейной структуры. Как правило, приходится решать задачи, в которых в зависимости от выполнения некоторого логического условия необходимо организовать вычисления по одной из нескольких ветвей алгоритма. Алгоритмы решения таких задач строятся с использованием разветвляющихся алгоритмических структур. В результате проверки логического выражения (“Истина” или “Ложь”) управление передается ветке “Да” или “Нет”.
В С++ не реализован логический тип данных, но имеется большой набор логических операций. В этих операциях вместо логических величин можно использовать любую арифметическую величину или указатель. При этом любое значение отличное от нуля считается истиной, а нулевое значение ложью.
Логические выражения, в отличие от арифметических, содержат операции отношения (=, <, >, <=, >=, <>), а также еще пять логических операций, записанных далее в порядке убывания приоритета: отрицание - !, логическое умножение (логическое “И”) - &&, логическое сложение (логическое “ИЛИ”) - ||, исключающее “ИЛИ” - ^, эквивалентность - EQV.
Результатом выполнения логического выражения может быть “Истина” (не 0) или “Ложь” (0). Например, NOT 7<9 всегда принимает значение “Ложь”, что соответствует значению 0, а 4>3 AND 7<9 принимает значение “Истина”, что соответствует -1.
В табл. 2.5.2-8 приведено описание логических операций. Здесь T (true) - “Истина”, а F (false) “Ложь”.
К логическим операциям относятся операция логического И (&&) и операция логического ИЛИ. Операнды логических выражений вычисляются слева направо. Логические операции оценивают каждый операнд с точки зрения его эквивалентности нулю. Результатом логической операции является 0 или 1, тип результата int.
Операция логического И (&&) вырабатывает значение 1, если оба операнда имеют нулевые значения. Если один из операндов равен 0, то результат также равен 0. Если значение первого операнда равно 0, то второй операнд не вычисляется.
Операция логического ИЛИ (||) выполняет над операндами операцию включающего ИЛИ. Она вырабатывает значение 0, если оба операнда имеют значение 0, если какой-либо из операндов имеет ненулевое значение, то результат операции равен 1. Если первый операнд имеет ненулевое значение, то второй операнд не вычисляется.
Таблица 2.5.2-8
Значения операндов |
! x |
x&&y |
x || y |
x ^ y |
х ==y |
|
X |
Y |
|
|
|
|
|
T |
T |
F |
T |
T |
F |
T |
T |
F |
F |
F |
T |
T |
F |
F |
T |
T |
F |
T |
T |
F |
F |
F |
T |
F |
F |
F |
T |
Разветвляющиеся алгоритмические структуры в языках программирования реализуются операторами условного перехода. В C++ для программирования условных переходов используются три типа операторов: if,switch и break.
Оператор ifпозволяет направить вычислительный процесс на два варианта в зависимости от значения некоторого условия. Оператор ifимеет следующийформат: