На Горох
Информатика, 9 класс

§ 3. Определение и свойства алгоритма

"Информатика", Семакин И.Г., Залогова Л.А., Русаков С.В., Шестакова Л.В.

Объяснение темы В оглавлении: § 3. Определение и свойства алгоритма

Кратко о теме

Алгоритм — это конечная последовательность понятных команд, которая приводит исполнителя к решению задачи. Для каждого алгоритма задают исходные данные, порядок действий и ожидаемый результат. Команды выполняются отдельными шагами, должны быть однозначными для конкретного исполнителя, а сам алгоритм обязан завершаться. Если он подходит для разных наборов исходных данных одного типа, его называют массовым.

Объяснение темы

Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.

Определения и обозначения

Алгоритм — конечная последовательность понятных команд для решения задачи. Конечность означает, что команды не продолжаются бесконечно, а понятность связана с возможностями исполнителя. Это определение помогает отличить точный способ решения от общего совета.

Исполнитель алгоритма — человек, компьютер, робот или другое устройство, которое выполняет команды. У исполнителя есть набор доступных действий и правила их выполнения. Без указания исполнителя нельзя проверить, понятна ли команда и может ли она быть выполнена.

Система команд исполнителя — все допустимые команды, которыми данный исполнитель умеет пользоваться. Алгоритм можно составлять только из этих команд: например, калькулятор умеет выполнять одни действия, а робот-пылесос — другие. Такая система задаёт границы возможностей исполнителя.

Свойства алгоритма — признаки, по которым проверяют качество и правильность алгоритма: дискретность, определённость, результативность и массовость. Они показывают, разбито ли решение на шаги, понятны ли команды, получается ли результат и применим ли способ к разным исходным данным.

Как это устроено

Сначала условие задачи переводят в более точную форму: выделяют исходные данные и требуемый результат. Затем определяют действия, которые должны преобразовать исходные данные в результат, и записывают их в нужном порядке. Такая подготовка нужна, чтобы решение не зависело от случайных догадок исполнителя.

Алгоритм состоит из отдельных шагов, потому что исполнитель не выполняет всё решение сразу. На каждом шаге он получает новое состояние задачи, а затем выбирает следующую команду. Если поменять местами действия, результат может измениться: например, сначала нужно открыть файл, а уже потом читать его содержимое.

Каждая команда должна быть однозначной и понятной конкретному исполнителю. Фраза «сделай число удобным» человеку может показаться ясной, но для компьютера она не задаёт точного действия. Поэтому команда должна описывать операцию так, чтобы при одинаковых исходных данных исполнитель каждый раз действовал одинаково.

Результативность проявляется в двух признаках: выполнение заканчивается за конечное число шагов и выдаёт предусмотренный результат. Если команды зацикливаются или приводят к остановке без ответа, алгоритм нельзя считать результативным для данной задачи. Проверить это можно, проследив выполнение на выбранных исходных данных и оценив условие окончания.

Массовость означает применимость одного алгоритма к целому классу однотипных задач. Например, способ сложения подходит не одной паре чисел, а любым допустимым слагаемым. Если последовательность действий работает только для заранее записанного набора данных, это скорее единичное решение, а не массовый алгоритм.

Основные свойства алгоритма

В таблице собраны признаки, по которым проверяют алгоритм. В столбце «Как проверить» нужно мысленно или на примере проследить выполнение команд. Если хотя бы один признак нарушен, описание решения требуется уточнить.

СвойствоЧто означаетКак проверить
ДискретностьРешение разделено на отдельные последовательные шаги.Можно ли назвать каждое действие отдельной командой?
ОпределённостьКаждая команда точна и однозначна для исполнителя.Поймёт ли исполнитель, что именно и как выполнить?
РезультативностьАлгоритм завершается и выдаёт результат.Заканчивается ли выполнение за конечное число шагов?
МассовостьАлгоритм подходит для разных исходных данных одного типа.Работает ли он на целом классе похожих задач?

Разбор задач

Площадь прямоугольника

Условие: даны длина a и ширина b прямоугольника. Нужно найти его площадь по формуле S = a · b. Исполнитель умеет вводить числа, умножать их и выводить результат.

  1. Ввести значения a и b — это исходные данные.
  2. Выполнить команду S = a · b.
  3. Вывести S как результат.

Ответ: исполнитель — вычислительное устройство, исходные данные — a и b, результат — площадь S. Алгоритм дискретен, определён и результативен, а также массов, потому что подходит для любых допустимых значений длины и ширины.

Сравнение двух чисел

