"Информатика (в 2 частях)", Нателаури Н.К., Маранин С.С.
Линейный алгоритм — это точная последовательность команд, которые исполнитель выполняет одну за другой. Он помогает описать решение задачи так, чтобы человек или устройство получили нужный результат без выбора между вариантами и повторения действий. Чтобы составить такой алгоритм, нужно учитывать возможности исполнителя, не пропускать шаги и соблюдать порядок команд. Разберём определения, способы записи и примеры.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Алгоритм — точное и понятное исполнителю описание последовательности действий для решения задачи. Иначе говоря, это план, в котором ясно, что делать и в каком порядке. Точность нужна, чтобы исполнитель не додумывал указания сам и мог прийти к требуемому результату.
Исполнитель алгоритма — человек или устройство, которое может выполнять команды алгоритма. Например, человек может следовать инструкции, а робот — перемещаться по клеткам, если умеет выполнять такие команды. Понятие исполнителя помогает заранее определить, какие действия вообще можно включить в план.
Команда — отдельное указание исполнителю выполнить определённое действие. Это может быть команда передвинуться, ввести число или выполнить вычисление. Каждая команда должна быть понятной выбранному исполнителю, иначе он не сможет надёжно выполнить алгоритм.
Линейный алгоритм — алгоритм, в котором команды выполняются последовательно, одна за другой, без ветвлений и повторений. Исполнитель проходит команды в заданном порядке, не выбирая другой путь и не возвращаясь к предыдущим шагам. Такой вид подходит для задач, в которых достаточно один раз выполнить заранее установленную последовательность действий.
Алгоритм должен содержать точные команды, потому что исполнитель не всегда может понять намёк или догадаться о намерении автора. Например, указание «сделай чай» для человека может быть понятным, но для устройства слишком неопределённо. Чем конкретнее шаги, тем меньше вероятность пропуска или неправильного действия.
Набор команд зависит и от самой задачи, и от возможностей исполнителя. Для приготовления чая нужны действия с чашкой и водой, а для вычисления площади — ввод чисел и умножение. Если исполнитель не умеет выполнять какую-либо команду, алгоритм не сработает, поэтому сначала выясняют, какие команды ему доступны.
В линейном алгоритме следующая команда выполняется после предыдущей, потому что действия образуют единый путь от исходных данных к результату. Порядок может быть существенным: нельзя вычислить площадь прямоугольника, не зная его сторон. Если нарушить зависимость между шагами, команда окажется невыполнимой или даст неправильный итог.
Линейный алгоритм можно записать нумерованными шагами, словами или блок-схемой — изображением команд в виде блоков, соединённых линиями. Нумерация помогает видеть порядок, а словесное описание удобно для простых инструкций. В блок-схеме последовательность блоков показывает, какой шаг за каким выполняется; при этом ни выбора пути, ни возврата для повторения нет.
Проверка состоит в том, чтобы выполнить команды по порядку, используя конкретные исходные данные. После каждого шага полезно отмечать, что изменилось и можно ли перейти к следующему действию. Если в конце получен нужный результат, а команды выполнимы и ничего не пропущено, алгоритм решает поставленную задачу.
| Характеристика | Линейный алгоритм | Разветвляющийся алгоритм | Циклический алгоритм |
|---|---|---|---|
| Порядок выполнения команд | Одна за другой | Зависит от условия | Команды могут повторяться |
| Есть ли выбор дальнейшего действия | Нет | Да | Обычно зависит от условия цикла |
| Есть ли повторение команд | Нет | Само по себе не обязательно | Да |
| Пример ситуации | Вычислить площадь по известным сторонам | Выбрать одежду по погоде | Повторять шаги, пока не достигнута цель |
Сравнивайте типы по порядку команд, наличию выбора и повторения, а не только по внешнему виду записи. Если каждый шаг выполняется один раз в установленном порядке, алгоритм линейный. Выбор по условию указывает на ветвление, а повторение действий — на цикл.
Нужно составить последовательность из действий: налить воду, вскипятить её, положить пакетик в чашку и залить кипятком. Сначала выясним, какие действия зависят друг от друга: воду нужно вскипятить до того, как заливать её в чашку. Пакетик следует положить в чашку до заливания, чтобы напиток заваривался.
Каждый шаг выполним, если у исполнителя есть чайник, чашка, вода и пакетик чая. Проверка по порядку подтверждает, что кипяток появляется до заливания, а пакетик уже находится в чашке. Ответ: четыре команды образуют линейный алгоритм приготовления чая.
Даны длина a и ширина b; требуется получить периметр и площадь. Сначала нужно ввести стороны, так как без них формулы вычислить нельзя. Затем рассчитываем P = 2(a + b) и S = ab, после чего сообщаем оба результата.
Шаги идут от исходных данных к вычислениям и затем к ответу, поэтому каждый следующий шаг использует уже известную информацию. Например, при a = 5 и b = 3 получаем P = 16 и S = 15. Ответ: алгоритм состоит из ввода, двух вычислений и вывода результатов.
Роботу нужно пройти заданный маршрут, состоящий из поворотов и перемещений. Команды следует формулировать только из тех действий, которые робот умеет выполнять, например «поверни направо» и «пройди одну клетку вперёд». Чтобы не сбиться, каждое изменение направления и перемещение записываем отдельно.
Это пример записи: конкретные направления и число клеток нужно взять из условия заданного маршрута. При проверке мысленно выполняем каждую команду, отмечая положение и направление робота после неё. Ответ: маршрут представлен последовательностью отдельных команд; если после последнего шага робот оказался в нужной клетке, порядок составлен верно.
Считать любую последовательность действий алгоритмом — ошибка: указания могут быть расплывчатыми или непонятными исполнителю. Её допускают, когда принимают общий совет за точную инструкцию. Проверьте себя: сможет ли исполнитель выполнить каждый шаг без догадок?
Менять команды местами, не учитывая зависимость между действиями, значит нарушать путь к результату. Например, вычисление до ввода необходимых данных невыполнимо. Перед проверкой спросите, есть ли у исполнителя всё необходимое для каждого шага в момент его выполнения.
Команда, которой нет в системе команд исполнителя, не может быть выполнена. Такую ошибку допускают, когда составляют алгоритм, не выяснив возможности человека или устройства. Сверьте каждый шаг со списком доступных действий исполнителя и замените неподходящие команды выполнимыми.
Пропуск шага или отсутствие указания, что делать с исходными данными, может оставить задачу без результата. Часто кажется, что очевидное действие можно не записывать, но исполнитель не обязан его угадывать. Пройдите алгоритм от начала до конца и проверьте, что данные обработаны, а итог явно получен.
Чтобы составлять линейные алгоритмы, нужно понимать, что такое задача, исходные данные и результат, а также уметь записывать простые последовательности действий. Эти понятия помогают определить начало и конец решения и выбрать необходимые команды. В примере с прямоугольником исходные данные — его стороны, а результат — периметр и площадь.
Линейная последовательность служит основой для изучения разветвлений и циклов: в них к обычному выполнению команд добавляются выбор или повторение. Навык пригодится при составлении программ и разработке алгоритмов для разных исполнителей. Учитывая возможности исполнителя и проверяя шаги, можно описывать действия и в бытовых задачах, и в работе устройства.
Чем линейный алгоритм отличается от обычного списка действий?
В алгоритме команды должны быть точными и понятными конкретному исполнителю, а их выполнение должно приводить к результату задачи. Обычный список может содержать расплывчатые советы, пропуски или действия, которые исполнитель не умеет выполнять.
Почему порядок команд в линейном алгоритме важен?
Некоторые действия возможны только после предыдущих: например, чтобы вычислить площадь, сначала нужно получить длину и ширину. Если поменять команды местами, исполнитель может не справиться или получить неверный результат.
Может ли линейный алгоритм содержать вычисления?
Да, вычисление — такая же команда, как ввод данных или вывод ответа. Например, после ввода длины и ширины прямоугольника можно последовательно вычислить его периметр и площадь.
Обязательно ли записывать алгоритм в виде блок-схемы?
Нет, линейный алгоритм можно записать нумерованными шагами или словесно. Блок-схема — ещё один способ представить его, показывая команды блоками и соединяя их по порядку.
Как проверить, что линейный алгоритм выполняет поставленную задачу?
Выполните его шаг за шагом, следуя каждой команде и учитывая исходные данные. Затем проверьте, получен ли нужный результат и не пропущены ли необходимые действия.
Линейный алгоритм