Любой исполнитель алгоритмов выполняет команды. Понятие исполнителя алгоритма

2.1.1. ПОНЯТИЕ АЛГОРИТМА
2.1.2. ИСПОЛНИТЕЛЬ АЛГОРИТМА
2.1.3. СВОЙСТВА АЛГОРИТМА
2.1.4. ВОЗМОЖНОСТЬ АВТОМАТИЗАЦИИ ДЕЯТЕЛЬНОСТИ ЧЕЛОВЕКА

1. Ознакомьтесь с материалами презентации к параграфу, содержащейся в электронном приложении к учебнику. Дополняет ли презентация информацию, содержащуюся в тексте параграфа? Какими слайдами вы могли бы дополнить презентацию?

2. Что называется алгоритмом?
Алгоритм – это описание последовательности шагов в решении задачи, приводящих от исходных данных к требуемому результату.

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

4. Приведите примеры алгоритмов, изучаемых вами в школе.

5. Кто может быть исполнителем алгоритма?

6. Приведите пример формального исполнителя. Приведите пример, когда человек выступает в роли формального исполнителя.

7. От чего зависит круг решаемых задач исполнителя «компьютер»?
Круг решаемых задач исполнителя «Компьютер» зависит от установленных него программ и целей, для которых его использует человек.

8. Рассмотрите в качестве исполнителя текстовый процессор, имеющийся на вашем компьютере. Охарактеризуйте круг решаемых этим исполнителем задач и его среду.
Текстовых процессор, имеющийся на компьютере решает задачи по выводу уже набранного или набираемого текста на монитор, позволяет выполнить редактирование этого текста, изменить цвет, размер, вид шрифта, а так же сохранить этот документ в файл.

9. Что такое команда, система команд исполнителя?

10. Какие команды должны быть у робота, выполняющего функции: а) кассира в магазине; б) дворника; в) охранника?

11. Перечислит основные свойства алгоритма.

12. К чему может привести отсутствие какого-либо свойства у алгоритма? Приведите примеры.

13. В чем важность возможности формального исполнения алгоритма?

14. Последовательность чисел строится по следующему алгоритму: первые два числа последовательности принимаются равными 1; каждое следующее число последовательности принимается равным сумме двух предыдущих чисел. Запишите 10 первых членов этой последовательности. Выясните, как называется эта последовательност ь.
Последовательность Фибоначчи.
1, 1, 2, 3, 5, 8, 13, 21, 34, 55.

15. Некоторый алгоритм получает из одной цепочки символов новую цепочку следующим образом. Сначала записывается исходная цепочка символов, после нее записывается исходная цепочка символов в обратном порядке, затем записывается буква, следующая в русском алфавите за той буквой, которая в исходной цепочке стояла на последнем месте. Если в исходной цепочке на последнем месте стоит буква «Я», то в качестве следующей буквы записывается буква «А». Получившаяся цепочка является результатом работы алгоритма. Например, если исходная цепочка символов была «ДОМ», то результатом работы алгоритма будет цепочка «ДОММОДН». Дана цепочка символов «КОМ». Сколько букв «О» будет в цепочке символов, которая получается, если применить алгоритм к данной цепочке, а затем еще раз применить алгоритм к результату его работы?
1) КОММОКН.
2) КОММОКННКОММОКО.
Ответ : 5 штук.

16. Найдите в сети Интернет анимацию шагов алгоритма Эратосфена. С помощью алгоритма Эратосфена найдите все простые числа, не превышающие 50.

17. Что будет результатом исполнения Черепашкой (см. пример 5) алгоритма?
Повтори 8 {Направо 45 Вперед 45}
Правильный восьмиугольник.

18. Запишите алгоритм для исполнителя Вычислитель (см. пример 6), содержащий не более 5 команд:
А) получения из числа 3 числа 16;
Б) получения из числа 1 числа 25.

19. Система команд исполнителя Конструктор состоит из двух команд, которым присвоены номера:
1 – приписать 2
2 – разделить на 2

20. В какой клетке должен находиться исполнитель Робот (пример 7), чтобы после выполнения алгоритма 3241 в нее же и вернуться?
Робот должен находиться в клетке В.

Исполнитель алгоритма

