"Информатика (в 2 частях)", Павлов Д.И., Полежаева О.А., Коробкова Л.Н. и др./ Под ред. Горячева А.В.
Алгоритм состоит из действий, которые исполнитель выполняет в определённом порядке. Но во многих задачах нужно сначала выяснить, какая ситуация возникла, и только потом выбрать команду. Для этого используют условие — вопрос с ответом «да» или «нет». Ветвление связывает результат проверки с дальнейшими действиями: при одном ответе выполняется одна команда, при другом — другая. Такие конструкции помогают составлять понятные алгоритмы, блок-схемы и программы.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Действие — это выполняемая команда или шаг алгоритма, который изменяет состояние объекта. Например, «открыть дверь», «увеличить число на 1» или «перейти дорогу». Понятие действия нужно, чтобы разделить решение задачи на отдельные выполнимые шаги.
Условие — утверждение или вопрос, на который можно ответить «да» или «нет». Примеры: «идёт ли дождь?» и «число больше нуля?». Условие нужно для проверки ситуации перед выбором дальнейшей команды.
Ветвление — выполнение разных действий в зависимости от результата проверки условия. При одном ответе выбирается одна последовательность команд, при другом — другая или не выполняется специальная команда. Ветвление позволяет одному алгоритму работать в разных ситуациях.
Алгоритм — последовательность понятных исполнителю действий для решения задачи. В него могут входить обычные команды, условия и ветвления. Это понятие нужно, чтобы описывать решение точно: исполнитель должен понимать каждый шаг и порядок его выполнения.
Алгоритм состоит из отдельных действий, потому что сложную задачу исполнителю легче выполнять по шагам. Каждая команда должна быть достаточно простой и понятной, иначе исполнитель не сможет точно определить, что делать. Порядок действий тоже важен: если сначала убрать со стола предмет, а потом поставить его на стол, результат будет иным, чем при обратном порядке.
Условие разделяет все возможные ситуации на два случая. Ответ «да» означает, что проверяемое утверждение верно, а ответ «нет» — что оно неверно. Такое разделение нужно, потому что одна и та же команда подходит не для каждой ситуации: например, переходить улицу можно при разрешающем сигнале, но нельзя при запрещающем.
Из условия и действий строится ветвление. В простом варианте действие указывают только для ответа «да», а при ответе «нет» алгоритм переходит к следующему шагу. В полном варианте задают две ветви: одну для «да», другую для «нет», поэтому оба результата проверки приводят к понятному продолжению.
Условие проверяют до выполнения зависящего от него действия, потому что только проверка показывает, подходит ли команда. Если сначала перейти улицу, а потом выяснить, горел ли зелёный свет, проверка уже не поможет безопасно выбрать действие. Поэтому в алгоритме сначала располагают вопрос или сравнение, затем — соответствующую ветвь.
Записывать действия и условия можно словами, схемой или командами программы. В любом виде должно быть ясно, что именно проверяется, какой ответ считается положительным и что делать при каждом результате. Неопределённые слова вроде «если погода хорошая» требуют уточнения: лучше написать «если нет дождя и температура выше 0 °C».
В таблице удобно сравнить обычную команду, проверку и разные виды выбора. Сначала найдите, что делает исполнитель, затем определите, есть ли проверка и сколько продолжений у алгоритма. Такая схема помогает заметить пропущенную ветвь или перепутанный порядок шагов.
| Элемент алгоритма | Что проверяется или выполняется | Результат | Пример формулировки |
|---|---|---|---|
| Действие без условия | Сразу выполняется команда | Состояние объекта изменяется | «Запиши число в тетрадь» |
| Условие | Проверяется утверждение или ситуация | Получен ответ «да» или «нет» | «Число больше 10?» |
| Ветвление с одной ветвью | Проверяется условие и действие при ответе «да» | Действие выполняется только в одном случае | «Если идёт дождь, возьми зонт» |
| Ветвление с двумя ветвями | Проверяется условие и задаются действия для обоих ответов | Выбирается одна из двух ветвей | «Если холодно, надень куртку, иначе надень кофту» |
| Последовательность действий и условий | Команды и проверки выполняются одна за другой | Получается последовательный или вложенный выбор | «Проверь дождь, затем проверь температуру» |
Условие задачи: нужно составить алгоритм перехода улицы, проверив, горит ли зелёный сигнал светофора. После проверки необходимо выбрать дальнейшее действие. Ответ «да» разрешает переход, а ответ «нет» означает, что переходить сейчас нельзя.
Ответ: сначала нужно проверить сигнал светофора. При зелёном сигнале перейти улицу, при другом сигнале ждать, не начиная переход.
Условие задачи: даны два числа a и b, нужно определить, какое из них больше. Одной проверки «a больше b?» достаточно, если для отрицательного ответа отдельно рассмотреть равенство и случай, когда больше b. Так алгоритм учитывает все возможные результаты сравнения.
Ответ: алгоритм сравнивает числа по двум условиям и сообщает один из трёх результатов: a больше b, числа равны или b больше a.
Условие задачи: нужно выбрать одежду в зависимости от дождя и холода. Сначала проверим дождь, потому что он определяет необходимость зонта или дождевика. Затем проверим температуру, чтобы выбрать тёплую или лёгкую одежду.
Ответ: несколько проверок можно выполнять последовательно. Их результаты вместе определяют полный набор действий, поэтому алгоритм учитывает и дождь, и температуру.
Условие иногда записывают как действие или команду, например «перейди дорогу», хотя это не проверка, а приказ. Так происходит, когда путают вопрос о ситуации с последующей командой. Проверьте себя: на условие должен получаться ответ «да» или «нет», а не действие исполнителя.
Некоторые предусматривают команду только для ответа «да» и забывают о случае «нет». Ошибка появляется, когда рассматривают лишь желаемую ситуацию и не думают о других результатах проверки. Проверьте алгоритм вопросом «Что будет, если условие окажется неверным?».
Иногда порядок меняют: сначала выполняют зависящую от условия команду, а потом проверяют ситуацию. Это может привести к неправильному результату или опасному действию. Проверьте последовательность стрелками: сначала должна стоять проверка, затем выбранная по её результату команда.
Неоднозначная формулировка позволяет разным исполнителям выбрать разные ветви. Например, выражение «если погода плохая» не сообщает, что именно считать плохой погодой. Добавьте измеримые признаки и убедитесь, что на вопрос можно дать один точный ответ.
До изучения действий и условий нужно знать, что такое алгоритм, исполнитель, команда и последовательность действий. Эти понятия помогают понять, кто выполняет шаги и почему их нельзя переставлять без причины.
Тема пригодится при составлении блок-схем и программ с командами выбора. В блок-схеме условие обычно отделяют от действий, чтобы было видно направление каждой ветви.
Повторяющиеся действия и циклы тоже строятся на проверке условий. Условие может определять, продолжать ли повторение или остановить его.
Чем условие отличается от действия?
Действие изменяет состояние объекта или выполняет команду: например, «перейти улицу». Условие ничего не выполняет, а только проверяет ситуацию и получает ответ «да» или «нет»: «горит ли зелёный свет?».
Обязательно ли в ветвлении описывать действия для ответа «нет»?
Нет, если при ответе «нет» не нужно выполнять особую команду. Но такой вариант должен быть понятен: исполнитель либо продолжает алгоритм, либо явно выполняет действие, указанное для случая «нет».
Можно ли проверить несколько условий подряд?
Да. Сначала проверяют одно условие, затем по выбранной ветви — следующее. Так строят последовательный или вложенный выбор, например сначала выясняют, идёт ли дождь, а потом проверяют, холодно ли.
Почему нельзя выполнить действие до проверки условия?
До проверки неизвестно, подходит ли это действие к возникшей ситуации. Если выполнить его заранее, можно получить неверный результат или нарушить безопасность алгоритма.
Как понять, что условие сформулировано однозначно?
Попробуйте ответить на него только одним из двух вариантов: «да» или «нет». Если разные исполнители могут понять вопрос по-разному, нужно добавить точные признаки, числа или границы сравнения.
17. Действия и условия