"Информатика (в 2 частях)", Могилев А.В., Могилева В.Н., Цветкова М.С.
Алгоритм помогает исполнителю решить задачу с помощью понятных команд. Если команды расположены линейно, исполнитель выполняет их одну за другой — от первой до последней, не выбирая между действиями и не повторяя их. Такой порядок нужен, например, для вычислений и пошаговых инструкций. Чтобы получить верный результат, важно учитывать, как каждая команда меняет состояние исполнителя и какие данные понадобятся следующим командам.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Команда — понятное исполнителю указание выполнить одно действие. Например, «сложи два числа» задаёт конкретное действие, а не цель вроде «реши задачу». Команда нужна, чтобы представить решение в форме, с которой исполнитель может работать.
Исполнитель алгоритма — объект, который понимает команды и выполняет их. Им может быть человек, устройство или программа, но каждый исполнитель способен выполнить только определённые действия. Поэтому при составлении алгоритма нужно учитывать его возможности.
Линейный порядок команд — расположение команд, при котором они выполняются последовательно, одна за другой. После завершения одной команды исполнитель переходит к следующей, не выбирая между несколькими вариантами. Такое понятие помогает описать простой ход решения без развилок и возвратов.
Линейный алгоритм — алгоритм, состоящий из команд, выполняемых в заданном порядке без пропусков и повторений. Это значит, что каждая команда выполняется ровно один раз: сначала первая, затем вторая и так далее. Такое описание удобно для задач, где действия заранее известны и не зависят от выбора по условию.
Сначала формулируют цель задачи: например, узнать удвоенную сумму двух чисел. Затем цель разбивают на действия, которые исполнитель умеет выполнять: получить числа, сложить их, умножить результат на 2 и сообщить ответ. Такой переход от цели к конкретным командам нужен потому, что исполнитель не может сам догадаться о неописанных шагах. Каждое действие должно быть выражено так, чтобы его можно было выполнить.
В линейном алгоритме исполнение начинается с первой команды, потому что именно она задаёт начальное действие. После её завершения исполнитель переходит к следующей и продолжает так до последней команды. Команды нельзя пропускать: поздний шаг может рассчитывать на результат более раннего. Завершив последнюю команду, исполнитель заканчивает алгоритм.
Порядок влияет на то, какие данные или состояние доступны в каждый момент. Если сначала нужно получить сумму двух чисел, а затем удвоить её, перестановка этих действий приведёт к другому результату или сделает команду невыполнимой. Например, нельзя вывести результат вычисления до того, как он найден. Поэтому при изменении порядка нужно заново проверить весь ход решения, а не только отдельные команды.
Команда должна быть однозначной, иначе исполнитель может понять её по-разному, и результат станет непредсказуемым. Она также должна быть выполнимой: нельзя требовать от исполнителя действия, которого нет среди его возможностей. Наконец, команда должна подходить именно этому исполнителю — то, что умеет сделать человек, может быть недоступно простому устройству. Проверка этих требований помогает сделать алгоритм понятным и выполнимым.
Чтобы проследить выполнение, записывают состояние исполнителя до начала работы и после каждой команды. Например, при вводе чисел 4 и 3 после команды сложения появляется промежуточный результат 7, а после умножения на 2 — 14. Такой пошаговый разбор показывает, откуда взялся итог, и помогает обнаружить момент, в котором появилась ошибка. Проверяющий не пропускает команды и каждый раз использует состояние, полученное на предыдущем шаге.
Сопоставляй алгоритмы по тому, как выбираются и повторяются команды. Таблица помогает заметить, что линейный алгоритм подходит для заранее известной цепочки действий, а ветвление или повторение меняет ход выполнения. Сравнивай не число команд, а наличие условий и повторов.
| Признак | Линейный алгоритм | Алгоритм с ветвлением или повторением |
|---|---|---|
| Порядок выполнения команд | Каждая команда выполняется по очереди | Порядок может изменяться или команды могут выполняться повторно |
| Наличие условия | Условие не влияет на выбор следующей команды | Условие определяет дальнейшие действия |
| Количество выполнений команды | Каждая команда выполняется один раз | Некоторые команды могут не выполняться или выполняться многократно |
| Пример | Ввод чисел, вычисление суммы, вывод результата | Проверка числа и выбор одного из действий |
Условие: определить, является ли последовательность «ввести число, умножить его на 3, вывести результат» линейным алгоритмом. Проверим, что делает исполнитель и от чего зависит очередной шаг. Здесь важно отличить обычную последовательность действий от выбора или повтора.
Все три команды выполняются по порядку и по одному разу. Ответ: да, это линейный алгоритм.
Условие: ввести два числа, найти их сумму, умножить сумму на 2 и вывести ответ. Нужно определить такой порядок, чтобы каждая команда получила необходимые данные от предыдущих шагов. Если попытаться умножить сумму до её вычисления, нужного значения ещё не будет.
Например, для чисел 5 и 3 сумма равна 8, а после умножения получается 16. Ответ: команды нужно расположить именно в таком порядке, поскольку вычисления зависят от введённых данных и результата сложения.
Условие: исполнитель начинает в точке A. Нужно составить линейный алгоритм движения через несколько точек командами движения и поворота и определить конечное положение. Для примера зададим маршрут: от A пройти 2 шага на восток до B, повернуть на север и пройти 1 шаг до C. Направление движения после поворота зависит от того, в какую сторону исполнитель был обращён.
После первого перемещения состояние изменилось: исполнитель находится в B. Поворот меняет направление, а не положение; второй проход приводит его в C. Ответ: конечное положение — точка C, направление — на север. При перестановке поворота и движения маршрут будет другим, поэтому каждую команду проверяют по порядку.
Пропуск команды возникает, когда ученик пытается сразу назвать итог и не разбирает промежуточные действия. Из-за этого результат может не соответствовать тому, что действительно получится после выполнения алгоритма. Проверяй себя: выпиши команды по порядку и отмечай каждую выполненную.
Перестановка команд местами обычно связана с тем, что не замечают зависимость последующего шага от предыдущего результата. Тогда, например, сумму пытаются умножить до того, как она найдена. Чтобы проверить себя, спроси для каждой команды: есть ли у исполнителя всё необходимое для её выполнения именно сейчас?
Использование непонятной или невыполнимой команды означает, что алгоритм не учитывает систему команд исполнителя. Такую ошибку допускают, когда составляют инструкцию, не выяснив, что именно умеет делать исполнитель. Сверь каждую команду с его возможностями и уточни формулировку, если её можно понять по-разному.
Условие или повторение в линейном алгоритме появляется из-за смешения разных способов организации действий. Условие ведёт к выбору дальнейшего шага, а повторение заставляет выполнять команды снова; в линейной последовательности этого нет. Проверь запись: если команда зависит от ответа на вопрос или возвращает исполнителя к прежнему шагу, алгоритм уже не является линейным.
Для изучения линейного порядка нужно знать, что такое алгоритм, команда и исполнитель, а также уметь выполнять команды по очереди. Эти понятия дают основу для составления программ, пошаговых инструкций и алгоритмов вычислений. Линейная последовательность — первый шаг к более сложным конструкциям: ветвлению, где выбор зависит от условия, и циклам, где действия повторяются. Понимание простого порядка помогает затем разобраться, как устроены такие изменения хода выполнения.
Можно ли считать алгоритм линейным, если в нём несколько вычислений?
Да. Число вычислений не меняет тип алгоритма, если все команды выполняются по одному разу в заданном порядке. В нём не должно быть выбора по условию или повторения команд.
Почему команды нельзя выполнять в произвольном порядке?
Следующая команда может использовать результат предыдущей. Если изменить порядок, нужных данных ещё не будет или состояние исполнителя изменится иначе, поэтому итог может стать неверным.
Чем линейный алгоритм отличается от обычной инструкции?
По устройству они могут быть похожи: оба задают действия в определённом порядке. Алгоритм должен состоять из точных команд, которые исполнитель способен понять и выполнить, и приводить к решению задачи.
Может ли линейный алгоритм содержать команду вывода результата?
Да. Вывод — обычная команда, и её ставят после действий, которые подготавливают результат. Она выполняется один раз, как и остальные команды линейного алгоритма.
Как проверить, что исполнитель правильно выполнил линейный алгоритм?
Выполняй команды по очереди и после каждой записывай, что изменилось. Затем сравни полученный итог с тем, что требовалось найти, и проверь, что ни одна команда не пропущена.
§ 23. Линейный порядок команд в алгоритме