Понятие алгоритма

Алгоритмические языки

Алгоритмы. Алгоритмизация.

Понятие алгоритма такое же основополагающее для информатики, как и понятие информации. Именно в связи с этим важно в нем разобраться.

Название "алгоритм" произошло от латинской формы имени величайшего среднеазиатского математика Мухаммеда ибн Муса ал-Хорезми (Alhorithmi), жившего в 783-850 гᴦ. В своей книге "Об индийском счете" он изложил правила записи натуральных чисел с помощью арабских цифр и правила действий над ними "столбиком", знакомые теперь каждому школьнику. В XII веке эта книга была переведена на латынь и получила широкое распространение в Европе.

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

В математике для решения типовых задач мы используем определœенные правила, описывающие последовательности действий. К примеру, правила сложения дробных чисел, решения квадратных уравнений и т. д. Обычно любые инструкции и правила представляют из себяпоследовательность действий, которые крайне важно выполнить в определœенном порядке. Для решения задачи нужно знать, что дано, что следует получить и какие действия и в каком порядке следует для этого выполнить. Предписание, определяющее порядок выполнения действий над данными с целью получения искомых результатов, и есть алгоритм.

Алгоpитм - заранее заданное понятное и точное пpедписание возможному исполнителю совеpшить определœенную последовательность действий для получения решения задачи за конечное число шагов.

Это - не определœение в математическом смысле слова, а, скорее, описание интуитивного понятия алгоритма, раскрывающее его сущность.

Понятие алгоритма является не только одним из главных понятий математики, но одним из главных понятий современной науки. Более того, с наступлением эры информатики алгоритмы становятся одним из важнейших факторов цивилизации.

Исполнитель алгоритма - это некоторая абстрактная или реальная (техническая, биологическая или биотехническая) система, способная выполнить действия, предписываемые алгоритмом.

Исполнителя хаpактеpизуют:

  • сpеда;
  • элементаpные действия;
  • cистема команд;
  • отказы.

Сpеда (или обстановка) - это "место обитания" исполнителя. Напpимеp, для исполнителя Pобота из школьного учебника сpеда - это бесконечное клеточное поле. Стены и закpашенные клетки тоже часть сpеды. А их pасположение и положение самого Pобота задают конкpетное состояние среды .

Система команд . Каждый исполнитель может выполнять команды только из некотоpого стpого заданного списка - системы команд исполнителя. Для каждой команды должны быть заданы условия пpименимости (в каких состояниях сpеды должна быть выполнена команда) и описаныpезультаты выполнения команды . Напpимеp, команда Pобота "ввеpх" должна быть выполнена, в случае если выше Pобота нет стены. Ее pезультат - смещение Pобота на одну клетку ввеpх.

После вызова команды исполнитель совеpшает соответствующее элементаpное действие .

Отказы исполнителя возникают, в случае если команда вызывается пpи недопустимом для нее состоянии сpеды.

В информатике универсальным исполнителœем алгоритмов является компьютер.

Исполнитель алгоритма - понятие и виды. Классификация и особенности категории "Исполнитель алгоритма" 2017, 2018.

Алгоритм и его свойства.

Алгоритм - понятное и точное предписание исполнителю выполнить конечную последовательность команд, приводящую от исходных данных к искомому результату.

Исполнитель алгоритма - это тот объект или субъект, для управления которым составлен алгоритм.

Система команд исполнителя (СКИ) - это вся совокупность команд, которые исполнитель умеет выполнять.

Свойства алгоритма: понятность, точность, конечность.

Понятность: алгоритм составляется только из команд, входящих в СКИ исполнителя.

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

Конечность (или результативность): выполнение алгоритма должно приводить к результату за конечное число шагов.

Среда исполнителя: обстановка, в которой функционирует исполнитель.

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

Полный набор данных: необходимый и достаточный набор данных для решения поставленной задачи (получения искомого результата).

Способы записи алгоритмов.

Наибольшую распространенность получили способы: графический , словесный и в виде программ для ЭВМ .

Графический способ предполагает использование определенных графических символов - блоков.

