Условный оператор
Более общее требование к ЯП: выполнение команд в зависимости от свойств данных в Си:
- Свойства данных — это какое-то целочисленное выражение
- Общий вид:
if (выражение) опреатор_на_случай_ненулевого выражения else оператор_на_случай_нулевого выражния
- например:
scanf("%d", &i); if (i) print("Не 0\n"); else printf("Ноль\n");
Часть else необязательна.
Выражения специально для if: сравнения
A == B, A != B, A < B, A <= B, A > B, A >= B
- Результат этих выражений: 1 (истина) и 0 (ложь)
- Например:
Составной оператор — ограничивается скобочками «{» и «}»
- Логические выражения
- Работают с целочисленными значениями 0 (ложь) и «любой не 0» (истина)
- Результат — 0 (ложь) или 1 (истина)
Конъюнкция && (И):
A && B
B
A
0
Не 0
0
0
0
Не 0
0
1
Дизъюнкция || (ИЛИ):
A||B
B
A
0
Не 0
0
0
1
Не 0
1
1
Отрицание ! (НЕ):
~0 == 1
~«не 0» == 0
- Приоритет — ниже, чем у операций сравнения:
a>0 && b>0
- Пример: неравенство треугольника
Д/З
ВНИМАНИЕ! В этом переводе учебника операторы называются инструкциями, а выражения операторами ☹
Прочитать про условные операторы в учебнике
Прочитать про сравнение и логические операции в учебнике
Ввести действительные числа a, b, c. Проверить, выполняются ли неравенства a < b < c.
Выяснить, что именно вычисляется в Си выражением «a < b < c»
- (да, немного пописать) Ввести действительные положительные числа a, b, c, x, y. Выяснить, пройдет ли кирпич с ребрами a, b, c в прямоугольное отверстие со сторонами x, y. Просовывать кирпич в отверстие разрешается только так, чтобы каждое из его ребер было параллельно или перпендикулярно каждой из сторон отверстия.
- Ввести x и y. Проверить, принадлежит ли точка заштрихованной области на картинке: