На Горох
Информатика, 8 класс

Модуль 1. Принятие решения

"Информатика (в 2-х частях)", Горячев А.В., Герасимова В.Г., Макарина Л.А., Островский С.Л., Паволоцкий А.В., Семёнов А.А., Юдина А.Г., Чернышёва Т.Л.

Объяснение темы

Кратко о теме

Принятие решения в алгоритме — это выбор дальнейшего действия из нескольких вариантов по имеющейся информации. Для такого выбора формулируют условие, которое можно проверить и получить ответ «истина» или «ложь». В зависимости от ответа алгоритм направляет исполнителя по нужной последовательности команд. Ветвление помогает описывать повседневные правила, решать задачи сравнения и составлять программы, не упуская разные исходы ситуации.

Объяснение темы

Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.

Определения и обозначения

Решение — это выбор одного варианта действия из нескольких возможных на основе имеющейся информации. В обычной жизни мы тоже выбираем: например, решаем, взять ли зонт, посмотрев на погоду. В алгоритме решение нужно, чтобы исполнитель не выполнял один и тот же набор команд в любой ситуации.

Условие — утверждение или проверка, результатом которой может быть «истина» или «ложь». Например, утверждение «идёт дождь» можно проверить, а выражение «на улице неприятно» не даёт ясного критерия. Чёткое условие нужно, чтобы исполнитель мог однозначно выбрать дальнейший путь.

Алгоритм с ветвлением — алгоритм, в котором дальнейшие действия выбираются в зависимости от результата проверки условия. Если проверка дала один результат, выполняется одна последовательность команд, а при другом результате — другая. Ветвление позволяет описывать выбор, не смешивая действия для разных ситуаций.

Полное ветвление предусматривает действия для обоих результатов проверки, а неполное — только для одного. Полную форму выбирают, когда при каждом исходе нужно указать, что делать. Неполной достаточно, если при противоположном исходе можно продолжить выполнение без отдельной команды.

Как это устроено

Чтобы перевести повседневный выбор в формальное описание, сначала называют возможные варианты действий, а затем — сведения, по которым их выбирают. Например, при сборе на улицу вариантами могут быть «взять зонт» и «не брать зонт», а критерием — наличие дождя. Такой порядок помогает не спутать саму проверку с действием, которое выполняют после неё.

Условие должно давать однозначный ответ, потому что алгоритм не умеет принимать решение по расплывчатым впечатлениям. Фраза «на улице холодно» зависит от того, кто оценивает погоду, а проверка «температура ниже 10 °C» задаёт ясную границу. Тогда при одинаковых исходных данных проверка не оставляет исполнителю необходимости угадывать.

После проверки алгоритм использует её результат как указатель дальнейшего пути. Если условие истинно, выполняется набор команд, связанный с этим результатом; если ложно — предусмотренный для него набор. Причина такого устройства проста: одна и та же задача может требовать разных действий при разных обстоятельствах.

Выбор между полным и неполным ветвлением зависит от того, нужно ли отдельно описывать оба исхода. Если при ложном результате требуется другое действие, ветвление должно быть полным, иначе алгоритм не объяснит, что делать. Если действие нужно только при истине, а при лжи алгоритм просто идёт дальше, неполная форма короче и не создаёт лишних команд.

Несколько условий объединяют в последовательность проверок, когда одного критерия недостаточно для выбора. Например, сначала можно определить возрастную категорию, а затем проверить объём услуг и выбрать подходящий тариф. Порядок важен: проверки должны разделять варианты так, чтобы каждый из них приводил к понятному действию, а ни один случай не оставался без ответа.

Виды ветвления и их особенности

Сравнивайте строки таблицы по двум результатам условия: так легче заметить, задано ли действие для каждого из них. Последовательность проверок нужна, когда решения нельзя получить одной проверкой. При составлении своего алгоритма сначала определите все возможные исходы, а затем сверьте их с таблицей.

ВидРезультат «истина»Результат «ложь»Когда использовать
Полное ветвлениеВыполняется действие для истинного результата.Выполняется отдельное действие для ложного результата.Когда для обоих исходов нужно задать команды.
Неполное ветвлениеВыполняется заданное действие.Отдельное действие не задаётся, алгоритм продолжается.Когда действие требуется только при одном исходе.
Последовательность проверок условийДля истинного результата выполняется соответствующее действие или переход к следующей проверке.Проверяется следующее условие либо выполняется действие для оставшегося случая.Когда нужно различить несколько вариантов ситуации.

Разбор задач

Задача 1. Составить описание выбора: если на улице идёт дождь, взять зонт. Нужно определить, что именно проверяется, и не добавлять действия, которых условие не требует. Достаточно описать случай, в котором зонт берут, и пояснить, что происходит при другом результате.

  1. Запишем условие: «На улице идёт дождь».
  2. Если условие истинно, выполняем команду «взять зонт».
  3. Если условие ложно, отдельная команда по условию задачи не нужна.

Ответ. Если идёт дождь, взять зонт; иначе продолжить сборы. Это неполное ветвление, потому что специальное действие указано только для истинного результата.