Наименование блока Обозначение блока Содержание
Процесс
Обработка информации
Принятие решения
Логический блок проверки истинности или ложности некоторого условия
Передача данных
Ввод или вывод информации
Пуск, остановка
Начало или конец программы
Модификация
Организация циклического процесса - заголовок цикла

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

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

При записи алгоритмов в виде программ для ЭВМ используются языки программирования - системы кодирования предписаний и правила их использования. Для записи алгоритмов в виде программ характерна высокая степень формализации.

Алгоритмы работы с величинами. Основные алгоритмические структуры.

Величина - это отдельный информационный объект, который имеет имя, значение и тип.

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

Величины бывают постоянными и переменными.

Постоянная величина (константа) не изменяет своего значения в ходе выполнения алгоритма. Константа может обозначаться собственным значением (числа 10, 3.5) или символическим именем (число ).

Переменная величина может изменять значение в ходе выполнения алгоритма. Переменная всегда обозначается символическим именем (X, A, R5 и т.п.).

Тип величины определяет множество значений, которые может принимать величина, и множество действий, которые можно выполнять с этой величиной. Основные типы величин: целый, вещественный, символьный, логический.

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

А + В; 2*X-Y; K + L - sin(Х)

Команда присваивания - команда исполнителя, в результате которой переменная получает новое значение. Формат команды:

имя переменной>:=выражение>

Исполнение команды присваивания происходит в таком порядке: сначала вычисляется, затем, полученное значение присваивается переменной.

Пример. Пусть переменная А имела значение 6. Какое значение получит переменная А после выполнения команды: А:= 2 * А - 1?
Решение. Вычисление выражения 2*А - 1 при А=6 даст число 11. Значит новое значение переменной А будет равно 11.

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

Команда ввода - команда, по которой значения переменных задаются через устройства ввода (например, клавиатуру).

Пример: ввод А - ввод значения переменной А с клавиатуры компьютера.

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

Пример: вывод X - значение переменной X выводится экран.

Команда ветвления - разделяет алгоритм на два пути в зависимости от некоторого условия; затем исполнение алгоритма выходит на общее продолжение. Ветвление бывает полное и неполное. Описание ветвления в блок-схемах и на Алгоритмическом языке:

Здесь под серией понимается одна или несколько последовательных команд; кв - конец ветвления.

Команда цикла обеспечивает повторное выполнение последовательности команд (тела цикла) по некоторому условию.

Цикл с предусловием - цикл, выполнение которого повторяется, пока истинно условие цикла:

Цикл с параметром - повторное выполнение тела цикла, пока целочисленный параметр пробегает множество всех значений от начального (In) до конечного (Ik):

Пример. Даны две простые дроби. Составить алгоритм получения дроби, являющейся результатом их деления.
Решение. В алгебраической форме решение задачи выглядит следующим образом:
а/в: с/d = а*d/b*c = m/n
Исходными данными являются четыре целые величины: а, b, с, d. Результат - два целых числа m и n.

алг деление дробей
цел а, b, с, d, m, n
нач ввод а, b, с, d
m:=a*d
n:=b*c
вывод "Числитель=", m
вывод "Знаменатель=", n
кои

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

  1. Ефимова О., Морозов В., Угринович Н. Курс компьютерной технологии с основами информатики. Учебное пособие для старших классов. - М.: ООО "Издательство АСТ"; АВF, 2000 г.
  2. Задачник-практикум по информатике. В 2-х томах/Под ред. И.Семакина, Е.Хеннера. - М.: Лаборатория Базовых Знаний, 2001 г.
  3. Угринович Н. Информатика и информационные технологии. 10-11 класс- М.: Лаборатория Базовых Знаний, АО "Московские учебники", 2001 г.

Задачи и тесты по теме "Алгоритмы и исполнители"

  • Управление исполнителем Чертёжник - Алгоритмы 6 класс

    Уроков: 4 Заданий: 9 Тестов: 1

  • 2 Заданий: 9 Тестов: 1

Уважаемый ученик!

Знание Темы "Алгоритмы и исполнители" необходимо прежде всего для дальнейшего изучения программирования. В качестве базы для изучения программирования выбран язык программирования QBasic. Мы отказались от идеи включить в наш курс Visual Basic или какой-либо другой язык объектно-ориентированного программирования, так как такой подход пока не получил широкого применения в большинстве средних школ РФ. Кроме того, в основе объектно-ориентированного программирования лежат принципы классического программирования в Dos.

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

