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