"Информатика (в 2 частях)", Павлов Д.И., Полежаева О.А., Коробкова Л.Н. и др./ Под ред. Горячева А.В.
Условие в алгоритме помогает выбрать дальнейшие действия в зависимости от результата проверки. Оно сравнивает числа, значения переменных или тексты и принимает одно из двух значений: истина или ложь. На основе условия строится ветвление: программа выполняет одну команду, другую или продолжает работу без действия. Простые условия можно объединять операциями «и», «или» и «не», чтобы описывать более сложные ситуации.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Условие — утверждение или вопрос, на который можно ответить «да» или «нет», чтобы выбрать дальнейшие действия. Например, «число больше нуля?» имеет два возможных ответа. Условие нужно, чтобы алгоритм мог реагировать на разные ситуации, а не выполнять команды всегда одинаково.
Логическое выражение — запись условия с использованием сравнений, переменных, чисел и логических операций. Например, x > 0 или a = b. Такая запись превращает понятную проверку в форму, которую может обработать программа.
Истинность и ложность — два возможных значения условия, определяющие, будет ли выполняться связанная с ним команда. Истина означает, что утверждение верно, а ложь — что оно неверно. Эти значения нужны алгоритму для выбора дальнейшего шага.
Ветвление — конструкция алгоритма, в которой дальнейшие действия выбираются в зависимости от результата проверки условия. Одна ветвь может выполняться при истине, а другая — при лжи. Благодаря ветвлению программа учитывает введённые данные и действия пользователя.
Сравнение превращается в условие потому, что у него есть однозначный результат. Например, при a = 7 выражение a > 5 истинно, а a < 5 ложно. С текстами работает тот же принцип: можно проверить, совпадают ли две строки или выбран ли нужный вариант. Поэтому программа получает не расплывчатый ответ, а значение, по которому можно принять решение.
Команда после условия выполняется только при нужном результате проверки, потому что именно так задаётся связь между проверкой и действием. Если условие истинно, алгоритм разрешает выполнить связанную команду. Если результат другой, команда пропускается или выбирается альтернативная ветвь. Без такой связи проверка не влияла бы на ход алгоритма.
Неполное ветвление используют, когда действие нужно лишь в одной ситуации. Сначала проверяется условие, затем при результате «истина» выполняется команда, например вывод сообщения «Положительное число». При лжи специальное действие не задаётся, поэтому алгоритм просто переходит к следующему шагу. Такая форма удобна, когда отсутствие действия и есть правильный ответ.
Полное ветвление необходимо, если программа должна отреагировать на оба результата. При истине выполняются команды первой ветви, а при лжи — команды второй. Например, после проверки чётности можно вывести «Чётное» или «Нечётное». Так алгоритм не оставляет без ответа ни один из возможных случаев.
Составные условия объединяют несколько простых проверок, потому что одной проверки бывает недостаточно. «И» требует истинности всех частей, «или» — хотя бы одной, а «не» меняет значение условия на противоположное. Скобки помогают явно показать, какие части нужно объединить сначала. Например, для диапазона от 10 до 20 включительно проверяют x ≥ 10 и x ≤ 20.
Таблица помогает выбрать конструкцию по числу возможных ситуаций и требуемому результату. Сначала определите, нужно ли действие только при истине или для обоих ответов. Затем проверьте, не состоит ли условие из нескольких связанных сравнений.
| Конструкция | Когда выполняется действие | Что происходит при ложном условии | Пример применения |
|---|---|---|---|
| Неполное ветвление | Условие истинно | Ничего не выполняется или алгоритм продолжается дальше | Вывести сообщение, если число положительное |
| Полное ветвление | Условие истинно — выполняется первая ветвь; ложно — вторая | Выполняется вторая ветвь | Сообщить, является ли число чётным или нечётным |
| Составное условие с «и» | Истинны оба простых условия | Всё составное условие становится ложным | Проверить, что число находится в заданном диапазоне |
| Составное условие с «или» | Истинно хотя бы одно из условий | Действие не выполняется | Проверить, является ли число нулём или отрицательным |
| Отрицание «не» | Исходное условие ложно | При истинном исходном условии результат отрицания ложен | Проверить, что объект не выбран |
Нужно вывести сообщение только тогда, когда введённое число больше нуля. Это один особый случай, поэтому достаточно неполного ветвления. При нуле и отрицательном числе программа ничего не выводит.
Ответ: алгоритм проверяет x > 0 и выводит сообщение только при истинном результате.
Нужно определить, какое из чисел больше, либо сообщить об их равенстве. Одной проверки недостаточно: после проверки a > b останутся случаи, когда первое число не больше второго. Поэтому нужно предусмотреть последовательную проверку и отдельный случай равенства.
Ответ: три возможных результата покрыты проверками a > b, a < b и оставшимся случаем a = b.
Требуется проверить, попадает ли число x в отрезок от 10 до 20 включительно. Слово «включительно» означает, что числа 10 и 20 тоже подходят. Значит, нужны два сравнения с нестрогими знаками и операция «и».
Ответ: число принадлежит отрезку тогда и только тогда, когда одновременно выполняются оба сравнения.
Путать условие с выполняемым действием — значит принимать проверку за команду. Так происходит, когда ученик видит фразу «если число больше нуля» и забывает, что это ещё не вывод сообщения. Проверьте себя: отдельно назовите вопрос-проверку и отдельно действие после ответа.
Использовать присваивание вместо сравнения опасно, потому что эти знаки имеют разный смысл. Присваивание записывает значение в переменную, а сравнение проверяет отношение двух значений. Проверьте запись по вопросу: изменяется ли переменная или выясняется, равны ли значения.
Забывать одну ветвь полной конструкции часто заставляет привычка описывать только ожидаемый случай. Но при другом результате алгоритм тоже должен выполнить предусмотренное действие. Проверьте себя, задав условию и истинное, и ложное значение.
Неправильные скобки и приоритет операций меняют смысл составного условия. Ученик может объединить не те части или сначала выполнить «или», хотя по смыслу требовалось другое. Разбейте выражение на простые проверки и расставьте скобки так, чтобы порядок был очевиден.
До изучения условий нужно уметь записывать алгоритмы, работать с переменными и сравнивать числа. Эти навыки позволяют правильно сформулировать проверку и использовать её результат.
Условия встречаются в циклах с проверкой, компьютерных играх, обработке данных и программах, реагирующих на действия пользователя. Они помогают повторять команды до нужного результата, выбирать уровень игры или проверять введённые данные.
Чем условие отличается от команды?
Условие только проверяет, выполняется ли некоторое утверждение, и даёт результат «истина» или «ложь». Команда выполняет действие: например, выводит сообщение или изменяет значение переменной.
Что произойдёт, если условие окажется ложным?
При неполном ветвлении команда, связанная с условием, не выполнится, а алгоритм продолжится дальше. При полном ветвлении будет выполнена другая ветвь, предназначенная для ложного результата.
Когда нужно использовать полное, а когда неполное ветвление?
Неполное ветвление подходит, когда действие требуется только при истинном условии. Полное используют, если для истины и лжи нужны разные действия.
Как правильно объединить несколько условий?
Операция «и» нужна, когда должны выполняться все проверки, а «или» — когда достаточно хотя бы одной. Операция «не» меняет результат условия на противоположный; при сложной записи помогают скобки.
Почему результат проверки иногда не совпадает с ожидаемым?
Причиной могут быть неверный знак сравнения, перепутанное присваивание и сравнение или неправильный приоритет логических операций. Проверьте каждое простое условие отдельно, границы диапазона и расстановку скобок.
18. Работаем c условиями