ЛАБОРАТОРНА РОБОТА №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. |