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