В заключении отметим, что достижение "высшего пилотажа" в программировании возможно лишь при постоянной практике и решении конкретных прикладных задач.

Тема урока: «Алгоритмы. Исполнители алгоритмов»

Цель урока :

    c формировать понятие алгоритм и исполнитель алгоритма;

    формировать умение составлять простейшие алгоритмы.

    развивать творческие способности учащихся, логическое мышление, интереса к предмету умения планировать последовательность действий для достижения поставленной цели:

    воспитание информационной культуры учащихся.

План урока.

    Орг. Момент.

    Проверка домашнего задания.

    Изучение нового материала.

    Алгоритм.

    Исполнитель алгоритмов.

    Физкультминутка

    Закрепление изученного материала. Практическая работа.

    Подведение итогов, домашнее задание.

Ход урока:

    Орг. Момент.

Учитель: Здравствуйте! У нас сегодня с вами не совсем обычный урок. У нас в гостях учителя информатики из других школ. Откройте тетради и запишите сегодняшнее число и тему урока. А тема нашего урока зашифрована в ребусе.

(ученики разгадывают ребус, - тему урока “Алгоритм”).

Цель нашего урока – узнать что такое алгоритм и исполнитель алгоритма; познакомиться с системой команд исполнителя и с историей возникновения термина «алгоритм»; научиться составлять простейшие алгоритмы.

Но сначала мы проверим домашнее заданием и посмотрим удалось ли вам выяснить откуда произошло слово алгоритм.

Каждый человек в повседневной жизни решает множество задач самой разной сложности. Некоторые из этих задач столь просты и привычны, что мы решаем их не задумываясь, и даже не считаем задачами например “Купить хлеба”, “Собраться в школу”, «Приготовить чай» и тд.

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

Давайте рассмотрим пример: Нам нужно посадить дерево,

Что мы должны для этого сделать?

Расположите в правильном порядке действия

Дети дают словесное описание:

1. Возьми лопату и саженец

2. Выкопай ямку

3. Посади саженец в ямку

4. Засыпь ямку

5. Возьми лейку и полей саженец

6. Поставь лопату и лейку на место

Учитель: Решение этой задачи мы представили в виде последовательности действий, т.е. получили план действий. Давайте поменяем действия местами, получим ли мы нужный результат.

Ученики : нет

Вопросы:

1) Конечное или бесконечное число действий вам пришлось совершить, чтобы прийти к результату?

2) Можно ли поменять действия местами?

3) Может ли быть решена задача без четкого описания?

4) Как одним словом можно назвать последовательный порядок действий?

5) Что такое алгоритм?

Учитель: Запишите определение алгоритма:

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

Учитель: Рассмотрим рецепт приготовление бутерброда будет он вялятся алгоритмом

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

Это задание выполните в своих тетрадях.

Для проверки правильности выполнения задания поменяйтесь конспектами с соседом по парте.

Кто из вас не допустил ошибок при определении верной последовательности действий?

Учитель: А как вы думаете: Кто может разрабатывать алгоритмы?

Ученики Человек.

Разработка алгоритма - трудоемкая задача, требующая от человека глубоких знаний и больших затрат времени.

Учитель : Если есть алгоритм, т.е. конечная последовательность шагов, то должен быть и исполнитель этого алгоритма. Кто может быть исполнителем?

(ответ детей)

Учитель: Правильно, человек, техническое устройство, роботы, станки, спутники, игрушки.

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

Учитель: Собака может она быть исполнителем?

Назовите команды, которые она может выполнять

(сидеть, лежать, фас, апорт)

Каждый исполнитель способен выполнить определённый набор команд, которые образуют систему команд исполнителя (СКИ).

Система команд исполнителя - команды, которые может выполнять конкретный исполнитель.

Назовите исполнителей алгоритмов:

Приготовление торта - ___________________ кондитер;

Пошив одежды - _________ портной;

Ремонт обуви - ___________________ сапожник;

Пломбирование зуба - дантист (стоматолог);

Уборка мусора во дворе дворник

обучение детей в школе учитель

