ЛАБОРАТОРНА РОБОТА №5-6
СКЛАДАННЯ ТА ВІДЛАГОДЖЕННЯ ПРОГРАМ РОЗГАЛУЖЕНИХ ПРОЦЕСІВ З ВИКОРИСТАННЯМ ВКЛАДЕНИХ IF
Мета: придбати практичні навички з складання та відлагодження програм
розгалужених алгоритмів.
Теоретичні відомості:
Условный оператор if
Условный оператор if используется для разветвления процесса вычислений на два направления. Формат оператора:
if (выражение) оператор_1; [else оператор_2;]
Сначала вычисляется выражение, которое может иметь арифметический тип или тип указателя. Если оно не равно нулю (имеет значение true), выполняется первый оператор, иначе — второй. После этого управление передается па оператор, следующий за условным.
Одна из ветвей может отсутствовать, логичнее опускать вторую ветвь вместе с ключевым словом else. Если в какой-либо ветви требуется выполнить несколько операторов, их необходимо заключить в блок, иначе компилятор не сможет понять, где заканчивается ветвление. Блок может содержать любые операторы, в том числе описания и другие условные операторы (но не может состоять из одних описаний). Необходимо учитывать, что переменная, описанная в блоке, вне блока не существует.
Примеры:
if (а<0) b = 1;
if (a<b && (a>d || a==0)) b++; else {b *=; a = 0;}
if (a<b) {if (a<c) m = a; else m = c;} else {if (b<c) m = b; else m = c;}
if (a++) b++;
if (b>a) max = b; else max = a;
В примере 1 отсутствует ветвь el se. Подобная конструкция называется «пропуск оператора», поскольку присваивание либо выполняется, либо пропускается в зависимости от выполнения условия.
Если требуется проверить несколько условий, их объединяют знаками логических операций. Например, выражение в примере 2 будет истинно в том случае, если выполнится одновременно условие а<Ь и одно из условий в скобках. Если опустить внутренние скобки, будет выполнено сначала логическое И, а потом -ИЛИ.
Оператор в примере 3 вычисляет наименьшее значение из трех переменных. Фигурные скобки в данном случае не обязательны, так как компилятор относит часть el se к ближайшему if.
Пример 4 напоминает о том, что хотя в качестве выражений в операторе i f чаще всего используются операции отношения, это не обязательно.
Конструкции, подобные оператору в примере 5, проще и нагляднее записывать в виде условной операции (в данном случае: max = (b > а)? b: а;).
Если какая-либо переменная используется только внутри условного оператора, рекомендуется объявить ее внутри скобок, например:
If (int i = fun(t)) a -= i; else a += i:
Объявление переменной в тот момент, когда она требуется, то есть когда ей необходимо присвоить значение, является признаком хорошего стиля и позволяет избежать случайного использования переменной до ее инициализации. Объявлять внутри оператора i f можно только одну переменную. Область ее видимости начинается в точке объявления и включает обе ветви оператора.
Завдання: Написати програму розгалуженого алгоритму, використовуючи вкладені іf, на С(С++).
1.
| 2.
|
3.
| 4.
|
5.
| 6.
|
7.
| 8.
|
9.
| 10.
|
11.
| 12.
|
13.
| 14.
|
15.
| 16.
|
17.
| 18.
|
19.
| 20.
|
21.
| 22.
|
23.
| 24.
|
25.
| 26.
|
27.
| 28.
|
29.
| 30.
|
31.
| 32.
|
33.
| 34.
|






