Здравствуйте! Я рад выступить в роли вашего школьного учителя и помочь вам разобраться с данным вопросом.
Давайте подробно разберем каждое высказывание и определим, верное оно или нет.
1. Любая инструкция, последовательность предписаний или план действий является алгоритмом.
Ответ: Неверное высказывание.
Пояснение: Не все инструкции, последовательности предписаний или планы действий можно называть алгоритмами. Алгоритм должен быть точно определенным и детализированным, чтобы исполнитель мог выполнить его без неоднозначностей.
2. Алгоритм всегда представляет собой описание некоторой последовательности вычислений.
Ответ: Верное высказывание.
Обоснование: Алгоритм действительно представляет собой описание последовательности вычислений или действий, которые должны быть выполнены для достижения определенной цели.
3. Примерами алгоритмом являются правила сложения, вычитания чисел, правила геометрических построений.
Ответ: Верное высказывание.
Пояснение: Правила сложения, вычитания чисел и правила геометрических построений действительно являются примерами алгоритмов. Они содержат последовательности действий, которые могут быть выполнены для получения определенного результата.
4. Каждый исполнитель выполнять определенный набор команд.
Ответ: Верное высказывание.
Пояснение: Каждый исполнитель, будь то человек или техническое устройство, должен выполнять определенный набор команд, указанных в алгоритме, чтобы достичь поставленной цели.
5. Исполнителем является только техническое устройство, которое выполнять команды.
Ответ: Неверное высказывание.
Пояснение: Исполнителем может быть не только техническое устройство, но и человек. Например, ученик может быть исполнителем, который будет выполнять команды, описанные в алгоритме.
6. Предписание исполнителю о выполнении отдельного законченного действия называется командой.
Ответ: Верное высказывание.
Пояснение: Предписание исполнителю о выполнении отдельного законченного действия действительно называется командой. Команды в алгоритме определяют действия, которые должен выполнить исполнитель для достижения цели алгоритма.
Надеюсь, эти пояснения и обоснования помогли вам понять и зачеркнуть неверные высказывания. Если у вас возникнут еще вопросы, не стесняйтесь задавать. Я всегда готов помочь вам с учебой!
Основные понятия, рассматриваемые на уроке:
· алгоритм;
· свойства алгоритма;
· способы записи алгоритмов.
Каждый человек в повседневной жизни, в учёбе или на работе решает огромное количество задач самой разной сложности. Сложные задачи требуют длительных размышлений для нахождения решения; простые и привычные задачи человек решает не задумываясь, автоматически. В большинстве случаев решение каждой задачи можно разбить на простые этапы (шаги). Для многих таких задач (установка программного обеспечения, сборка шкафа, создание сайта, эксплуатация технического устройства, покупка авиабилета через Интернет и т. д.) уже разработаны и предлагаются пошаговые инструкции, при последовательном выполнении которых можно прийти к желаемому результату.
Пример 1. Задача «Найти среднее арифметическое двух чисел» решается в три шага:
-
задумать два числа;
-
сложить два задуманных числа;
-
полученную сумму разделить на 2.
Пример 2. Задача «Внести деньги на счёт телефона» подразделяется на следующие шаги:
-
подойти к терминалу по оплате платежей;
-
выбрать оператора связи;
-
ввести номер телефона;
-
проверить правильность введённого номера;
-
вставить денежную купюру в купюроприёмник;
-
дождаться сообщения о зачислении денег на счет;
-
получить чек.
Нахождение среднего арифметического, внесение денег на телефонный счёт — на первый взгляд совершенно разные процессы. Но у них есть общая черта: каждый из этих процессов описывается последовательностями кратких указаний, точное следование которым позволяет получить требуемый результат. Последовательности указаний, приведённые в примерах 1-2, являются алгоритмами решения соответствующих задач. Исполнитель этих алгоритмов — человек.
Алгоритм может представлять собой описание некоторой последовательности вычислений или шагов нематематического характера. Но в любом случае перед его разработкой должны быть чётко определены начальные условия (исходные данные) и то, что предстоит получить (результат). Можно сказать, что алгоритм — это описание последовательности шагов в решении задачи, приводящих от исходных данных к требуемому результату.
Алгоритмами являются изучаемые в школе правила сложения, вычитания, умножения и деления чисел, грамматические правила, правила геометрических построений и т. д.
Каждый алгоритм предназначен для определённого исполнителя.
Исполнитель — это некоторый объект (человек, животное, техническое
устройство), способный выполнять определённый набор команд.
Различают формальных и неформальных исполнителей. Формальный исполнитель одну и ту же команду всегда выполняет одинаково. Неформальный исполнитель может выполнять команду по-разному.
Рассмотрим более подробно множество формальных исполнителей. Формальные исполнители необычайно разнообразны, но для каждого из них можно указать следующие характеристики: круг решаемых задач (назначение), среду, систему команд и режим работы.
Круг решаемых задач. Каждый исполнитель создаётся для решения некоторого круга задач — построения цепочек символов, выполнения вычислений, построения рисунков на плоскости т.д.
Среда исполнителя. Область, обстановку, условия, в которых действует исполнитель, принято называть средой данного исполнителя. Исходные данные и результаты любого алгоритма всегда принадлежат среде того исполнителя, для которого предназначен алгоритм.
Система команд исполнителя. Предписание исполнителю о выполнении отдельного законченного действия называется командой. Совокупность всех команд, которые могут быть выполнены некоторым исполнителем, образует систему команд данного исполнителя (СКИ). Алгоритм составляется с учётом возможностей конкретного исполнителя, иначе говоря, в системе команд
исполнителя, который будет его выполнять.
Режимы работы исполнителя.
Для большинства исполнителей предусмотрены режимы непосредственного управления и программного управления. В первом случае исполнитель ожидает команд от человека и каждую поступившую команду немедленно выполняет. Во втором случае исполнителю сначала задаётся полная последовательность команд (программа), а затем он выполняет все эти команды в автоматическом режиме. Ряд исполнителей работает только в одном из названных режимов.
Не любая инструкция, последовательность предписаний или план действий может считаться алгоритмом. Каждый алгоритм обязательно обладает свойствами, с которыми вы можете познакомиться, посмотрев следующий видеоролик.
Каждый алгоритм предназначен для определённого исполнителя.
Исполнитель — это некоторый объект (человек, животное, техническое устройство), способный выполнять определённый набор команд.
Различают формальных и неформальных исполнителей. Формальный исполнитель не вникает в смысл того, что он делает, и не рассуждает, почему он поступает так, а не иначе. Одну и ту же команду формальный исполнитель всегда выполняет одинаково. Неформальный исполнитель может выполнять команду по-разному.
Рассмотрим более подробно множество формальных исполнителей. Формальные исполнители необычайно разнообразны, но для каждого из них можно указать следующие характеристики: круг решаемых задач (назначение), среду, систему команд и режим работы.
Круг решаемых задач. Каждый исполнитель создаётся для решения некоторого круга задач — построения цепочек символов, выполнения вычислений, построения рисунков на плоскости и т. д.
Среда исполнителя. Область, обстановку, условия, в которых действует исполнитель, принято называть средой данного исполнителя. Исходные данные и результаты любого алгоритма всегда принадлежат среде того исполнителя, для которого предназначен алгоритм. Среду можно рассматривать как полный набор характеристик, описывающих состояние исполнителя.
Система команд исполнителя. Совокупность всех команд, которые могут быть выполнены некоторым исполнителем, образует систему команд данного исполнителя (СКИ). Алгоритм составляется с учётом возможностей конкретного исполнителя, иначе говоря, в системе команд исполнителя, который будет его выполнять.
Режимы работы исполнителя. Для большинства исполнителей предусмотрены режимы непосредственного (ручного) управления и программного управления. В первом случае исполнитель немедленно выполняет каждую поступившую команду. В таком режиме работает пульт кондиционера или телевизора. Во втором случае исполнителю сначала задаётся полная последовательность команд (программа), а затем он выполняет все эти команды в автоматическом режиме. Например, в память стиральной машины заложены разные достаточно сложные программы стирки, каждая из которых предполагает ряд последовательных действий.
Рассмотрим примеры исполнителей.
Пример 6
Исполнитель Черепаха перемещается на экране компьютера, оставляя след в виде линии. Система команд Черепахи состоит из следующих команд:
Вперёд п (где п — целое число) — вызывает передвижение Черепахи на п шагов в направлении движения — в том направлении, куда развёрнуты её голова и корпус;
Направо m (где m — целое число) — вызывает изменение направления движения Черепахи на m градусов по часовой стрелке.
Запись
Повтори к [<Команда 1> <Команда 2> … <Команда п>] означает, что последовательность команд в скобках повторится к раз.
Подумайте, какая фигура появится на экране после выполнения Черепахой следующего алгоритма:
Повтори 12 [Направо 45 Вперёд 20 Направо 45]
Пример 7
Система команд исполнителя Вычислитель состоит из двух команд, которым присвоены номера:
- вычти 1
- умножь на 3
Первая из них уменьшает число на 1, вторая увеличивает число в 3 раза. При записи алгоритмов для краткости указываются лишь номера команд.
Например, алгоритм 21212 означает следующую последовательность команд:
умножь на 3
вычти 1
умножь на 3
вычти 1
умножь на 3
С помощью этого алгоритма число 1 будет преобразовано в 15: ((1 • 3 — 1) • 3 — 1) • 3 = 15.
Пример 8
Исполнитель Робот действует на клетчатом поле, между соседними клетками которого могут стоять стены. Робот передвигается по клеткам поля и может выполнять следующие команды, которым присвоены номера:
При выполнении каждой такой команды Робот перемещается в соседнюю клетку в указанном направлении. Если же в этом направлении между клетками стоит стена, то Робот разрушается.
Что произойдёт с Роботом из примера 8, если он выполнит последовательность команд 32323 (здесь цифры обозначают номера команд), начав движение из клетки Л? Какую последовательность команд следует выполнить Роботу, чтобы переместиться из клетки А в клетку В, не разрушившись при этом от столкновения со стеной?
Пример 9
К пятизначному натуральному числу применяется следующий алгоритм:
- Вычислить сумму первых трёх цифр.
- Вычислить сумму последних двух цифр.
- Записать полученные два числа друг за другом в порядке возрастания (неубывания).
Пример работы алгоритма для числа 56789:
- 5 + 6 + 7 = 18.
- 8 + 9 = 17.
- Упорядочив, получаем 1718.
Выясним наименьшее и наибольшее пятизначные числа, в результате применения к которым этого алгоритма получается такой же результат.
В старших разрядах наименьшего пятизначного числа должны быть самые маленькие цифры из возможных; первая цифра должна быть как можно меньше и т. д. В нашем случае это: 17 = 1 + 7 + 9.
Есть единственный вариант, позволяющий получить вторую сумму из двух цифр: 18 = 9 + 9.
Составим наименьшее пятизначное число: 17999.
В старших разрядах наибольшего пятизначного числа должны быть самые большие цифры; первая цифра должна быть как можно больше и т. д. В нашем случае это 18 = 9 + 9 + 0.
Вторую сумму из двух цифр можно получить только так: 17 = 9 + 8.
Составим наибольшее пятизначное число: 99098.
При разработке алгоритма:
- выделяются фигурирующие в задаче объекты, устанавливаются свойства объектов, отношения между объектами и возможные действия с объектами;
- определяются исходные данные и требуемый результат;
- определяется последовательность действий исполнителя, обеспечивающая переход от исходных данных к результату;
- последовательность действий записывается с помощью команд, входящих в систему команд исполнителя.
Можно сказать, что алгоритм — план управления исполнителем.
Методическая разработка занятия по теме:
«Основы алгоритмизации. Алгоритмы и способы их описания»
Цели занятия:
Образовательная — Познакомить с понятием алгоритма, свойствами дискретности, понятности, точности, конечности, массовости, способами записи алгоритмов. Рассмотреть основные алгоритмические структуры: следования, ветвления, цикла.
Развивающая — развивать мышление, грамотную речь, навыки самоконтроля
развивать умения проводить анализ, синтез, сравнение, обобщать полученные знания, делать выводы
Воспитательная — воспитывать толерантное отношение к мнению другого человека, умение работать в группах, на недопустимость действий, нарушающих этические, правовые нормы работы с информацией
План занятия:
1. Организационный момент
2. Повторение пройденного материала:
-
Изложение нового материала.
4. Задание на дом.
5. Итог урока.
Ход занятия
-
Организационный момент. Сообщение темы, постановка цели урока. Знакомство с ходом проведения занятия.
-
Повторение пройденного материала:
1-й уровень Компьютерное тестирование (Приложение 1);
2-й уровень Работа по вопросам (Приложение 2);
3-й уровень Решение задач (Приложение 3);
-
Изложение нового материала.
-
Понятие алгоритма, свойства алгоpитма.
В науке о моделировании среди многих видов информационных моделей называются и алгоритмические модели. Попробуем разобраться, почему алгоритм можно назвать моделью и что он моделирует.
Как вам известно, алгоритм — это понятное и точное предписание конкретному исполнителю совершить конечную последовательность действий, приводящую к поставленной цели.
Сообщение о происхождении и развитии понятия алгоритм.
Из определения следует, что поставленная цель достигается через деятельность (последовательность действий) некоторого исполнителя.
Исполнитель — это некоторый объект (человек, техническое устройство), способный выполнять определённый набор команд, который составляет его СКИ.
Назовите исполнителей для приведённых ниже видов работ:
Стирка белья – (человек, стиральная машина)
Приготовление кофе – (человек, автомат)
Перевозка пассажиров в поезде – (машинист, поез)
Выдача заработной платы – (кассир)
Разработка рецептур на производстве – (технолог)
Сдача зачёта – (студент)
Набор текста на компьютере – (пользователь)
Создание текстового документа – (текстовый процессор, компьютер)
Различают формальных и неформальных исполнителей. Формальный исполнитель одну и ту же команду всегда выполняет одинаково. Формальное исполнение алгоритма обеспечивает возможность автоматизации деятельности человека. Неформальный исполнитель может выполнять команду по-разному.
Этапы деятельности от цели (постановки задачи) к результату:
-
определение цели;
-
планирование работы исполнителя;
-
работа исполнителя;
-
получение результата.
Где же здесь место алгоритму? Алгоритм — это детальный план работы исполнителя, описание последовательности элементарных действий. Но всякий план или описание есть информационная модель. Следовательно:
Алгоритм является информационной моделью деятельности исполнителя.
Свойства алгоритма (работа с электронным учебником ОИ 1 с. 49)
Не любая инструкция, последовательность предписаний или план действий может считаться алгоритмом. Каждый алгоритм обязательно обладает следующими свойствами: дискретность, понятность, точность, конечность и массовость.
-
дискретность (каждый шаг алгоритма выполняется отдельно от других);
т. е. решение задачи разделёно на отдельные шаги (действия). Каждому действию соответствует команда. Только выполнив одну команду, исполнитель может приступить к выполнению следующей.
-
понятность (в алгоритме используются только команды из СКИ);
-
точность (каждая команда определяет однозначное действие исполнителя);
в алгоритме нет команд, смысл которых может быть истолкован исполнителем неоднозначно.
-
конечность (за конечное число шагов алгоритма получается искомый результат).
-
массовость (алгоритм pазpабатывается в общем виде, т.е. должен быть пpименим для некотоpого класса задач)
Мини итог:
-
Дайте определение алгоритма.
-
Объясните почему алгоритм является информационной моделью деятельности исполнителя
-
Перечислите свойства алгоритма.
-
Что значит свойство дискретности, приведи пример.
-
Что значит свойство точности, приведи пример.
-
Способы записи алгоритмов. Существуют различные способы записи алгоритмов, основными среди них являются:
-
словесные;
-
словесное описание в виде набора высказываний на естественном языке, например правило умножения двух дробей; нахождения (НОД) натуральных чисел (алгоритм Евклида). Чтобы найти НОД двух чисел, составьте таблицу из двух столбцов и назовите столбцы X и Y. Запишите первое из заданных чисел в столбце Х, а второе ‑ в столбце Y. Если данные числа не равны, замените большее из них на результат вычитания из большего числа меньшего. Повторяйте такие замены до тех пор, пока числа не окажутся равными, после чего число из столбца Х считайте искомым результатом.
-
построчная запись ‑ это запись на естественном языке, может содержать математические выражения и формулы, к ней предъявляются дополнительных правила: каждое предписание записывается с новой строки; предписания нумеруются; исполнение алгоритма происходит в порядке возрастания номеров шагов. Например, Построчная запись алгоритма Евклида.
-
-
Обозначить первое из заданных чисел X, второе обозначить Y
-
Если X = Y, то перейти к п.8.
-
Если X Y, то перейти к п.4.
-
Заменить X на X – Y
-
Перейти к п.2.
-
Заменить Y на Y – X
-
Перейти к п.2.
-
Считать X искомым результатом.
-
графические;
-
последовательность рисунков;
-
структуропрограмма;
-
блок-схема – используют для наглядного представлениям решения задачи, предписания изображаются с помощью геометрических фигур, а последовательность указывается с помощью линий, соединяющих фигуры. Направления линий слева направо и сверху вниз считаются стандартными, и изображаются без стрелок, в противоположном случае — со стрелками. Вспомним некоторые условные обозначения блок-схем.
-
Например, Запись алгоритма Евклида с помощью блок‑схемы.
-
алгоритмические языки — формальные языки для записи алгоритмов. Каждый из них характеризуется: алфавитом — набором используемых символов; синтаксисом — системой правил, по которым из символов алфавита образуются правильные конструкции языка; семантикой — системой правил, строго определяющей смысл и способ употребления конструкций языка.
-
школьный алгоритмический язык. Для записи используется некоторое служебные слова: алг (алгоритм), дано, надо, нач (начало), кон (конец), арг (аргумент), рез (результат) и др. При записи алгоритмов в книгах служебные слова выделяются жирным шрифтом, в тетради и на доске — подчёркиванием.
-
Пример программы на школьном алгоритмическом языке:
Алгоритм, позволяющий из полного сосуда ёмкостью 12 л отлить половину, пользуясь двумя пустыми сосудами ёмкостью 8 и 5 л.
-
языки программирования (Turbo Pascal)
program primer_1;
var a, b: integer;
begin
writeln(‘Введите значение a=’);
read(a);
b:=2*a;
writeln(‘b = ‘,b);
end.
Мини итог:
-
Перечислите способы записи алгоритмов.
-
Какой из способов записи обладает большей наглядностью.
-
Основные алгоритмические структуры.
Работа с электронным учебником ДИ учебник Босова с. 73-91, 104 №28-30
Уметь распознавать по блок‑схеме основные алгоритмические конструкции.
Научиться определять значение переменной после выполнения фрагмента алгоритма.
По завершению работы тест в фронтальном режиме.
Разнообразие алгоритмов велико, но для записи любого алгоритма достаточно трёх основных алгоритмических структур: следования, ветвления, повторения. Это положение выдвинул и доказал Эдсгер Вибе Дейкстра (1930-2002) — выдающийся нидерландский учёный, идеи которого оказали огромное влияние на развитие компьютерной индустрии.
Следование — алгоритмическая конструкция, отображающая естественный, последовательный порядок действий. Алгоритмы, в которых используется только структура «следование», называются линейными алгоритмами.
Графическое представление алгоритмической конструкции «следование».
Пример. У исполнителя Робот есть 4 команды перемещения (вверх, вниз, влево и вправо), при выполнении каждой из них Робот перемещается на 1 клетку в соответствующем направлении. По команде закрасить Робот закрашивает клетку, в которой он находится. Запишем линейный алгоритм, исполняя который Робот нарисует на клетчатом поле следующий узор и вернётся в исходное положение, обозначенное звёздочкой:
Задание‑анимация Линейный алгоритм
Мини итог:
Приведите примеры линейного алгоритма:
а) из повседневной жизни;
б) из литературного произведения;
в) из любой предметной области, изучаемой в школе.
В тетради составить блок-схему алгоритма нахождение периметра прямоугольника. Один ученик записывает полученный алгоритм на доске, проверяя задание.
Ветвление — алгоритмическая структура, в зависимости от выполнения некоторого условия, совершается одна или другая последовательность действий. Алгоритмы называют разветвляющимися.
|
Структура «ветвление» |
|
|
а) полная форма |
а) неполная форма |
|
На алгоритмическом языке команды ветвления записываются так: |
|
|
Примеры |
|
Задание‑анимация Разветвляющийся алгоритм
Мини итог:
Приведите примеры разветвляющегося алгоритма:
а) из повседневной жизни;
б) из литературного произведения;
в) из любой предметной области, изучаемой в школе.
Составить блок-схему разветвляющегося алгоритма: задумайте число, прибавь 8, если полученное число меньше 22, то прибавь 5, иначе отнять 5. вывести полученный результат.
Повторение — алгоритмическая конструкция, представляющая собой последовательность действий, выполняемых многократно. Алгоритмы, содержащие конструкцию повторения, называют циклическими или циклами. Последовательность действий, многократно повторяющаяся в процессе выполнения цикла, называется телом цикла.
|
Типы циклов |
||
|
1)цикл с заданным условием продолжения работы; |
2)цикл с заданным условием окончания работы; |
3)цикл с заданным числом повторений. |
|
цикл – ПОКА, цикл с предусловием |
цикл-ДО, цикл с постусловием |
цикл-ДЛЯ, цикл с параметром |
Запись на алгоритмическом языке:
Выполняется цикл_ПОКА следующим образом:
1) проверяется условие (вычисляется значение логического выражения);
2)если условие удовлетворяется (Да), то выполняется тело цикла и снова удовлетворяется, то выполнение цикла заканчивается.
Возможны случаи, когда тело цикла не будет выполнено ни разу.
Запись на алгоритмическом языке:
Запись на алгоритмическом языке:
Выполняется цикл-ДЛЯ следующим образом: 1) параметру цикла присваивается начальное значение; 2) параметр цикла сравнивается с конечным значением; если параметр цикла не превышает конечное значение, то выполняется тело цикла, увеличивается значение параметра цикла на шаг и снова осуществляется проверка параметра цикла; если же параметр цикла превышает конечное значение, то выполнение цикла заканчивается.
В отличие от двух предыдущих конструкций (цикл-ПОКА, цикл-ДО) цикл-ДЛЯ имеет строго фиксированное число повторений, что позволяет избежать зацикливание, т.е ситуации, когда тело цикла выполняется бесконечно.
Задание‑анимация Циклический алгоритм
Мини итог:
Приведите примеры циклического алгоритма:
а) из повседневной жизни;
б) из литературного произведения;
в) из любой предметной области, изучаемой в школе.
Пример. Алгоритм переправы через реку
-
Закрепление материала в ходе выполнения фронтального тестирования. (Приложение 4)
-
Дом задание ОИ1 §9, 16 Составить алгоритм решения задачи: Из кучки, содержащей любое, большее трёх, количество каких-либо предметов, двое играющих по очереди берут по одному или по два предмета. Выигрывает тот, кто своим очередным ходом сможет забрать все оставшиеся предметы.
Ключевые слова:
• алгоритм
• свойства алгоритма (дискретность; понятность; определённость; результативность; массовость)
• исполнитель
• характеристики исполнителя (круг решаемых задач; среда; режим работы; система команд)
• формальное исполнение алгоритма
1. Понятие алгоритма
Каждый человек в повседневной жизни, в учёбе или на работе решает огромное количество задач самой разной сложности. Сложные задачи требуют длительных размышлений для нахождения решения; простые и привычные задачи человек решает не задумываясь, автоматически. В большинстве случаев решение каждой задачи можно разбить на простые этапы (шаги). Для многих таких задач (установка программного обеспечения, сборка шкафа, создание сайта, эксплуатация технического устройства, покупка авиабилета через Интернет и т. д.) уже разработаны и предлагаются пошаговые инструкции, при последовательном выполнении которых можно прийти к желаемому результату.
Пример 1. Задача «Найти среднее арифметическое двух чисел» решается в три шага:
1) задумать два числа;
2) сложить два задуманных числа;
3) полученную сумму разделить на 2.
Пример 2. Задача «Внести деньги на счёт телефона» подразделяется на следующие шаги:
1) подойти к терминалу по оплате платежей;
2) выбрать оператора связи;
3) ввести номер телефона;
4) проверить правильность введённого номера;
5) вставить денежную купюру в купюроприёмник;
6) дождаться сообщения о зачислении денег на счёт;
7) получить чек.
Нахождение среднего арифметического, внесение денег на телефонный счёт— на первый взгляд совершенно разные процессы. Но у них есть общая черта: каждый из этих процессов описывается последовательностями кратких указаний, точное следование которым позволяет получить требуемый результат. Последовательности указаний, приведённые в примерах 1-2, являются алгоритмами решения соответствующих задач. Исполнитель этих алгоритмов — человек.
Алгоритм может представлять собой описание некоторой последовательности вычислений (пример 1) или шагов нематематического характера (пример 2). Но в любом случае перед его разработкой должны быть чётко определены начальные условия (исходные данные) и то, что предстоит получить (результат). Можно сказать, что алгоритм — это описание последовательности шагов в решении задачи, приводящих от исходных данных к требуемому результату.
Алгоритмами также являются изучаемые в школе правила сложения, вычитания, умножения и деления чисел, многие грамматические правила, правила геометрических построений и т. д.
2. Исполнитель алгоритма
Каждый алгоритм предназначен для определённого исполнителя.
Исполнитель — это некоторый объект (человек, животное, техническое устройство), способный выполнять определённый набор команд.
Различают формальных и неформальных исполнителей. Формальный исполнитель одну и ту же команду всегда выполняет одинаково. Неформальный исполнитель может выполнять команду по-разному.
Рассмотрим более подробно множество формальных исполнителей. Формальные исполнители необычайно разнообразны, но для каждого из них можно указать следующие характеристики: круг решаемых задач (назначение), среду, систему команд и режим работы.
Круг решаемых задач. Каждый исполнитель создаётся для решения некоторого круга задач — построения цепочек символов, выполнения вычислений, построения рисунков на плоскости и т. д.
Среда исполнителя. Область, обстановку, условия, в которых действует исполнитель, принято называть средой данного исполнителя. Исходные данные и результаты любого алгоритма всегда принадлежат среде того исполнителя, для которого предназначен алгоритм.
Система команд исполнителя. Предписание исполнителю о выполнении отдельного законченного действия называется командой. Совокупность всех команд, которые могут быть выполнены некоторым исполнителем, образует систему команд данного исполнителя (СКИ). Алгоритм составляется с учётом возможностей конкретного исполнителя, иначе говоря, в системе команд исполнителя, который будет его выполнять.
Режимы работы исполнителя. Для большинства исполнителей предусмотрены режимы непосредственного управления и программного управления. В первом случае исполнитель ожидает команд от человека и каждую поступившую команду немедленно выполняет. Во втором случае исполнителю сначала задаётся полная последовательность команд (программа), а затем он выполняет все эти команды в автоматическом режиме. Ряд исполнителей работает только в одном из названных режимов.
При разработке алгоритма:
1) выделяются фигурирующие в задаче объекты, устанавливаются свойства объектов, отношения между объектами и возможные действия с объектами;
2) определяются исходные данные и требуемый результат;
3) определяется последовательность действий исполнителя, обеспечивающая переход от исходных данных к результату;
4) последовательность действий записывается с помощью команд, входящих в систему команд исполнителя.
Можно сказать, что алгоритм — модель деятельности исполнителя алгоритмов.
3. Свойства алгоритма
Не любая инструкция, последовательность предписаний или план действий может считаться алгоритмом. Каждый алгоритм обязательно обладает следующими свойствами: дискретность, понятность, определённость, результативность и массовость.
Свойство дискретности означает, что путь решения задачи разделён на отдельные шаги (действия). Каждому действию соответствует предписание (команда). Только выполнив одну команду, исполнитель может приступить к выполнению следующей команды.
Свойство понятности означает, что алгоритм состоит только из команд, входящих в систему команд исполнителя, т. е. из таких команд, которые исполнитель может воспринять и по которым может выполнить требуемые действия.
Свойство определённости означает, что в алгоритме нет команд, смысл которых может быть истолкован исполнителем неоднозначно; недопустимы ситуации, когда после выполнения очередной команды исполнителю неясно, какую команду выполнять следующей. Благодаря этому результат алгоритма однозначно определяется набором исходных данных: если алгоритм несколько раз применяется к одному и тому же набору исходных данных, то на выходе всегда получается один и тот же результат.
Свойство результативности означает, что алгоритм должен обеспечивать получение результата после конечного, возможно, очень большого, числа шагов. При этом результатом считается не только обусловленный постановкой задачи ответ, но и вывод о невозможности продолжения по какой-либо причине решения данной задачи.
Свойство массовости означает, что алгоритм должен обеспечивать возможность его применения для решения любой задачи из некоторого класса задач. Например, алгоритм нахождения корней квадратного уравнения должен быть применим к любому квадратному уравнению, алгоритм перехода улицы должен быть применим в любом месте улицы, алгоритм приготовления лекарства должен быть применим для приготовления любого его количества и т. д.
Рассмотренные свойства алгоритма позволяют дать более точное определение алгоритма.
Алгоритм — это предназначенное для конкретного исполнителя описание последовательности действий, приводящих от исходных данных к требуемому результату, которое обладает свойствами дискретности, понятности, определённости, результативности и массовости.