вождение автомобиля шофер;
ответ у доски ученик.

Учитель: как вы думаете, есть ли разница при выполнении алгоритма между человеком и техническим устройством? Если есть, то в чём состоит эта разница?

(При выполнении алгоритма человек задумывается над выполняемыми действиями, в зависимости от ситуации может изменить последовательность, а машина выполнит понятные ей команды в той последовательности в которой они записаны).

Учитель: Формально исполнять алгоритм – это значит не вникать в смысл выполняемых команд.

Компьютер – формальный исполнитель алгоритма.

Обстановка в которой действует исполнитель, называется средой исполнителя.

Физкультминутка

гимнастика для глаз.

глаза вверх-вниз (7 раз)
глаза вправо-влево (7 раз)
круговое вращение глаз по часовой стрелке (5 раз)
быстро поморгать,

закрыть глаза и посидеть спокойно, медленно считая до 5.

А теперь ребята встали.

Быстро руки вверх подняли.

В стороны, вперед, назад.

Повернулись вправо-влево.

Тихо сели, вновь за дело.

5. Закрепление изученного материала.

А теперь попробуем сами составлять алгоритмы

Покупка хлеба

    Взять у мамы деньги.

    Пойти в магазин.

    Выбрать нужные хлебобулочные изделия.

    Оплатить стоимость покупки.

    Принести хлеб домой.

Практическая работа:

Алгоритм рисования ракеты

    Взять инструмент «линия»

    Выделить рисунок

    Скопировать

    Вставить

    Отразить слева направо

    Соединить две части ракеты

Дополнить рисунок

(Класс делится на две группы): 1 группа работает за компьютерами Приложение 2

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

Подведение итогов урока

Ответьте на вопросы:

Что нового узнали на уроке?

Продолжите фразы:

    Алгоритм – это…

    Разрабатывать алгоритм может только…

    Исполняют алгоритмы…
    Что легче делать: составлять или выполнять алгоритмы? Почему?

Для алгоритма важно:

    конечная последовательность шагов;

порядок выполнения шагов.

ДОМАШНЕЕ ЗАДАНИЕ

Составить алгоритм «Собираюсь в школу»

Вспомните, где в сказках встречаются алгоритмы?

Приведите примеры алгоритмов встречающихся в сказках.

Приложение 1

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

Что у вас получилось?
Кто съел торт?
Что бывает в море?
Кто брат Сережи?

    Напиши слово МОРЕ.

    Поменяй местами первую и последнюю буквы в слове.

    Убери 2 первых буквы.

    Припиши слева букву О.

    Припиши слева букву Т.

    Припиши слева букву Ш.

ЧТО БЫВАЕТ В МОРЕ?

    Напиши слово ТОРТ.

    Убери третью букву.

    Замени последнюю букву на К.

    Прочитай слово справа налево.

КТО СЪЕЛ ТОРТ?

    Запиши имя СЕРЁЖА.

    Замени первую букву на букву Л.

    Убери третью букву.

    Убери вторую букву.

    Убери третью букву.

    Вставь третьей буквой букву Ш.

КТО БРАТ СЕРЁЖИ?

Составь АЛГОРИТМ «Переправа»

Приложение 2

Практическая работа: По заданному алгоритму выполнить работу в графическом редакторе.

Алгоритм рисования ракеты

    Взять инструмент «линия»

    Нарисовать контур левой стороны ракеты

    Выделить рисунок

    Скопировать

    Вставить

    Отразить слева направо

    Соединить две части ракеты

    С помощью инструмента «заливка» раскрасить ракету

Дополнить рисунок

АЛГОРИТМ «Переправа»

Человеку, находящемуся на берегу реки, нужно переправить на противоположный берег волка, козу и капусту. В лодку человек может взять одновременно только одного «пассажира». Нельзя оставить вместе волка с козой и козу с капустой.

    Переправить козу.

    Возвратиться самому.

    Переправить волка.

    Возвратиться вместе с козой.

    Переправить капусту.

    Возвратиться самому.

    Переправить козу.

Ключевые слова:

  • алгоритм
  • свойства алгоритма
    • дискретность
    • понятность
    • определённость
    • результативность
    • массовость
  • исполнитель
  • характеристики исполнителя
    • круг решаемых задач
    • среда
    • режим работы
    • система команд
  • формальное исполнение алгоритма

