Условный оператор
Условный оператор позволяет алгоритму выбрать одну из команд в зависимости от того, выполнено ли некоторое условие. Благодаря ему последовательный алгоритм превращается в разветвляющийся алгоритм: при разных исходных данных исполнитель может пройти по разным ветвям.
Что такое ветвление
Обычный алгоритм выполняет команды одну за другой. В алгоритме с ветвлением сначала проверяется условие, а затем выбирается дальнейший путь. Условие — это утверждение, которое можно оценить как истинное или ложное. Например: \(x > 5\), \(a = b\), \(n\) делится на \(2\) без остатка.
Условный оператор — конструкция алгоритма, которая проверяет условие и выполняет одну команду или группу команд, если условие истинно. В полной форме при ложном условии выполняется другая ветвь.
В простейшем случае используется неполная форма: «если условие истинно, выполнить команду». Если условие ложно, эта команда пропускается, и алгоритм продолжает работу дальше. В полной форме есть две альтернативы: «если условие, то команда 1, иначе команда 2».
Условие и операции сравнения
Условие строится с помощью операций сравнения. Основные знаки: \(>\) — больше, \(<\) — меньше, \(\ge\) — больше или равно, \(\le\) — меньше или равно, \(=\) — равно, \(\ne\) — не равно. В языках программирования равенство часто записывается как \(==\); один знак \(=\) обычно означает присваивание.
| Запись | Смысл | Пример |
|---|---|---|
| > | левое значение больше правого | \(x > 10\) |
| <= | левое значение меньше или равно правому | \(a \le 7\) |
| == | значения равны | \(n == 0\) |
| != | значения не равны | \(x != y\) |
Результат сравнения — логическое значение: истина или ложь. Например, при \(x=8\) условие \(x>5\) истинно, а условие \(x<5\) ложно. Важно проверять не только знак, но и границу: условие \(x\ge 10\) включает число \(10\), а условие \(x>10\) — нет.
Если условие \(C\) истинно, выполняется только ветвь \(A\); если условие \(C\) ложно, выполняется только ветвь \(B\). После этого алгоритм продолжает работу с первой командой, следующей за условным оператором.
При каком значении \(x\) условие \(x \ge 4\) истинно?
Формы условного оператора
Неполная форма нужна, когда действие требуется только при выполнении условия. В псевдокоде её можно записать так: «если \(C\), то \(A\)». Полная форма используется, когда при любом результате нужно выполнить одну из двух команд: «если \(C\), то \(A\), иначе \(B\)».
если температура < 0 вывести «мороз» иначе вывести «не мороз»
Внутри ветви может находиться несколько команд. Все они должны относиться к этой ветви по отступу или по специальным словам начала и конца. Если команда стоит после условного оператора без отступа, она обычно выполняется независимо от результата проверки.
Сначала подставьте известные значения в условие, затем определите его истинность и только после этого выбирайте ветвь. Не пытайтесь выполнять команды обеих ветвей: при одном запуске выбирается только одна.
Разобранный пример
Исполнитель получает целое число \(n\). Алгоритм изменяет его так: если \(n\) положительно, прибавляет \(3\), иначе умножает на \(2\). Требуется определить результат при \(n=-4\) и при \(n=5\).
Условие имеет вид \(n>0\). Для каждого исходного значения его нужно проверить отдельно.
Ответ: для \(n=-4\) получается \(-8\), а для \(n=5\) — \(8\). Обратите внимание: при \(n=0\) условие \(n>0\) также ложно, поэтому ноль был бы умножен на \(2\). Если по смыслу задачи ноль должен обрабатываться вместе с положительными числами, условие нужно изменить на \(n\ge 0\).
Составные условия
Иногда одной проверки недостаточно. Несколько простых условий объединяют логическими операциями: «И» требует истинности обоих условий, «ИЛИ» — хотя бы одного, «НЕ» меняет значение на противоположное. Например, запись \(x\ge 0\) и \(x\le 10\) означает, что число находится на отрезке от \(0\) до \(10\).
При нескольких проверках можно использовать построение условий ветвления: сначала сформулировать требуемый случай словами, затем перевести его в знаки сравнения и логические операции. Если вариантов больше двух, применяют последовательность условий или вложенное ветвление.
| A | B | A и B | A или B |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 1 |
Для последовательного анализа полезно фиксировать состояние алгоритма: значения переменных до проверки, результат условия и значения после выбранной команды. Условный оператор сам по себе не повторяет действия; для повторения используются условия цикла и циклические конструкции.
1. Путают присваивание и сравнение: \(x=5\) задаёт значение, а \(x==5\) проверяет равенство в языках программирования. 2. Используют \(>\) вместо \(\ge\) или наоборот, теряя граничное значение. 3. Выполняют обе ветви вместо одной. 4. Забывают про случай \(x=0\) или другое особое значение. 5. Неверно расставляют скобки в составном условии и меняют порядок выполнения.
Как решать задания на условный оператор
- Выпишите исходные значения всех переменных.
- Найдите условие, которое проверяется первым.
- Подставьте значения и определите: истина это или ложь.
- Выберите только соответствующую ветвь.
- Выполните её команды по порядку, учитывая изменения переменных.
- Если есть следующая проверка, повторите действия и запишите итоговый ответ.
При работе со схемой алгоритма следуйте стрелкам от блока проверки. Подпись «да» обычно соответствует истинному условию, а «нет» — ложному, но в конкретной схеме нужно читать подписи у стрелок. Подробнее о графическом представлении команд рассказывает страница схема алгоритма. Одна пройденная команда — это отдельный шаг алгоритма.
Быстрая проверка
Главное
- Условный оператор проверяет условие и выбирает одну из ветвей алгоритма.
- В полной форме при истине выполняется первая ветвь, при лжи — ветвь «иначе».
- Для проверки значений используют операции сравнения; особенно внимательно проверяйте границы \(\ge\) и \(\le\).
- При решении задачи подставляйте значения, определяйте истинность условия и выполняйте только выбранную ветвь.
- Составные условия объединяются операциями «И», «ИЛИ» и «НЕ»; сложные варианты могут образовывать вложенное ветвление.