Задача 2. Определить, какое из двух чисел больше, и учесть равенство. Нельзя ограничиться одной проверкой вида «первое число больше второго»: если она ложна, числа могут быть равны, а не только иметь обратный порядок. Поэтому рассмотрим все три возможных исхода сравнения.

  1. Обозначим числа a и b, сначала проверим условие «a больше b».
  2. Если оно истинно, сообщим, что больше первое число.
  3. Иначе проверим, больше ли b числа a. Если да, сообщим, что больше второе.
  4. Если и вторая проверка ложна, числа равны, поэтому сообщим об этом.

Ответ. Алгоритм использует две проверки и выдаёт один из трёх результатов: первое число больше, второе число больше или числа равны.

Задача 3. Выбрать тариф по возрасту пользователя и объёму услуг. Пусть правило такое: пользователю младше 18 лет назначается детский тариф; взрослому при объёме до 10 единиц включительно — базовый, а при большем объёме — расширенный. Чтобы не назначить взрослому тариф по детскому правилу и не потерять граничное значение 10, сначала проверим возраст, а затем объём.

  1. Проверим, меньше ли возраст 18 лет; если да, выберем детский тариф.
  2. Если возраст не меньше 18, проверим, не превышает ли объём 10 единиц.
  3. При объёме до 10 включительно назначим базовый тариф, иначе — расширенный.
  4. Проверим сочетания: несовершеннолетний при любом объёме получает детский тариф; взрослый с объёмом 10 — базовый, а с объёмом больше 10 — расширенный.

Ответ. Последовательность проверок приводит к тарифу для каждого сочетания возраста и объёма. В условии задачи правило о детском тарифе имеет приоритет, поэтому проверка возраста выполняется первой.

Типичные ошибки

Условие иногда формулируют так, что его нельзя проверить однозначно: например, «погода хорошая». Так бывает, когда критерий кажется очевидным самому автору, но у разных людей он разный. Проверьте формулировку вопросом: смогут ли два исполнителя по одним данным получить один и тот же ответ «истина» или «ложь»?

В полном ветвлении могут указать действие только для одного результата, хотя требуется описать оба. Обычно так происходит, когда автор сосредоточился на основном случае и забыл о противоположном. Подставьте в условие сначала истину, затем ложь и убедитесь, что для каждого исхода дальнейший шаг определён.

При сравнении значений часто забывают равенство или граничный случай. Например, проверки «больше» и «меньше» не объясняют, что делать, если числа одинаковы. Перечислите все возможные исходы проверки и отдельно проверьте значения на границе заданного диапазона.

Ещё одна ошибка — перепутать действия для истинного и ложного результата. Её легко допустить, если записывать команды, не прогоняя алгоритм на конкретных данных. Проверьте по одному примеру для каждого исхода: условие истинно — выполнено нужное действие; условие ложно — выполнено другое предусмотренное действие или алгоритм продолжен.

Связь с другими темами

Для работы с ветвлениями нужно понимать, что такое алгоритм, исполнитель и последовательность команд: ветвление меняет обычный порядок выполнения команд по результату проверки. Эта тема также опирается на умение сравнивать объекты и формулировать утверждения, которые можно проверить. Позже ветвления пригодятся при составлении программ, моделировании ситуаций и описании правил выбора, где нужно учесть разные исходы.

Что запомнить

  • Решение — это выбор действия среди возможных вариантов.
  • Условие должно проверяться однозначно.
  • Результат проверки условия — истина или ложь.
  • Ветвление задаёт выбор дальнейших действий по результату проверки.
  • Полное ветвление предусматривает оба результата условия.
  • При составлении алгоритма нужно учесть все возможные случаи.

Частые вопросы по теме

Чем условие отличается от команды?

Условие проверяют: его результатом становится «истина» или «ложь». Команда же указывает исполнителю, какое действие выполнить.

Почему результат проверки условия обычно записывают как истину или ложь?

Так алгоритм однозначно понимает, по какой ветви продолжать работу. Для каждого условия проверка должна приводить к одному из двух результатов.

Когда достаточно неполного ветвления?

Когда действие нужно выполнить только при одном результате условия, а при другом никаких специальных действий не требуется. Например, зонт берут, если идёт дождь, а иначе можно просто продолжить обычные сборы.

Как понять, что в алгоритме учтены все возможные случаи?

Перечислите результаты всех проверок, включая равенство или граничные значения, если они возможны. Убедитесь, что для каждого полученного варианта понятно, что делать дальше.

Можно ли использовать несколько условий подряд при принятии решения?

Да, алгоритм может проверять условия последовательно. Порядок проверок должен быть понятным, а каждый возможный итог — вести к определённому действию.

Спросить по теме параграфа

Модуль 1. Принятие решения

Эта же тема в других учебниках

Учебник

Оглавление →
Предмет
Информатика
Класс
8 класс
Учебник
"Информатика (в 2-х частях)", Горячев А.В., Герасимова В.Г., Макарина Л.А., Островский С.Л., Паволоцкий А.В., Семёнов А.А., Юдина А.Г., Чернышёва Т.Л.