3.1.1. Понятие алгоритма

Каждый человек в повседневной жизни, в учёбе или на работе решает огромное количество задач самой разной сложности. Сложные задачи требуют длительных размышлений для нахождения решения; простые и привычные задачи человек решает не задумываясь, автоматически. В большинстве случаев решение каждой задачи можно разбить на простые этапы (шаги). Для многих таких задач (установка программного обеспечения, сборка шкафа, создание сайта, эксплуатация технического устройства, покупка авиабилета через Интернет и т. д.) уже разработаны и предлагаются пошаговые инструкции, при последовательном выполнении которых можно прийти к желаемому результату.

Пример 1 . Задача «Найти среднее арифметическое двух чисел» решается в три шага:

  • задумать два числа;
  • сложить два задуманных числа;
  • полученную сумму разделить на 2.

Пример 2 . Задача «Внести деньги на счёт телефона» подразделяется на следующие шаги:

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

Пример 3 . Этапы решения задачи «Нарисовать весёлого ёжика» представлены графически:

Нахождение среднего арифметического, внесение денег на телефонный счёт и рисование ежа - на первый взгляд совершенно разные процессы. Но у них есть общая черта: каждый из этих процессов описывается последовательностями кратких указаний, точное следование которым позволяет получить требуемый результат. Последовательности указаний, приведённые в примерах 1-3, являются алгоритмами решения соответствующих задач. Исполнитель этих алгоритмов - человек.

Алгоритм может представлять собой описание некоторой последовательности вычислений (пример 1) или шагов нематематического характера (примеры 2-3). Но в любом случае перед его разработкой должны быть чётко определены начальные условия (исходные данные) и то, что предстоит получить (результат). Можно сказать, что алгоритм - это описание последовательности шагов в решении задачи, приводящих от исходных данных к требуемому результату.

В общем виде схему работы алгоритма можно представить следующим образом (рис. 3.1):

Рис. 3.1.
Общая схема работы алгоритма

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

