"Информатика (в 2 частях)", Павлов Д.И., Полежаева О.А., Коробкова Л.Н. и др./ Под ред. Горячева А.В.
Алгоритм — это точная последовательность команд, которая приводит к решению задачи. Чтобы составить его, нужно определить исходные данные, результат и действия между ними. Команды выполняет конкретный исполнитель, использующий доступную ему систему команд. Алгоритмы бывают линейными, разветвляющимися и циклическими, а блок-схема помогает показать их порядок и условия графически.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Алгоритм — точная последовательность команд, приводящая к решению задачи. Каждая команда должна быть выполнимой, а весь порядок действий — понятным и конечным. Это нужно, чтобы разные запуски при одинаковых данных давали ожидаемый результат.
Исполнитель алгоритма — объект, который понимает и выполняет команды алгоритма. Исполнителем может быть человек, робот или компьютерная программа. От исполнителя зависит, какие указания можно использовать и как именно они будут выполнены.
Система команд исполнителя — набор команд, которые данный исполнитель способен выполнить. Например, один робот умеет двигаться и поворачиваться, а программа — вычислять, сравнивать и выводить данные. Команда вне этой системы не поможет решить задачу, даже если человеку её смысл понятен.
Блок-схема — графическое представление алгоритма с помощью стандартных блоков и стрелок. Прямоугольник обычно показывает действие, ромб — проверку условия, а овал — начало или конец. Такая запись позволяет быстро увидеть порядок шагов и места, где выполнение может изменить направление.
Сначала из условия задачи выделяют исходные данные: числа, слова, измерения или другие объекты, которые уже известны. Затем формулируют требуемый результат и подбирают действия, связывающие данные с ответом. Такой разбор нужен, чтобы не выполнять лишние операции и не забыть, что именно должен получить исполнитель.
Каждая команда должна быть понятна конкретному исполнителю и однозначно задавать следующее действие. Если фраза допускает разные толкования, исполнитель может выбрать не тот вариант или вообще не суметь её выполнить. Поэтому сложное указание разбивают на простые команды, входящие в систему команд исполнителя.
В линейном алгоритме команды выполняются последовательно, одна за другой. Следующий шаг начинается после завершения предыдущего, поэтому изменение порядка может изменить промежуточные данные и ответ. Линейная конструкция подходит, когда для всех допустимых исходных данных нужен один и тот же порядок действий.
В алгоритме с ветвлением условие проверяет данные и выбирает порядок дальнейших действий. При истинном условии выполняется одна последовательность, при ложном — другая, поэтому нужно предусмотреть все возможные результаты проверки. Ветвление позволяет не выполнять неподходящие команды, например выбрать большее из двух чисел.
Циклический алгоритм повторяет одни и те же действия несколько раз. В цикле с условием повторение продолжается, пока условие истинно, а в цикле с заданным числом повторений заранее известен счётчик шагов. Для завершения нужно изменять счётчик или другую управляющую величину так, чтобы условие окончания обязательно наступило.
| Конструкция | Как устроена | Когда применяется | Пример действия |
|---|---|---|---|
| Следование | Команды идут в одном порядке и выполняются по очереди. | Когда повторений и выбора вариантов нет. | Ввести число, прибавить 5, вывести результат. |
| Ветвление | Условие направляет выполнение по одной из ветвей. | Когда результат зависит от проверки. | Если x больше y, вывести x, иначе вывести y. |
| Цикл с условием | Команды повторяются, пока условие истинно. | Когда число повторений заранее неизвестно. | Пока счётчик не достиг n, прибавлять его к сумме. |
| Цикл с заданным числом повторений | Команды выполняются указанное количество раз. | Когда число повторений известно заранее. | Повторить сложение пять раз. |
| Обозначения блок-схемы | Стрелки соединяют блоки начала, действий, условий и конца. | Когда алгоритм нужно представить наглядно. | Ромб задаёт проверку, прямоугольник — действие. |
Сначала определите, изменяется ли порядок действий или повторяются ли отдельные шаги. Затем выберите строку, которая описывает такую ситуацию, и проверьте, подходит ли пример действия. При составлении блок-схемы следите, чтобы стрелки показывали каждый возможный путь от начала до конца.
Исполнитель получает число x, увеличивает его на 5, умножает результат на 2 и выводит ответ. Нужно выполнить алгоритм при x = 3. Здесь действия образуют следование, поэтому их нельзя менять местами.
Ответ: исполнитель выведет 16. Если сначала умножить 3 на 2, а затем прибавить 5, получится 11, поэтому промежуточные результаты помогают проверить порядок команд.
Нужно составить алгоритм, который получает два числа и выводит большее, а при равенстве сообщает об этом. Возможны три исхода: первое число больше второго, второе больше первого или числа равны. Значит, условие должно охватить не только один случай.
Ответ: алгоритм корректен для любых двух чисел. Например, при a = 9 и b = 4 сработает первая ветвь, а при a = 6 и b = 6 — сообщение о равенстве.
Нужно найти сумму чисел от 1 до n с помощью цикла и проверить алгоритм при n = 5. Выберем счётчик i и накопитель s: сначала i = 1, s = 0. На каждом шаге добавляем i к s, затем увеличиваем i на 1 и повторяем действия, пока i не станет больше n.
Ответ: при n = 5 сумма равна 15. После добавления 5 счётчик становится равен 6, условие i ≤ 5 ложно, поэтому цикл завершается.
Команда отсутствует в системе команд. Её используют, потому что она кажется удобной человеку, но конкретный исполнитель её не понимает. Проверьте каждую команду по списку доступных действий и замените недопустимую на последовательность разрешённых.
Пропуск или перестановка действий. Ошибка появляется, когда составитель считает шаг очевидным или не отслеживает промежуточный результат. Выполните алгоритм по строкам и сравните порядок с условием задачи.
Неполное ветвление. Иногда описывают только случай истинного условия и забывают, что делать при ложном результате. Подставьте данные для каждого возможного исхода, включая равенство, и найдите путь до конца для каждого случая.
Бесконечный цикл. Он возникает, если управляющая переменная не меняется или движется не к условию окончания. Запишите её значения на нескольких шагах и убедитесь, что рано или поздно проверка станет ложной.
До этой темы нужны действия с числами, сравнение величин, понимание логических условий и чтение простых схем. В программировании алгоритм переводят на язык программирования с помощью команд, условий и циклов. Дальше эти знания пригодятся для составления программ, решения вычислительных задач, поиска ошибок и анализа работы исполнителей.
Чем алгоритм отличается от простого списка действий?
Алгоритм составлен точно и однозначно: каждая команда понятна исполнителю, а порядок действий приводит к нужному результату. В обычном списке действий могут быть пропуски, неясные указания или лишние шаги.
Может ли один алгоритм выполняться разными исполнителями?
Да, если каждый исполнитель понимает все команды алгоритма или если алгоритм переведён на его систему команд. Один и тот же замысел может выглядеть по-разному для человека, робота и компьютерной программы.
Как понять, какую алгоритмическую конструкцию выбрать?
Если действия выполняются один раз в неизменном порядке, используют следование. Если нужно выбрать вариант по условию, подходит ветвление, а для повторяющихся действий — цикл.
Что произойдёт, если условие в ветвлении записано неправильно?
Исполнитель выберет не ту ветвь, поэтому результат может оказаться неверным. Нужно проверить смысл условия на разных исходных данных, включая равенство и пограничные случаи.
Как проверить, что цикл действительно завершится?
Нужно найти условие окончания и убедиться, что на каждом повторении управляющая переменная изменяется в нужную сторону. Полезно проследить несколько шагов вручную и проверить случай, когда условие уже ложно.
22. Повторяем работу c алгоритмами