Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
76
Добавлен:
27.04.2015
Размер:
290.5 Кб
Скачать

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имеет следующийформат:

Соседние файлы в папке 2 Уровень повыше. Теоретика