Анимации «Работа с алгоритмом», «Наибольший общий делитель», «Наименьшее общее кратное» (http://school-collection.edu.ru/) помогут вам вспомнить некоторые алгоритмы, изученные на уроках русского языка и математики.

Пример 4 . Некоторый алгоритм приводит к тому, что из одной цепочки символов получается новая цепочка следующим образом:

  1. Вычисляется длина (в символах) исходной цепочки символов.
  2. Если длина исходной цепочки нечётна, то к исходной цепочке справа приписывается цифра 1, иначе цепочка не изменяется.
  3. Символы попарно меняются местами (первый - со вторым, третий - с четвёртым, пятый - с шестым и т. д).
  4. Справа к полученной цепочке приписывается цифра 2.

Получившаяся таким образом цепочка является результатом работы алгоритма.

Так, если исходной была цепочка А#В, то результатом работы алгоритма будет цепочка #А1В2, а если исходной цепочкой была АБВ@, то результатом работы алгоритма будет цепочка БА@В2.

3.1.2. Исполнитель алгоритма

Каждый алгоритм предназначен для определённого исполнителя.

Различают формальных и неформальных исполнителей. Формальный исполнитель одну и ту же команду всегда выполняет одинаково. Неформальный исполнитель может выполнять команду по-разному.

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

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

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

Система команд исполнителя . Предписание исполнителю о выполнении отдельного законченного действия называется командой. Совокупность всех команд, которые могут быть выполнены некоторым исполнителем, образует систему команд данного исполнителя (СКИ). Алгоритм составляется с учётом возможностей конкретного исполнителя, иначе говоря, в системе команд исполнителя, который будет его выполнять.

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

Рассмотрим примеры исполнителей.

Пример 5 . Исполнитель Черепашка перемещается на экране компьютера, оставляя след в виде линии. Система команд Черепашки состоит из двух команд:

    Вперёд n (где n - целое число) - вызывает передвижение Черепашки на n шагов в направлении движения - в том направлении, куда развёрнуты её голова и корпус;

    Направо m (где m - целое число) - вызывает изменение направления движения Черепашки на m градусов по часовой стрелке.

Запись Повтори k [<Команда1> <Команда2> ... <Командаn>] означает, что последовательность команд в скобках повторится k раз.

Подумайте, какая фигура появится на экране после выполнения Черепашкой следующего алгоритма.

    Повтори 12 [Направо 4 5 Вперёд 20 Направо 45]

Пример 6 . Система команд исполнителя Вычислитель состоит из двух команд, которым присвоены номера:

    1 - вычти 1
    2 - умножь на 3

Первая из них уменьшает число на 1, вторая увеличивает число в 3 раза. При записи алгоритмов для краткости указываются лишь номера команд. Например, алгоритм 21212 означает следующую последовательность команд:

    умножь на 3
    вычти 1
    умножь на 3
    вычти 1
    умножь на 3

С помощью этого алгоритма число 1 будет преобразовано в 15: ((1-3-1)-3-1)-3 = 15.

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

    1 - Вверх
    2 - Вниз
    3 - Вправо
    4 - Влево

При выполнении каждой такой команды Робот перемещается в соседнюю клетку в указанном направлении. Если же в этом направлении между клетками стоит стена, то Робот разрушается. Что произойдёт с Роботом, если он выполнит последовательность команд 32323 (здесь цифры обозначают номера команд), начав движение из клетки А? Какую последовательность команд следует выполнить Роботу, чтобы переместиться из клетки А в клетку В, не разрушившись от встречи со стенами?

При разработке алгоритма:

  1. выделяются фигурирующие в задаче объекты, устанавливаются свойства объектов, отношения между объектами и возможные действия с объектами;
  2. определяются исходные данные и требуемый результат;
  3. определяется последовательность действий исполнителя, обеспечивающая переход от исходных данных к результату;
  4. последовательность действий записывается с помощью команд, входящих в систему команд исполнителя.

Можно сказать, что алгоритм - модель деятельности исполнителя алгоритмов.

3.1.3. Свойства алгоритма

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

Свойство дискретности означает, что путь решения задачи разделён на отдельные шаги (действия). Каждому действию соответствует предписание (команда). Только выполнив одну команду, исполнитель может приступить к выполнению следующей команды.

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

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

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

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

Пример 8 . Рассмотрим один из методов нахождения всех простых чисел, не превышающих n. Этот метод называется «решето Эратосфена», по имени предложившего его древнегреческого учёного Эратосфена.

Для нахождения всех простых чисел, не больших заданного числа n, следуя методу Эратосфена, нужно выполнить следующие шаги:

  1. выписать подряд все целые числа от 2 до n (2, 3, 4, ..., n);
  2. заключить в рамку 2 - первое простое число;
  3. вычеркнуть из списка все числа, делящиеся на последнее найденное простое число;
  4. найти первое неотмеченное число (отмеченные числа - зачёркнутые числа или числа, заключённые в рамку) и заключить его в рамку - это будет очередное простое число;
  5. повторять шаги 3 и 4 до тех пор, пока не останется неотмеченных чисел.

Более наглядное представление о методе нахождения простых чисел вы сможете получить с помощью анимации «Решето Эратосфена» (http://school-collection.edu.ru/).

Рассмотренная последовательность действий является алгоритмом, так как она удовлетворяет свойствам:

  • дискретности - процесс нахождения простых чисел разбит на шаги;
  • понятности - каждая команда понятна ученику 9 класса, выполняющему этот алгоритм;
  • определённости - каждая команда трактуется и выполняется исполнителем однозначно; имеются указания об очерёдности выполнения команд;
  • результативности - через некоторое число шагов достигается результат;
  • массовости - последовательность действий применима для любого натурального n.

Рассмотренные свойства алгоритма позволяют дать более точное определение алгоритма.

3.1.4. Возможность автоматизации деятельности человека

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

Решение задачи по готовому алгоритму требует от исполнителя только строгого следования заданным предписаниям.

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

Рассмотрим алгоритм, следуя которому первый игрок наверняка обеспечит себе выигрыш.

  1. Если число предметов в кучке кратно 3, то уступить ход противнику, иначе начинать игру.
  2. Своим очередным ходом каждый раз дополнять число предметов, взятых соперником, до 3 (число оставшихся предметов должно быть кратно 3).

Исполнитель может не вникать в смысл того, что он делает, и не рассуждать, почему он поступает так, а не иначе, то есть он может действовать формально. Способность исполнителя действовать формально обеспечивает возможность автоматизации деятельности человека. Для этого:

  1. процесс решения задачи представляется в виде последовательности простейших операций;
  2. создается машина (автоматическое устройство), способная выполнять эти операции в последовательности, заданной в алгоритме;
  3. человек освобождается от рутинной деятельности, выполнение алгоритма поручается автоматическому устройству.

Самое главное

Исполнитель - некоторый объект (человек, животное, техническое устройство), способный выполнять определённый набор команд. Формальный исполнитель одну и ту же команду всегда выполняет одинаково. Для каждого формального исполнителя можно указать: круг решаемых задач, среду, систему команд и режим работы.

Алгоритм - предназначенное для конкретного исполнителя описание последовательности действий, приводящих от исходных данных к требуемому результату, которое обладает свойствами дискретности, понятности, определённости, результативности и массовости.

Способность исполнителя действовать формально обеспечивает возможность автоматизации деятельности человека.

Вопросы и задания

  1. Что называют алгоритмом?
  2. Подберите синонимы к слову «предписание».
  3. Приведите примеры алгоритмов, изучаемых вами в школе.
  4. Кто может быть исполнителем алгоритма?
  5. Приведите пример формального исполнителя. Приведите пример, когда человек выступает в роли формального исполнителя.
  6. Какие команды должны быть у робота, выполняющего функции: а) кассира в магазине; б) дворника; в) охранника?
  7. От чего зависит круг решаемых задач исполнителя «компьютер»?
  8. Рассмотрите в качестве исполнителя текстовый процессор, имеющийся на вашем компьютере. Охарактеризуйте круг решаемых этим исполнителем задач и его среду.
  9. Что такое команда, система команд исполнителя?
  10. Перечислите основные свойства алгоритма.
  11. К чему может привести отсутствие какого-либо свойства у алгоритма? Приведите примеры.
  12. В чём важность возможности формального исполнения алгоритма?
  13. Последовательность чисел строится по следующему алгоритму: первые два числа последовательности принимаются равными 1; каждое следующее число последовательности принимается равным сумме двух предыдущих чисел. Запишите 10 первых членов этой последовательности.
  14. Некоторый алгоритм получает из одной цепочки символов новую цепочку следующим образом. Сначала записывается исходная цепочка символов, после нее записывается исходная цепочка символов в обратном порядке, затем записывается буква, следующая в русском алфавите за той буквой, которая в исходной цепочке стояла на последнем месте. Если в исходной цепочке на последнем месте стоит буква Я, то в качестве следующей буквы записывается буква А. Получившаяся цепочка является результатом работы алгоритма. Например, если исходная цепочка символов была ДОМ, то результатом работы алгоритма будет цепочка ДОММОДН. Дана цепочка символов КОМ. Сколько букв О будет в цепочке символов, которая получится, если применить алгоритм к данной цепочке, а затем ещё раз применить алгоритм к результату его работы?
  15. Найдите в сети Интернет анимацию шагов алгоритма Эратосфена. С помощью алгоритма Эратосфена найдите все простые числа, не превышающие 50.
  16. Что будет результатом исполнения Черепашкой (см. пример 5) алгоритма?
      Повтори 8 [Направо 45 Вперёд 45]
  17. Запишите алгоритм для исполнителя Вычислитель (пример 6), содержащий не более 5 команд:
      а) получения из числа 3 числа 16;
      б) получения из числа 1 числа 25.
  18. Система команд исполнителя Конструктор состоит из двух команд, которым присвоены номера:
      1 - приписать 2
      2 - разделить на 2

    По первой из них к числу приписывается справа 2, по второй число делится на 2. Как будет преобразовано число 8, если исполнитель выполнит алгоритм 22212? Составьте алгоритм в системе команд этого исполнителя, по которому число 1 будет преобразовано в число 16 (в алгоритме должно быть не более 5 команд).

  19. В какой клетке должен находиться исполнитель Робот (пример 7), чтобы после выполнения алгоритма 3241 в неё же и вернуться?