Вы находитесь на странице: 1из 40

Кафедра менеджмента технологий

Основы алгоритмизации и
программирования на
языках высокого уровня

Холодова Елена Петровна


+375 29 681 63 09
alena-kholadava@yandex.ru
Минск, 2017 1
ТЕМА: Управляющие инструкции
языка С++

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

Институт бизнеса и менеджмента технологий БГУ


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

В С++ два условных оператора:

 if
 switch

Институт бизнеса и менеджмента технологий БГУ


Оператор if

Оператор if используется для


разветвления процесса вычислений и
выполнения разных блоков операторов в
зависимости от того, выполняется ли
некое условие.

Институт бизнеса и менеджмента технологий БГУ


После выполнения условного оператора управление
передается оператору, следующему после него.

Рис. Структурная схема, иллюстрирующая работу условного оператора

Институт бизнеса и менеджмента технологий БГУ


Общий синтаксис оператора следующий:

if ( условие )
{
оператор 1;
….
оператор N1;
}
else
{
оператор 1;
….
оператор N2;
}
Институт бизнеса и менеджмента технологий БГУ
Условие указывается в круглых
скобках после ключевого слова if.

Если условие, указанное после


ключевого слова if, верно, выполняется
блок операторов {операторы 1…N1}.

В противном случае выполняется


блок операторов {операторы1…N2},
указанных после ключевого слова else.

Институт бизнеса и менеджмента технологий БГУ


Институт бизнеса и менеджмента технологий БГУ
Может быть использован упрощенный синтаксис:
if ( условие ) оператор 1;
else оператор 2;

Институт бизнеса и менеджмента технологий БГУ


Допускается использование упрощенного варианта
условного оператора, в котором отсутствует ветка else.

Рис. Структурная схема работы упрощенного варианта


условного
Институт оператора.
бизнеса и менеджмента технологий БГУ
Синтаксис вызова условного оператора в
такой форме имеет вид

if (условие) {операторы};
В этом случае при выполнении условия
управление передается блоку операторов,
указанному после ключевого слова if.
Если условие не выполнено,
выполняются операторы, размещенные
после условного.
Институт бизнеса и менеджмента технологий БГУ
Институт бизнеса и менеджмента технологий БГУ
Нередко на
практике
используют
комбинацию из
нескольких
вложенных
условных
операторов.

Рис. Структурная схема работы блока из условных операторов.


Институт бизнеса и менеджмента технологий БГУ
Синтаксис вложенных условных операторов

Институт бизнеса и менеджмента технологий БГУ


Приведем пример следующего вычисления
процента скидки:

Skidka=
5%, если Summa >= 1000000
3%, если 400000≤ Summa < 1000000
1%, если Summa < 400000

Институт бизнеса и менеджмента технологий БГУ


Институт бизнеса и менеджмента технологий БГУ
/* Если блок if содержит только
один оператор, то блок кода
можно не использовать */

Институт бизнеса и менеджмента технологий БГУ


 Задание  2
 x  x , если x  0
Имеется программа, в 
которой вычисляется 4
Y   , если 0  x  1
значение Y в зависимости от x
переменной х с  2  x, если x  0
использованием вложенных 

операторов if.

Перепишите код с использованием


синтаксиса if…else if

Институт бизнеса и менеджмента технологий БГУ


Институт бизнеса и менеджмента технологий БГУ
Если требуется проверить несколько условий, их
объединяют знаками логических операций.
Например, выражение в примере будет истинно в
том случае, если выполнится одновременно условие
a<b и одно из условий в скобках.
Если опустить внутренние скобки, будет выполнено
сначала логическое И, а потом — ИЛИ.

if (a<b && (a>d || a==0))


b++;
else
{b *= a;
a = 0;}
Институт бизнеса и менеджмента технологий БГУ
if (a++) b++;
Пример напоминает о том, что хотя в качестве
выражений в операторе if чаще всего
используются операции отношения, это не
обязательно.

Институт бизнеса и менеджмента технологий БГУ


Институт бизнеса и менеджмента технологий БГУ
Институт бизнеса и менеджмента технологий БГУ
if (b>a) max = b; else max = a;
Подобные конструкции нагляднее
записывать в виде условной операции :

max = (b > а) ? b : а;

Институт бизнеса и менеджмента технологий БГУ


Оператор switch

Оператор switch (переключатель)


предназначен для разветвления
процесса вычислений па несколько
направлений. Его используют вместо
нескольких вложенных условных
операторов if в тех случаях, когда
проверяется больше одного условия.

Институт бизнеса и менеджмента технологий БГУ


Синтаксис оператора switch() следующий:
В круглых скобках
после ключевого слова
switch указывается
выражение, значение
которого проверяется.
Результатом
выражения может быть
целое число или символ.
Значение,
возвращаемое
выражением,
сравнивается со
значениями, указанными
после ключевых слов case.
Институт бизнеса и менеджмента технологий БГУ
Если имеет место
совпадение, выполняется
соответствующий блок
операторов.
Операторы
выполняются до конца
оператора switch() или
пока не встретится
инструкция break (в
общем случае инструкция
break используется для
выхода из оператора
цикла и перехода к
следующему оператору).
Институт бизнеса и менеджмента технологий БГУ
Если совпадения нет,
выполняются операторы
после инструкции default.

