"Информатика", Поляков К.Ю., Еремин Е.А.
Условные вычисления позволяют алгоритму выбирать действие по результату проверки данных. Условие принимает значение «истина» или «ложь», а программа выполняет соответствующую ветвь. Неполное ветвление задаёт действие только для истинного условия, полное — для обоих вариантов. Такие конструкции нужны, когда дальнейшие команды зависят от чисел, их соотношения или выполнения сразу нескольких требований.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Условные вычисления — выполнение разных действий в зависимости от результата проверки условия. Они нужны, когда один и тот же алгоритм должен по-разному работать с разными исходными данными.
Условие — логическое выражение, которое при проверке принимает одно из двух значений: истина или ложь. Например, проверка x > 0 показывает, является ли число положительным, поэтому по её результату можно выбрать дальнейшую команду.
Неполное ветвление — конструкция, в которой действие выполняется только при истинном условии, а при ложном программа переходит дальше. Такой вариант удобен, если для одного из результатов ничего специально делать не нужно.
Полное ветвление — конструкция, в которой для истинного и ложного результатов условия предусмотрены разные действия. Оно позволяет явно обработать оба возможных случая и не оставить часть входных данных без ответа.
При обычном последовательном выполнении команды идут одна за другой, но реальные задачи часто требуют выбора. Например, скидка зависит от суммы покупки, а сообщение о числе — от его знака. Если записать только последовательность команд, программа не сможет выбрать нужный вариант по текущим данным.
Условие записывают с помощью сравнений, например x > 0, a = b или t ≤ 10. Если нужно проверить сразу несколько требований, их соединяют логическими операциями «и», «или», «не», используя скобки для ясного порядка действий. Получившееся выражение вычисляется как единое целое и даёт результат истина или ложь.
В неполном ветвлении сначала проверяется условие. Если результат истинен, выполняется команда внутри ветви, потому что требуемый случай наступил; если результат ложен, эта команда пропускается. Затем алгоритм продолжает выполнение со следующей общей командой.
В полном ветвлении после проверки доступны две альтернативы. При истине выполняется первая ветвь, а при лжи — вторая, поэтому одновременно обе ветви не запускаются. Это предотвращает выполнение действий, относящихся к противоположным случаям.
Алгоритм условных вычислений составляют от задачи к действиям: сначала определяют, какой случай нужно проверить, затем выбирают команды для каждого результата. После этого полезно подставить обычные данные и отдельно проверить границу: равенство, ноль или точное достижение предела. Такая проверка показывает, не перепутан ли знак сравнения и не пропущен ли вариант.
| Свойство | Неполное ветвление | Полное ветвление |
|---|---|---|
| Какие результаты условия обрабатываются | Только истинный результат. | Истинный и ложный результаты. |
| Что происходит при истинном условии | Выполняется команда ветви. | Выполняется первая ветвь. |
| Что происходит при ложном условии | Ветвь пропускается, выполнение продолжается. | Выполняется вторая ветвь. |
| Когда применять | Когда действие нужно только в одном случае. | Когда для каждого результата нужно своё действие. |
| Схема выполнения команд | Проверка → команда при истине → продолжение. | Проверка → одна из двух ветвей → продолжение. |
Сначала найдите в задаче требование, которое зависит от проверки, и выберите соответствующий столбец. Если при одном результате действие отсутствует, достаточно неполного ветвления; если описаны оба результата, нужно полное.
Последняя строка помогает мысленно проследить путь программы. В полном ветвлении важно помнить: после проверки выбирается только один маршрут.
Дано число x. Если x положительно, нужно вывести сообщение «Положительное», а при неположительном значении дополнительного сообщения не требуется.
Ответ: используется неполное ветвление с проверкой x > 0. Значения 3 и 0 показывают соответственно выполнение сообщения и пропуск команды.
Даны числа a и b. Требуется вывести большее число, а если они равны — сообщить о равенстве, поэтому нужно предусмотреть все варианты.
Ответ: требуется полное ветвление с отдельной обработкой равенства. Для неравных чисел выводится большее из них.
Даны три длины a, b и c. Треугольник существует, если каждая сторона меньше суммы двух других, поэтому одного сравнения недостаточно.
Ответ: условие имеет вид a < b + c и b < a + c и c < a + b. Равенство на границе не подходит, поэтому для него выводится отрицательный ответ.
Присваивание путают со сравнением: вместо проверки равенства изменяют значение переменной. Такая ошибка возникает из-за похожих обозначений; проверьте, не меняется ли переменная там, где требуется только вопрос «равны ли значения».
Иногда обрабатывают только истинный результат, хотя задача требует ответа и при лжи. Прочитайте условие и найдите слова «иначе», «если не» или описание второго случая.
В сложном условии части могут быть объединены неверно или без нужных скобок. Разберите выражение на отдельные проверки и отдельно определите результат каждой логической операции.
Пропуск граничных значений приводит к ошибкам при равенстве или точном достижении границы диапазона. Подставьте ноль, равные числа и значения прямо на границе, затем сравните результат с условием задачи.
До условных вычислений нужно знать переменные, логические значения, операции сравнения и логические операции. Без них невозможно записать данные и проверить, выполнено ли требование задачи.
Условные вычисления применяются при создании алгоритмов обработки данных и программ с выбором действий. Они связывают математические проверки с конкретными командами программы.
Эта тема служит основой для сложных условий, вложенных ветвлений и циклов с проверкой условия. Освоив выбор между двумя действиями, легче разбирать более длинные алгоритмы.
Чем условные вычисления отличаются от обычного последовательного выполнения команд?
При последовательном выполнении команды идут одна за другой независимо от данных. При условных вычислениях программа сначала проверяет условие и выбирает действие.
Когда достаточно неполного ветвления, а когда нужно полное?
Неполного ветвления достаточно, если действие требуется только при истинном условии. Полное нужно, когда программа должна по-разному обработать истину и ложь.
Что происходит, если условие оказалось ложным?
В неполном ветвлении команда внутри ветви пропускается, и программа продолжает работу дальше. В полном ветвлении выполняется действие, предусмотренное для ложного результата.
Как объединить несколько проверок в одно условие?
Используют логические операции: «и», «или», «не». Скобки помогают явно задать порядок объединения частей сложного условия.
Почему важно проверять алгоритм на граничных значениях?
На границе диапазона условие часто меняет результат с истины на ложь или наоборот. Такая проверка помогает обнаружить ошибки со знаками сравнения и пропущенными случаями.
§ 26. Условные вычисления