Условие: для чисел x и y вывести большее из них, а при равенстве сообщить об этом. В алгоритме используется ветвление: выбор дальнейшей команды зависит от условия.

  1. Ввести x и y.
  2. Если x > y, вывести x.
  3. Иначе если y > x, вывести y.
  4. Иначе вывести сообщение «числа равны».

Ответ: для пары 8 и 3 получится 8, для пары 2 и 9 — 9, для пары 5 и 5 — сообщение о равенстве. Порядок проверки условий важен: он направляет исполнителя только по одной подходящей ветви.

Наибольший общий делитель

Условие: найти НОД двух натуральных чисел a и b методом Евклида. Идея метода — заменять пару чисел на делитель и остаток, пока остаток не станет равен нулю.

  1. Пока b ≠ 0, вычислять r — остаток от деления a на b.
  2. Присвоить a значение b, а b значение r.
  3. Когда b = 0, вывести a.

Ответ: алгоритм заканчивается, потому что остатки натуральных чисел постепенно уменьшаются и не могут уменьшаться бесконечно. Он массовый, так как применяется к разным парам натуральных чисел, и результативный, поскольку после конечного числа шагов выдаёт НОД.

Типичные ошибки

Описание без точных команд. Фраза «решить задачу удобным способом» не задаёт действий и порядка. Такую ошибку допускают, когда заменяют алгоритм общим советом; нужно записать команды и проверить каждую по шагам.

Игнорирование исполнителя. В алгоритм включают действие, которого исполнитель не умеет выполнять. Проверьте каждую команду по системе команд: если нужного действия нет, выберите допустимую замену или другого исполнителя.

Понятность только для человека. Команда может казаться очевидной автору, но оставаться неоднозначной для компьютера или робота. Представьте себя исполнителем и спросите, даст ли команда единственный способ действия.

Отсутствие завершения или результата. Иногда последовательность зацикливается либо заканчивается без ответа. Проследите выполнение до конца на нескольких данных и найдите команду, которая выдаёт результат и обеспечивает остановку.

Связь с другими темами

До изучения темы нужно уметь выделять условие задачи, исходные данные и требуемый результат. Это помогает превратить текстовую задачу в точную последовательность действий.

Дальше алгоритмы записывают с помощью блок-схем и программ. Свойства алгоритма помогают проверить такую запись до запуска и найти ошибки в ветвлениях или порядке команд.

С математикой тема связана через вычисления, проверку условий и решение типовых задач. Многие математические способы становятся алгоритмами, когда их шаги формулируют точно.

Что запомнить

  • Алгоритм — конечная последовательность команд для решения задачи.
  • Команды алгоритма выполняет определённый исполнитель.
  • Исполнитель действует только в пределах своей системы команд.
  • Алгоритм должен быть дискретным и определённым.
  • Результативный алгоритм завершается и выдаёт результат.
  • Массовый алгоритм применим к различным наборам исходных данных.
  • Свойства алгоритма проверяют по способу выполнения команд и получаемому результату.

Частые вопросы по теме

Может ли один алгоритм иметь нескольких исполнителей?

Да, если разные исполнители понимают команды алгоритма одинаково и имеют необходимые действия в своей системе команд. Однако при описании алгоритма обычно указывают конкретного исполнителя, чтобы не возникало неоднозначности.

Почему рецепт приготовления блюда считают алгоритмом не всегда?

Рецепт похож на алгоритм, если содержит точные команды, порядок действий и понятные меры продуктов. Но слова вроде «добавьте немного» или «готовьте до готовности» могут быть непонятны исполнителю без опыта, поэтому такой рецепт не всегда обладает свойством определённости.

Чем алгоритм отличается от программы?

Алгоритм — это общий способ решения задачи, который можно описать словами, схемой или командами. Программа — это алгоритм, записанный на языке программирования и предназначенный для выполнения компьютером.

Обязательно ли алгоритм должен использовать числа?

Нет. Алгоритмы могут работать с текстами, изображениями, предметами и командами управления. Числа встречаются часто, потому что многие учебные задачи связаны с вычислениями.

Что произойдёт, если исполнитель не понимает одну из команд?

Он не сможет правильно выполнить алгоритм: остановится, пропустит действие или выполнит его неверно. Поэтому команда должна входить в систему команд исполнителя и быть однозначно ему понятна.

Спросить по теме параграфа

§ 3. Определение и свойства алгоритма

Учебник

Оглавление →
Предмет
Информатика
Класс
9 класс
Учебник
"Информатика", Семакин И.Г., Залогова Л.А., Русаков С.В., Шестакова Л.В.