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