Институт бизнеса и менеджмента технологий БГУ


На рисунке представлена схема
работы оператора выбора
switch

Представленная схема
приведена в
предположении, что в
каждом case-блоке
использована инструкция
break, а в конце switch-
оператора использована
инструкция default.
Эта инструкция не является
обязательной, также как и
инструкции break.

Институт бизнеса и менеджмента технологий БГУ


Пример программного кода с В программе с клавиатуры
использованием switch-оператора.
вводится значение для
целочисленной переменной n. Далее
в switch-операторе проверяется
значение n. Выделяются три
значения этой переменной (1,2 и 3
соответственно), а также
предусмотрен default-блок для
обработки ситуации, не
предусмотренной в case-блоках.
Результат выполнения
программы: в зависимости от
введенного числа выводится
сообщение соответствующего
содержания. Если вводится целое
число от 1 до 3 включительно,
выводится сообщение First case-block,
Second case-block и Third case-block
соответственно. В противном случае
(т.е. когда введенное пользователем число не равно 1, 2 или 3)
выводится сообщение By default.
Институт бизнеса и менеджмента технологий БГУ
Институт бизнеса и менеджмента технологий БГУ
Институт бизнеса и менеджмента технологий БГУ
Особенность механизма выхода из оператора switch (имеется в виду выход с
помощью инструкции break) позволяет объединять несколько case-условий.
Пример.

Институт бизнеса и менеджмента технологий БГУ


В процессе выполнения программы пользователю
предлагается ввести целое число в диапазоне от 0 до
10. Число считывается с клавиатуры и выполняется
проверка на предмет того, является ли оно нулем и
принадлежит ли последовательности чисел
Фибоначчи.
Примечание. Последовательность Фибоначчи
получается так: первые два числа последовательности
равны 1, а каждое последующее равно сумме двух
предыдущих. Начальные числа в последовательности
Фибоначчи, таким образом, равны 1,1,2, 3, 5 и 8 (это те
числа, что попадают в диапазон от 0 до 10).

Институт бизнеса и менеджмента технологий БГУ


После ввода числа с клавиатуры оно записывается в
целочисленную переменную n. Значение переменной
проверяется в операторе switch(). Первый case-блок
оператора соответствует ситуации, когда пользователем введено
нулевое значение. Если значение переменной n равно 0, на
экран выводится сообщение Это ноль!. Благодаря инструкции
break после оператора вывода указанного сообщения, работа
switch-оператора на этом завершится.
Если же было введено ненулевое значение, первый case-
блок не выполняется. Вместо этого будет продолжена проверка
значения переменной n на предмет совпадения с одним из
значений 1, 2, 3, 5 или 8.
case-блоки для значений 1, 2, 3 и 5 являются пустыми, т.е.
после инструкции case с указанием соответствующего
значения сразу следует следующая case-инструкция.

Институт бизнеса и менеджмента технологий БГУ


Поскольку в switch-операторе команды выполняются до первой инструкции
break (или до окончания всего оператора), такой синтаксис приводит к тому, что для
значений 1, 2, 3, 5 и 8 переменной n выполняется одна и та же последовательность
команд - это те команды, что указаны в case-блоке для значения переменной n
равного 8: появится сообщение Это число Фибоначчи! И работа switch-оператора
будет завершена (из-за инструкции break после команды соut<<"Это число
Фибоначчи").
Например, если пользователь ввел число 1, должны выполняться все команды
после инструкции case 1: в switch-операторе. Команды выполняются до первой
инструкции break (или, если не встретится ни одна инструкция break, до конца
всего switch-оператора).
Поскольку первая инструкция break
встречается в блоке case 8 :, будут
выполнены все команды, находящиеся между
инструкцией case 1: и этой инструкцией
break.
Наконец, если пользователь ввел
ненулевое число, не совпадающее с числами 1,
2, 3, 5 и 8, выполняется блок команд,
размещенных после инструкции default. В
данном случае там всего одна команда, которой
на экран выводится сообщение Это не число
Фибоначчи!. Институт бизнеса и менеджмента технологий БГУ
Задания для самостоятельного выполнения

Задание 1. Следующая программа имитирует


открытие вкладного счета в банке. У пользователя
запрашивается сумма и рассчитывается сумма
процентов.
 Исправьте программу так, чтобы
пользователю выдавалось сообщение в случае,
если сумма меньше некоторой величины
min_vznos. Переменную min_vznos определить в
программе как константу.

Институт бизнеса и менеджмента технологий БГУ


Институт бизнеса и менеджмента технологий БГУ
Задание 2. Следующая программа имитирует
работу клиента с банковским счетом.
Пользователю предлагается с помощью
простейшего меню выбрать дальнейшие действия.
 Дополните программу кодом, который бы
реализовал эти действия. Измените имена
переменных.

Институт бизнеса и менеджмента технологий БГУ


Институт бизнеса и менеджмента технологий БГУ