На Горох
Информатика

Разнообразные алгоритмы

"Информатика и ИКТ (в 2 частях)", Бененсон Е.П., Паутова А.Г.

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

Кратко о теме

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

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

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

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

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

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

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

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

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

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

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

Условие разделяет ход выполнения на варианты, потому что одна и та же ситуация может потребовать разных действий. Сначала исполнитель проверяет утверждение, например: «Идёт ли дождь?». Если ответ «да», он выполняет одну ветвь, а если «нет» — другую; после этого варианты могут снова соединиться в общем продолжении.

Повторение команд удобно, когда действие выполняется много раз по одному правилу. Вместо пяти одинаковых команд «сделать шаг вперёд» можно записать одну команду и указать: «повторить 5 раз». Так алгоритм становится короче, а число повторений легко изменить. Если заранее неизвестно, сколько раз нужно действовать, цикл продолжается, пока условие остановки не станет истинным.

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

Основные виды алгоритмов

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

Вид алгоритмаКак выполняются командыКогда подходитПример ситуации
ЛинейныйПоследовательно, одна за другойПорядок заранее известен и не зависит от условийПриготовить бутерброд
С ветвлениемВыбирается одна из ветвей по условиюДействие зависит от обстоятельствВзять зонт, если идёт дождь
ЦиклическийГруппа команд повторяетсяДействие нужно выполнить несколько разПройти 5 клеток вперёд

Разбор задач

Приготовление бутерброда

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

  1. Взять кусок хлеба.
  2. Намазать хлеб маслом.
  3. Положить на хлеб сыр.
  4. Положить бутерброд на тарелку.

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

Зонт и дождь

Условие. Нужно решить, брать ли зонт: если на улице дождь, взять зонт, иначе идти без зонта. Здесь результат зависит от проверки одного условия, поэтому простого списка команд недостаточно. Нужно описать обе возможные ветви.

  1. Проверить, идёт ли на улице дождь.
  2. Если ответ «да», взять зонт.
  3. Если ответ «нет», идти без зонта.

Ответ. Это алгоритм с ветвлением. Условие «идёт ли дождь?» определяет, какая команда будет выполнена, поэтому исполнитель не выбирает вариант произвольно.

Движение на 5 клеток

Условие. Исполнитель должен пройти на 5 клеток вперёд, используя команду движения. Одинаковое действие повторяется, поэтому перечислять его пять раз можно, но удобнее применить цикл. Число повторений известно заранее.

  1. Начать выполнение алгоритма.
  2. Повторить 5 раз: выполнить команду «вперёд».
  3. Остановиться после пятого движения.

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

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

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

Записывать ветвление без условия. Без условия исполнитель не понимает, какую ветвь выбрать, поэтому результат становится случайным. Проверьте запись вопросом: можно ли однозначно ответить «да» или «нет» и выбрать действие по этому ответу?

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

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

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

До изучения разнообразных алгоритмов нужно понимать, что такое алгоритм, команда и исполнитель, а также уметь выполнять команды по порядку. Эти знания помогают увидеть, где заканчивается одна команда и начинается следующая. Без них трудно проверить, понятен ли алгоритм исполнителю.

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

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

  • Алгоритм состоит из понятных исполнителю команд.
  • В линейном алгоритме команды выполняются по порядку.
  • Ветвление выбирает дальнейшие действия по условию.
  • Цикл повторяет одну или несколько команд.
  • Структуру алгоритма выбирают в зависимости от задачи.
  • Условие и число повторений должны быть заданы однозначно.

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

Чем линейный алгоритм отличается от алгоритма с ветвлением?

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

Что называют условием в алгоритме?

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

Когда в алгоритме нужно использовать цикл?

Цикл используют, если одну или несколько команд нужно выполнить несколько раз. Число повторений или условие остановки должно быть указано однозначно.

Может ли один алгоритм содержать и ветвление, и цикл?

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

Что произойдёт, если не указать, когда цикл должен закончиться?

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

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

Разнообразные алгоритмы

Учебник

Оглавление →
Предмет
Информатика
Учебник
"Информатика и ИКТ (в 2 частях)", Бененсон Е.П., Паутова А.Г.