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