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

4Алгоритмы и программы ветвящейся структуры. Условный оператор if. Переключатель switch

4.1Алгоритмы и программы ветвящейся структуры

Очень часто при выполнении программы необходимо выполнять те или иные операторы, в зависимости от анализа каких-либо данных. Алгоритмы, позволяющие производить анализ данных и выполнять нужные, в сложившихся условиях операторы называются ветвящимися или алгоритмами принятия решения.

Для графического изображения ветвления используется блоки, приведённые на рис. 4.1.

В ромбе, как правило, записывается условие, на основе которого производится выбор ветви, в которой будет выполняться оператор. В качестве условия могут использоваться операции сравнения, логические операции, арифметические операции, переменные скалярных типов, указатели. Выражение может иметь арифметический тип. Если оно не равно 0 (для указателя null), то условие считается истинным. Если равно 0 (для указателя null), то условие считается ложным.

При истинности условия выполняется оператор в ветви с надписью «да». «Оператор 2» будет выполнен, если условие примет ложное значение. На рис. 4.1 (б) при ложности условия не будет выполнен ни один оператор, такой блок часто называют «обход».

4.1.1Условный оператор if

Для записи на языке программирования СИ/СИ++ ветвящихся вычислительных процессов используется условный оператор:

If (выражение) оператор1;

else оператор2;

где if, else – служебные слова; <выражение > – логическое, арифметическое выражение или указатель.

Эта форма условного оператора приемлема для алгоритма изображённого на рис. 4.1 (а). При истинности условия, выполняется <оператор_1>, в противном случае – <оператор_2>, следующий за служебным словом else.

Допускается использовать сокращённую форму записи условного оператора:

if (выражение) <оператор>;

Данная форма приемлема для алгоритма изображённого на рис. 4.1 (б). Оператор будет выполнен при истинном выражении, в противном случае управление передаётся на следующий по порядку оператор.

Допускается использование вложенных условных операторов. При этом в качестве операторов записывается очередной условный оператор. Степень вложенности неограниченна.

При необходимости выполнить более одного оператора при истинности или ложности выражения необходимо использовать составной оператор. Составной оператор начинается и заканчивается, как и тело функции, фигурными скобками, между ними записываются операторы, которые необходимо выполнить. Количество операторов, объединяемых составным оператором неограниченно.

{

<Оператор_1>;

<Оператор_2>;

<Оператор_3>;

<Оператор_N>;

}

Если в составном операторе присутствует описание переменной, то его называют блоком.

4.1.2Логические операции

Как уже было отмечено выше, в качестве выражения могут использоваться логические операции. Помимо операций отношений в СИ существует три вида логических операций.

Значения логического выражения при использовании бинарной логической операции конъюнкции (&&) приведены в таблице 6.

Таблица 6 – Логическая операция конъюнкция

Значение операндов

Результат операции

A

B

A &&B

1

1

1

1

0

0

0

1

0

0

0

0

Значения логического выражения при использовании бинарной логической операции дизъюнкции (||) приведены в таблице 7.

Таблица 7 – Логическая операция дизъюнкция

Значение операндов

Результат операции

A

B

A or B

1

1

1

1

0

1

0

1

1

0

0

0

Унарная логическая операция отрицания (!) инвертирующая (изменяющая на противоположное) значение операнда приведена в таблице 8.

Таблица 8 – Логическая операция отрицания

Значение операндов

Результат операции

A

! A

1

0

0

1

Например:

(A<=B)&&(B>C)|| (A!=D). При значении переменных A=10, B=15, C=20, D=25 значение всего выражения равно 1. (A<=B) – истинно, (B>C) – ложно, (A<=B)&&(B>C) – ложно, (A!=D) – истинно.

! (A<=B)||(B>C). При значении переменных A=10, B=15, C=20 значение всего выражения равно 0.

(A<=B) || !(B>C). При значении переменных A=10, B=15, C=20 значение всего выражения равно 1.