Что является исполнителем при выполнении программы на компьютере
Понятие алгоритма непосредственно связано с представлением об исполнителе алгоритма (см. статью “Алгоритмы”).
Взаимосвязь понятий отражена на рисунке:
Схема функционирования исполнителя алгоритмов
Множество команд, которые может выполнять исполнитель, составляют систему команд исполнителя (СКИ). Алгоритм строится из команд СКИ. Объекты, над которыми исполнитель может совершать действия, составляют так называемую среду исполнителя. Данные и результаты, изображенные на рисунке, — это объекты, относящиеся к среде исполнителя.
Основные свойства алгоритма (дискретность, понятность, определенность, конечность) обеспечивают возможность формальной работы исполнителя. Отсюда следует, что исполнителем алгоритмов может быть автоматическое устройство. Класс задач, на решение которых ориентирован исполнитель, определяется его системой команд.
В методике обучения алгоритмизации принято выделять две категории исполнителей: исполнители, работающие “в обстановке”, и исполнители, работающие с величинами. Для первой категории средой исполнителя может быть лист (экран), на котором исполнитель формирует изображения (рисунки, чертежи и пр.); лабиринт, который исполнитель должен преодолеть; предметы, которые исполнитель должен расставить в определенном порядке, и т.п.
Учебные исполнители
Учебные исполнители алгоритмов — это программные средства, предназначенные для обучения алгоритмизации.
Исторически первым педагогическим программным средством, предназначенным для обучения детей алгоритмизации, был язык программирования LOGO, разработанный в конце 1960-х годов американским педагогом-психологом С.Пейпертом. В состав LOGO входит исполнитель Черепашка, назначение которого — изображение на экране чертежей, рисунков, состоящих из прямолинейных отрезков. Программы управления Черепашкой составляются из команд: вперед(а), назад(а), направо(в), налево(в), поднять хвост, опустить хвост. Имеется в виду, что Черепашка рисует хвостом, и если хвост опущен, то при перемещении проводится линия, а когда хвост поднят, то линия не рисуется. Кроме того, в языке имеются все основные структурные команды.
В целом LOGO предназначен для обучения структурной методике программирования. От LOGO происходит понятие черепашьей графики, используемой также и в некоторых профессиональных системах компьютерной графики.
Применение исполнителей, работающих “в обстановке”, получило широкое распространение в отечественных учебниках информатики как для начальной, так и для основной школы. Например, в пропедевтическом курсе “Роботландия” (авторы:
Ю.А. Первин, А.А. Дуванов) применяются исполнители “Машинист”, “Переливашка”, “Таракан” и др.
В курсе информатики для основной школы А.Г. Кушниренко и др. используются исполнители “Робот”, “Чертежник”. В учебнике информатики А.Г. Гейна и др. присутствует исполнитель “Паркетчик”.
В базовом курсе информатики И.Г. Семакина и др. используется учебный исполнитель “ГРИС” (ГРафический ИСполнитель). Есть и другие примеры.
Совокупность среды и СКИ исполнителя можно назвать архитектурой исполнителя. Основным дидактическим достоинством учебных исполнителей алгоритмов является наглядность архитектуры исполнителя. Успешность обучения алгоритмизации на учебных исполнителях алгоритмов объясняется тем, что ученикам понятен смысл решаемых задач и ясна архитектура исполнителя. Как известно, дидактический принцип наглядности является одним из важнейших в процессе любого обучения.
Компьютер как исполнитель алгоритмов
Понятие исполнителя используется и при обучении программированию для ЭВМ.
Составление любой программы для компьютера начинается с построения алгоритма. Всякий алгоритм (программа) составляется для конкретного исполнителя, в рамках его системы команд. О каком же исполнителе идет речь в теме “Программирование для ЭВМ”? Ответ очевиден: исполнителем является компьютер. Точнее говоря, исполнителем является комплекс “компьютер + система программирования (СП)”. Программист составляет программу на том языке, на который ориентирована СП. Иногда в литературе по программированию такой комплекс называют “виртуальной ЭВМ”. Например, компьютер с работающей системой программирования на Бейсике называют “Бейсик-машина”; компьютер с работающей системой программирования на Паскале называют “Паскаль-машина” и т.п. Схематически это отражено на рисунке.
Взаимодействие программиста с компьютером
Методические рекомендации
Обучение методам построения алгоритмов — один из наиболее отработанных разделов школьной информатики. Традиционно применяемым дидактическим средством в этом разделе являются учебные исполнители алгоритмов. Некоторые из таких исполнителей перечислены выше. Для целей обучения подходит любой исполнитель, который удовлетворяет следующим условиям:
· это должен быть исполнитель, работающий “в обстановке”;
· этот исполнитель должен имитировать процесс управления некоторым реальным объектом (черепахой, роботом и др.);
· в системе команд исполнителя должны быть все структурные команды управления (ветвления, циклы);
· исполнитель позволяет использовать вспомогательные алгоритмы (процедуры).
Последние два пункта означают, что на данном исполнителе можно обучать структурной методике алгоритмизации. Всякое педагогическое средство должно соответствовать поставленной учебной цели. Главной целью раздела алгоритмизации является овладение учащимися структурной методикой построения алгоритмов.
Как уже говорилось выше, успешность использования учебных исполнителей для обучения алгоритмизации связана с понятностью для учеников их архитектуры (среды и СКИ). Получив условие задачи, ученик “проектирует” решение этой задачи на архитектуру исполнителя и в результате получает алгоритм решения задачи данным исполнителем.
Аналогичный подход должен лежать в основе методики обучения программированию решения вычислительных задач. Исполнителем вычислительных алгоритмов (алгоритмов работы с величинами) является компьютер. Предлагается следующий подход к описанию архитектуры такого исполнителя.
В состав исполнителя входят: память, процессор, устройство ввода, устройство вывода. Память используется для хранения данных и программы, процессор реализует вычисления и управляет работой всех устройств компьютера; устройства ввода (например, клавиатура) и вывода (например, монитор) обеспечивают взаимодействие между компьютером и человеком. Под всякую величину, используемую в алгоритме, выделяется ячейка памяти.
Основные (неструктурные) команды
СКИ исполнителя
Замечание: на первых порах вместо полного описания команды: вывод можно ограничиться частным вариантом: вывод . Позже (для языков программирования) ее следует уточнить.
Вот как нужно пояснять процесс выполнения алгоритма сложения двух чисел:
Описанный механизм выполнения алгоритма схематически представлен на рисунке.
Чтобы достичь цели, следует идти к ней шаг за шагом, и чем подробнее и проще инструкция, тем легче выполнить все этапы процесса. Поэтому, каждую команду нужно писать с учетом опыта, возраста и мастерства исполнителя. Этого принципа следует придерживаться не только в обычной жизни, но и во время создания программ для компьютера. А чтобы изучать языки программирования весело и просто, следует делать это в учебной среде КуМир, на приложениях Чертежник, Робот, другие.
План урока:
Алгоритм – исполнитель
Детальные инструкции значительно упрощают решение сложных задач для исполнителя. А пошаговые рекомендации позволяют автоматизировать процесс. Каждый такой алгоритм создается для определенного исполнителя. Если им будет маленький ребенок, команды будут одними, если взрослый человек – другими, компьютер или робот – третьими.
Примеры задач из жизни и люди, которые их обычно решают:
- прием ЕГЭ – члены комиссии;
- управление поездом, перевозка пассажиров, груза – машинист;
- написание статей – журналист;
- забота о детях – родители.
Если вопрос касается профессиональной сферы, то работники опираются на должностные и рабочие инструкции, в них описан круг обязанностей и порядок их выполнения. Если же это социальные задачи, люди ориентируются на то, как это делалось в семье их родителей, как это делают другие люди или как описано в литературе.
Виды исполнителей, их особенности
Одной из основных классификаций является деление исполнителей по отношению к тому, как они выполняют. Одушевленных называют неформальными, потому что они понимают, что делают, могут анализировать и даже видоизменять команды при изменении условий. Неодушевленных – формальными исполнителями, так как они строго выполняют команды, механически, не понимая, что делают, не задумываясь над задачей или промежуточными итогами.
Хорошим примером формального исполнителя является любая программируемая система, иногда даже человек, который подходит к выполнению определенных задач бездумно, как робот, не только не волнуясь о результате, и не анализируя происходящее.
Алгоритм пишут, учитывая особенности того, для кого он предназначен. Для некоторых людей сухого набора команд мало, им нужны дополнительные инструменты (изображения, примеры). Инструкция будет разной, если написана она для конкретного Игоря Козакова или для учеников 6-класса. Точно также команды для бездомной собаки Жуля будут одни, а для дрессированных полицейских овчарок – другие.
Характеристики исполнителей
Перед написанием алгоритма следует определиться не только с конечной задачей, но и с особенностями исполнителей. Это позволит использовать правильные слова, а также учесть все факторы, которые могут повлиять на конечный результат.
- круг решаемых задач – существует определенных объем заданий по типу и объему, которые под силу конкретному человеку. Это значит, что нет смысла просить собаку прочесть газету, даже если инструкция будет написана с максимальной детализацией. Также не рационально просить ученого физика спеть рок-оперу. Но всегда есть исключения;
- среда – место, окружение, где исполнитель будет выполнять команды. При написании рабочей инструкции высотнику следует учитывать технику безопасности, правила работы с высотным оборудованием, медицинские аспекты и непосредственно то, что будет делать этот специалист (управлять краном, заниматься отделкой или строительством зданий);
- режим непосредственного выполнения команд исполнителю или программного управления. В первом случае даются простые единичные указания, которые сразу выполняются (например, команда собаке «Сидеть»). Во втором случае задается множество заданий, выполняемых в определенном порядке, с соблюдением условий, указанных в программе/алгоритме (пошаговый рецепт приготовления борща);
- СКИ – любой алгоритм рассчитан на конкретного исполнителя, поэтому написан при помощи понятной ему системы команд (СКИ). В случае с живым существом (человек, собака), это будут слова, которые он понимает. Для неживого (робот, ПК) – строгие команды, и правила оформления, которые нельзя изменять (язык программирования).
СКИ – набор простейших команд, понятных данному исполнителю.
Перспективными исполнителями являются роботы, автоматы и компьютеры. Несмотря на формальность работы, их можно запрограммировать и «научить» очень и очень многому. Даже если это светофор, стиральная машинка, не говоря уже о роботах, космических кораблях, персональных или научных компьютерах.
Особенно удивительно выглядит компьютер, ведь он:
- универсальный – позволяет запрограммировать разные процессы (визуальные, звуковые, текстовые);
- многозадачный – готов рисовать, писать, считать, рассчитывать и транслировать, даже одновременно;
- пользовательский – его интерфейс можно сделать «под пользователя».
Пользователи ПК могут использовать готовые приложения, чтобы задать ту или иную команду своему смартфону, компьютеру или другой умной технике. Или же самостоятельно написать «внутренности», программный код, задавая приложению те характеристики и функции, которые нужны.
Учебная среда Исполнителя
Для того, что сделать мир программирования и алгоритмизации ярким и веселым, были разработаны различные приложения. Существует учебная среда Исполнитель Кумир для учащихся, в которую входят Чертежник, Робот, Редактор и другие.
Различные приложения отличаются интерфейсом и набором команд, но общий принцип у них одинаковый – пользователь учится писать инструкции для компьютерного исполнителя (робот, черепашка, чертежник и другие). Он дает ему команды, изучая программирование от единичных заданий, постепенно переходя от элементарных линейных алгоритмов до циклических с условиями. Обучение проходит в игровой форме, при помощи кнопок. Далее этап написания команд на русском языке. На финальном этапе ученик осваивает СКИ на языке программирования (на английском).
Если ученик/пользователь дает задание исполнителю, которое невозможно выполнить физически (непреодолимое препятствие), математически (деление на ноль) – запускается система отказов.
Сравнительная характеристика основных приложений:
Исполнитель «Черепашка»
При помощи простых команд и красочного интерфейса пользователь легко освоит построение алгоритмов. На первом этапе в игровой форме, используя готовые кнопки и цвета. На следующем уровне уже можно программировать, записывая команды на русском по всем правилам программирования.
Исполнитель «Робот»
На клеточном поле произвольно выставляется робот, который обозначается любым удобным символом (*, Р, ●, ♦, другими). Задания пишутся при помощи системы команд исполнителя Робот.
В этой учебной системе можно самому рисовать стены, выращивать клумбы, задавать маршрут прохождения. Можно закрашивать клетки, даже если они до этого были цветные. Делать это можно при помощи линейных алгоритмов, с разветвлением или с повторением цикличных команд.
Для программирования используются простейшие алгоритмы и элементы программирования (правила написания команд, условия, обязательные символы), которые применяются в большинстве компьютерных языков.
В случае ошибок система выдает отказ. Отказы могут быть в случае неправильного написания элемента программы, противоречивых команд или логических ошибок. Отказ в виде ответа Робота: «Не могу» (пройти через стену), «Не понимаю» (ошибочно написана команда) или результат не тот, что нужен (перепутаны горизонталь и вертикаль).
Составляем алгоритм для Робота
- Нужно заставить робота двигаться вдоль стены, закрашивая клетки, которые он прошел:
- Следует высадить цветы по пути следования робота, но чтобы он не разрушился (не упирался в стены):
Как видно из этого примера, в некоторых случаях команды многократно повторяются. Тогда используют подзадачи и циклы.
Основная программа с именем подзадачи:
Алгоритм Рисунок
Начало
Алгоритм Узор (5 раз);
Конец.
Указав только имя подзадачи в теле программы, пользователь вызывает ее столько раз, сколько указано в скобках. Полный текст вспомогательного алгоритма описывается под основным.
Алгоритм Узор
Начало
конец.
Если не использовать подзадачи, которые повторяются много раз, то размер программы увеличится в десятки раз.
Чтобы выполнить движение, робот может выполнять команды проверки наличия стены на пути: Сверху/снизу/слева/справа свободно?
Используя условие «если», робот проверяет дорогу и только тогда идет:
(Снизу_свободно), то вниз (3)
Или условие «пока» есть куда идти (нет стены сверху), робот будет идти прямо вверх и сажать цветы.
Исполнитель «Чертежник»
Учебная система «Исполнитель Чертежник» используется для рисования графиков, чертежей в системе координат (x;y). Поле поделено на пиксели, в параметрах можно указать размер поля и количество точек по осям.
Перо – инструмент чертежника, его, как настоящее, можно поднимать и опускать на рисовальное поле, перемещать в нужное место, менять цвет и добавлять надпись. Если перо приподнято, то не остается следа, если опущено – за ним тянется линия.
Во время рисования видно труженика Чертежника, который выполняет команды. Но его иконку можно скрыть, тогда будет виден только карандаш.
Начинать работу следует с команды «использовать Чертежник». Писать можно одиночные команды, а можно целые серии. Правила написания программы соответствуют основам большинства компьютерных языков. Это облегчит в будущем изучение программированию, улучшит понимание процесса построения алгоритмов, начиная от линейных и заканчивая циклическими.
На следующем этапе можно перейти к написанию алгоритма на языке Pascal. Процесс построения аналогичен, только команды пишутся на языке программирования (на английском):
uses Drawman;
begin
PenUp;
ToPoint (1, 1);
PenDown;
ToPoint (1, 5);
ToPoint (3, 5);
ToPoint (2, 4);
ToPoint (3, 3);
ToPoint (1, 3);
end.
Освоив построение алгоритмов на родном языке, запомнив правила написания команд, пользователь с легкостью перейдет на задания, написанные на языке программирования.
Вспомогательные алгоритмы или процедуры
Во время работы с учебными исполнителями приходится часто выполнять однотипные команды или серии команд. Намного удобнее создать вспомогательные подзадачи или процедуры. Таким блокам команд присваивается имя и потом не нужно каждый раз повторять ту или иную последовательность операций, достаточно указать имя вспомогательной процедуры.
Сайт учителя информатики. Технологические карты уроков, Подготовка к ОГЭ и ЕГЭ, полезный материал и многое другое.
§ 15. Исполнители вокруг нас
ИНФОРМАТИКА. 6 КЛАССА. БОСОВА Л.Л. ОГЛАВЛЕНИЕ
Разнообразие исполнителей
Ключевые слова:
• исполнитель
• формальный исполнитель
• система команд исполнителя
• автоматизация
Современного человека окружает множество разнообразных технических устройств: телевизор, магнитофон, фотоаппарат, телефон, стиральная машина, автомобиль и пр. Каждое из этих устройств предназначено для решения своей задачи и способно выполнять некоторый ограниченный набор действий, или команд.
Исполнитель — это некоторый объект (человек, животное, техническое устройство), способный выполнять определённый набор команд. Команды, которые может выполнить конкретный исполнитель, образуют систему команд исполнителя (СКИ).
Исполнители бывают разные. Одним из самых простых исполнителей можно считать кнопку включения/выключения электропитания на корпусе монитора.
Система команд исполнителя — CD-плеера приведена на рис. 56.
Более сложным исполнителем является современная стиральная машина, в электронную память которой заложены разработанные инженерами различные программы стирки белья. Весь процесс стирки (замачивание, отстирывание, полоскание, отжим, сушка) машина выполняет автоматически, без участия человека, но по программе, выбранной человеком.
Среди автоматических устройств наиболее совершенными исполнителями являются роботы. Едва ли человек сможет так быстро, безошибочно и качественно собрать сложнейшую деталь, как это делает робот-манипулятор на автоматизированном производстве. В наше время созданы человекоподобные роботы и роботы-игрушки, напоминающие домашних животных.
Ещё один пример исполнителя — компьютер. Его отличительная черта — универсальность. Вы знакомы с компьютерными программами, предназначенными для обработки текстовой, числовой и графической информации, с обучающими программами и компьютерными играми. Кроме того, существуют программы, с помощью которых компьютер управляет работой других связанных с ним устройств (исполнителей).
Во многих случаях и сам человек является исполнителем алгоритмов. Например, каждый из нас при переходе улицы является исполнителем следующего алгоритма:
1) остановись на тротуаре;
2) посмотри налево;
3) если транспорта нет, то иди до середины улицы и остановись, иначе выполняй п. 2;
4) посмотри направо;
5) если транспорта нет, то иди до противоположного тротуара, иначе выполняй п. 4.?
Исполнителями большого количества алгоритмов становятся школьники, выполняющие многочисленные письменные и устные задания.
Формальные исполнители
Выделяют два типа исполнителей: формальных и неформальных. Формальный исполнитель одну и ту же команду всегда выполняет одинаково. Неформальный исполнитель может выполнять команду по-разному.
Например, при многократном прослушивании диска с любимой музыкой вы можете быть уверены, что она воспроизводится проигрывателем (формальным исполнителем) одинаково. Но вряд ли кому-нибудь из певцов (неформальному исполнителю) удастся несколько раз совершенно одинаково исполнить песню из своего репертуара.
Как правило, человек выступает в роли неформального исполнителя. Формальными исполнителями являются преимущественно технические устройства. Человек в роли неформального исполнителя сам отвечает за свои действия. За действия формального исполнителя отвечает управляющий им объект.
Рассмотрим более подробно множество формальных исполнителей. Формальные исполнители необычайно разнообразны, но для каждого из них можно указать круг решаемых задач, среду, систему команд, систему отказов и режимы работы.
1. Круг решаемых задач. Каждый исполнитель создается для решения определенного класса задач.
2. Среда исполнителя. Область, обстановку, условия, в которых действует исполнитель, принято называть средой данного исполнителя.
3. Система команд исполнителя. Предписание о выполнении отдельного законченного действия исполнителя называется командой. Совокупность всех команд, которые могут быть выполнены некоторым исполнителем, образует СКИ — систему команд исполнителя.
4. Система отказов исполнителя. Отказ «не понимаю» возникает тогда, когда исполнителю подается команда, не входящая в его СКИ. Отказ «не могу» возникает тогда, когда команда из СКИ не может быть им выполнена в конкретных условиях среды.?
5. Режимы работы исполнителя. Для большинства исполнителей предусмотрены режимы непосредственного и программного управления. В первом случае исполнитель ожидает команд от управляющего объекта и немедленно выполняет каждую поступившую команду. Во втором случае исполнителю сначала задаётся полная последовательность команд (программа), а затем он выполняет все эти команды в автоматическом режиме. Ряд исполнителей работает только в одном из названных режимов.
Автоматизация
Разработка алгоритма — трудоёмкая задача, требующая от человека глубоких знаний и больших затрат времени. Решение задачи по готовому алгоритму требует от исполнителя только строгого следования заданным предписаниям. Исполнитель не вникает в смысл того, что он делает, и не рассуждает, почему он поступает так, а не иначе, — он действует формально. С этим связана возможность автоматизации деятельности человека — замена части труда человека работой машин (автоматических устройств):
• процесс решения задачи представляется в виде последовательности простейших операций;
• создаётся машина, способная выполнять эти операции в последовательности, заданной в алгоритме;
• выполнение алгоритма поручается автоматическому устройству; человек освобождается от рутинной деятельности.
Вопросы и задания
1. Кого или что называют исполнителем алгоритма?
2. Определите типы исполнителей в предложенных ситуациях. Будьте готовы обосновать свой ответ.
а) Симфонический оркестр исполняет музыкальное произведение.
б) Ученик 6 класса выполняет домашнее задание по математике.
в) Фармацевт готовит лекарство по рецепту.
г) Врач устанавливает причину плохого самочувствия пациента.
д) Автомат на конвейере наполняет бутылки лимонадом.
е) Компьютер выполняет программу проверки правописания.
3. Горничная каждое утро, убирая свой этаж, пылесосит ковровую дорожку. Назовите исполнителей в этой задаче. Укажите их типы.
4. Приведите 2-3 примера формальных исполнителей. Приведите пример, когда человек выступает в роли формального исполнителя.
5. Приведите примеры исполнителей, встречающихся в русских народных сказках. Определите их типы.
6. В системе КуМир запустите исполнителя Кузнечик. Изучите среду исполнителя и его систему команд (СКИ). Продумайте команды, с помощью которых Кузнечик перекрасит квадратики над числами 1, 2 и 3. С помощью пульта организуйте работу Кузнечика в непосредственном режиме.
Сайт учителя информатики. Технологические карты уроков, Подготовка к ОГЭ и ЕГЭ, полезный материал и многое другое.
Информатика. 8 класса. Босова Л.Л. Оглавление
Ключевые слова:
- алгоритм
- свойства алгоритма
- дискретность
- понятность
- определённость
- результативность
- массовость
- исполнитель
- характеристики исполнителя
- круг решаемых задач
- среда
- режим работы
- система команд
- формальное исполнение алгоритма
2.1.1. Понятие алгоритма
Каждый человек в повседневной жизни, в учёбе или на работе решает огромное количество задач самой разной сложности. Сложные задачи требуют длительных размышлений для нахождения решения; простые и привычные задачи человек решает не задумываясь, автоматически. В большинстве случаев решение каждой задачи можно разбить на простые этапы (шаги). Для многих таких задач (установка программного обеспечения, сборка шкафа, создание сайта, эксплуатация технического устройства, покупка авиабилета через Интернет и т. д.) уже разработаны и предлагаются пошаговые инструкции, при последовательном выполнении которых можно прийти к желаемому результату.
Пример 1. Задача «Найти среднее арифметическое двух чисел» решается в три шага:
- 1) задумать два числа;
- 2) сложить два задуманных числа;
- 3) полученную сумму разделить на 2.
Пример 2. Задача «Внести деньги на счёт телефона» подразделяется на следующие шаги:
Пример 3. Этапы решения задачи «Нарисовать весёлого ёжика» представлены графически:
Нахождение среднего арифметического, внесение денег на телефонный счёт и рисование ежа — на первый взгляд совершенно разные процессы. Но у них есть общая черта: каждый из этих процессов описывается последовательностями кратких указаний, точное следование которым позволяет получить требуемый результат. Последовательности указаний, приведённые в примерах 1-3, являются алгоритмами решения соответствующих задач. Исполнитель этих алгоритмов — человек.
Алгоритм может представлять собой описание некоторой последовательности вычислений (пример 1) или шагов нематематического характера (примеры 2-3). Но в любом случае перед его разработкой должны быть чётко определены начальные условия (исходные данные) и то, что предстоит получить (результат). Можно сказать, что алгоритм — это описание последовательности шагов в решении задачи, приводящих от исходных данных к требуемому результату.
В общем виде схему работы алгоритма можно представить следующим образом (рис. 2.1).
Алгоритмами являются изучаемые в школе правила сложения, вычитания, умножения и деления чисел, многие грамматические правила, правила геометрических построений и т. д.
Пример 4. Некоторый алгоритм приводит к тому, что из одной цепочки символов получается новая цепочка следующим образом:
- 1. Вычисляется длина (в символах) исходной цепочки символов.
- 2. Если длина исходной цепочки нечётна, то к исходной цепочке справа приписывается цифра 1, иначе цепочка не изменяется.
- 3. Символы попарно меняются местами (первый — со вторым, третий — с четвёртым, пятый — с шестым и т. д).
- 4. Справа к полученной цепочке приписывается цифра 2.
Получившаяся таким образом цепочка является результатом работы алгоритма.
2.1.2. Исполнитель алгоритма
Каждый алгоритм предназначен для определённого исполнителя.
Исполнитель — это некоторый объект (человек, животное, техническое устройство), способный выполнять определённый набор команд.
Различают формальных и неформальных исполнителей. Формальный исполнитель одну и ту же команду всегда выполняет одинаково. Неформальный исполнитель может выполнять команду по-разному.
Рассмотрим более подробно множество формальных исполнителей. Формальные исполнители необычайно разнообразны, но для каждого из них можно указать следующие характеристики: круг решаемых задач (назначение), среду, систему команд и режим работы.
Круг решаемых задач. Каждый исполнитель создаётся для решения некоторого круга задач — построения цепочек символов, выполнения вычислений, построения рисунков на плоскости и т. д.
Среда исполнителя. Область, обстановку, условия, в которых действует исполнитель, принято называть средой данного исполнителя. Исходные данные и результаты любого алгоритма всегда принадлежат среде того исполнителя, для которого предназначен алгоритм.
Система команд исполнителя. Предписание исполнителю о выполнении отдельного законченного действия называется командой. Совокупность всех команд, которые могут быть выполнены некоторым исполнителем, образует систему команд данного исполнителя (СКИ). Алгоритм составляется с учётом возможностей конкретного исполнителя, иначе говоря, в системе команд исполнителя, который будет его выполнять.
Режимы работы исполнителя. Для большинства исполнителей предусмотрены режимы непосредственного управления и программного управления. В первом случае исполнитель ожидает команд от человека и каждую поступившую команду немедленно выполняет. Во втором случае исполнителю сначала задаётся полная последовательность команд (программа), а затем он выполняет все эти команды в автоматическом режиме. Ряд исполнителей работает только в одном из названных режимов.
Рассмотрим примеры исполнителей.
Пример 5. Исполнитель Черепашка перемещается на экране компьютера, оставляя след в виде линии. Система команд Черепашки состоит из двух команд:
- 1) Вперёд n (где n — целое число) — вызывает передвижение Черепашки на n шагов в направлении движения — в том направлении, куда развёрнуты её голова и корпус;
- 2) Направо m (где m — целое число) — вызывает изменение направления движения Черепашки на m градусов по часовой стрелке.
Запись Повтори k [ … ] означает, что последовательность команд в скобках повторится k раз.
Подумайте, какая фигура появится на экране после выполнения Черепашкой следующего алгоритма.
Повтори 12 [Направо 45 Вперёд 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) последовательность действий записывается с помощью команд, входящих в систему команд исполнителя.
Можно сказать, что алгоритм — модель деятельности исполнителя алгоритмов.
2.1.3. Свойства алгоритма
Не любая инструкция, последовательность предписаний или план действий может считаться алгоритмом. Каждый алгоритм обязательно обладает следующими свойствами: дискретность, понятность, определённость, результативность и массовость.
Свойство дискретности означает, что путь решения задачи разделён на отдельные шаги (действия). Каждому действию соответствует предписание (команда). Только выполнив одну команду, исполнитель может приступить к выполнению следующей команды.
Свойство понятности означает, что алгоритм состоит только из команд, входящих в систему команд исполнителя, т. е. из таких команд, которые исполнитель может воспринять и по которым может выполнить требуемые действия.
Свойство определённости означает, что в алгоритме нет команд, смысл которых может быть истолкован исполнителем неоднозначно; недопустимы ситуации, когда после выполнения очередной команды исполнителю неясно, какую команду выполнять следующей. Благодаря этому результат алгоритма однозначно определяется набором исходных данных: если алгоритм несколько раз применяется к одному и тому же набору исходных данных, то на выходе всегда получается один и тот же результат.
Свойство результативности означает, что алгоритм должен обеспечивать получение результата после конечного, возможно, очень большого, числа шагов. При этом результатом считается не только обусловленный постановкой задачи ответ, но и вывод о невозможности продолжения по какой-либо причине решения данной задачи.
Свойство массовости означает, что алгоритм должен обеспечивать возможность его применения для решения любой задачи из некоторого класса задач. Например, алгоритм нахождения корней квадратного уравнения должен быть применим к любому квадратному уравнению, алгоритм перехода улицы должен быть применим в любом месте улицы, алгоритм приготовления лекарства должен быть применим для приготовления любого его количества и т. д.
Пример 8. Рассмотрим один из методов нахождения всех простых чисел, не превышающих некоторое натуральное число п. Этот метод называется «решето Эратосфена» по имени предложившего его древнегреческого учёного Эратосфена (III в. до н. э.).
Для нахождения всех простых чисел, не больших заданного числа n, следуя методу Эратосфена, нужно выполнить следующие шаги:
- 1) выписать подряд все натуральные числа от 2 до n (2, 3, 4, …, n);
- 2) заключить в рамку 2 — первое простое число;
- 3) вычеркнуть из списка все числа, делящиеся на последнее найденное простое число;
- 4) найти первое неотмеченное число (отмеченные числа — зачёркнутые числа или числа, заключённые в рамку) и заключить его в рамку — это будет очередное простое число;
- 5) повторять шаги 3 и 4 до тех пор, пока не останется неотмеченных чисел.
Более наглядное представление о методе нахождения простых чисел вы сможете получить с помощью размещённой в Единой коллекции цифровых образовательных ресурсов анимации «Решето Эратосфена» (180279).
Рассмотренная последовательность действий является алгоритмом, так как она удовлетворяет свойствам:
- дискретности — процесс нахождения простых чисел разбит на шаги;
- понятности — каждая команда понятна ученику 8 класса, выполняющему этот алгоритм;
- определённости — каждая команда трактуется и выполняется исполнителем однозначно; имеются указания об очерёдности выполнения команд;
- результативности — через некоторое число шагов достигается результат;
- массовости — последовательность действий применима для любого натурального n.
Рассмотренные свойства алгоритма позволяют дать более точное определение алгоритма.
Алгоритм — это предназначенное для конкретного исполнителя описание последовательности действий, приводящих от исходных данных к требуемому результату, которое обладает свойствами дискретности, понятности, определённости, результативности и массовости.
2.1.4. Возможность автоматизации деятельности человека
Разработка алгоритма — как правило, трудоёмкая задача, требующая от человека глубоких знаний, изобретательности и больших временных затрат.
Решение задачи по готовому алгоритму требует от исполнителя только строгого следования заданным предписаниям.
Пример 9. Из кучки, содержащей любое, большее трёх, количество каких-либо предметов, двое играющих по очереди берут по одному или по два предмета. Выигрывает тот, кто своим очередным ходом сможет забрать все оставшиеся предметы.
Рассмотрим алгоритм, следуя которому первый игрок наверняка обеспечит себе выигрыш.
- 1. Если число предметов в кучке кратно 3, то уступить ход противнику, иначе начинать игру.
- 2. Своим очередным ходом каждый раз дополнять число предметов, взятых соперником, до 3 (число оставшихся предметов должно быть кратно 3).
Исполнитель может не вникать в смысл того, что он делает, и не рассуждать, почему он поступает так, а не иначе, т. е. он может действовать формально. Способность исполнителя действовать формально обеспечивает возможность автоматизации деятельности человека. Для этого:
- 1) процесс решения задачи представляется в виде последовательности простейших операций;
- 2) создаётся машина (автоматическое устройство), способная выполнять эти операции в последовательности, заданной в алгоритме;
- 3) человек освобождается от рутинной деятельности, выполнение алгоритма поручается автоматическому устройству.
Самое главное: Алгоритмы и исполнители
Исполнитель — некоторый объект (человек, животное, техническое устройство), способный выполнять определённый набор команд.
Формальный исполнитель одну и ту же команду всегда выполняет одинаково. Для каждого формального исполнителя можно указать: круг решаемых задач, среду, систему команд и режим работы.
Алгоритм — предназначенное для конкретного исполнителя описание последовательности действий, приводящих от исходных данных к требуемому результату, которое обладает свойствами дискретности, понятности, определённости, результативности и массовости.
Способность исполнителя действовать формально обеспечивает возможность автоматизации деятельности человека.
- что такое Исполнитель и каково его назначение;
- что означают понятия программы и программирования на алгоритмических языках;
- в чем отличие процедурного и объектного подходов к программированию.
13.1. Исполнитель алгоритма
Действия, описываемые в алгоритме, прежде всего должны быть понятны самому разработчику алгоритма. Только тогда алгоритм можно преобразовать в форму, понятную тому, кто будет его выполнять.
Поэтому разработка алгоритма практически всегда осуществляется в две стадии. На первой стадии человек приближенно описывает последовательность выполнения действий объектом, который будет претворять в жизнь заложенную в алгоритме идею. Возможно, этим объектом будет сам разработчик. На этой стадии человек должен ясно представить себе, что же он хочет получить и каким образом. На следующей стадии алгоритм претерпевает некоторые изменения для того, чтобы в нем были учтены особенности среды, в которой предполагается выполнение этого алгоритма.
Объект, который будет выполнять разработанный человеком алгоритм, обычно называют Исполнителем.
Его предназначение — точно выполнить предписания алгоритма, подчас не задумываясь о результатах и целях. Например, Исполнителем может быть:
✔ солдат в армии, который обязан беспрекословно выполнять приказы старших по званию чинов;
✔ собака, которая должна выполнять команды хозяина;
✔ животные в цирке, которые должны точно исполнять требования дрессировщика;
✔ робот, производящий измерения в космосе, выполняет команды, поступающие от космического центра;
✔ летчик, который должен точно выполнять распоряжения диспетчера аэропорта.
Во всех приведенных выше примерах объект, исполняющий действия алгоритма, не обязан:
✔ понимать цели и методы достижения этой цели;
✔ пропускать действия или менять их порядок по своему усмотрению;
✔ искать какую-то замену, если действие выполнить невозможно.
Исполнитель — объект, который выполняет алгоритм.
Идеальными Исполнителями являются машины, роботы, компьютеры. Они в состоянии выполнять указанные команды, не обсуждая их целесообразность. Человек тоже может поставить себя в положение Исполнителя алгоритма, хотя бы для проверки его правильности. При этом человек формально, не стараясь понять поставленную задачу, выполняет команду за командой.
Исполнитель способен выполнять только ограниченное количество команд. Поэтому алгоритм, переписанный на второй стадии под конкретного Исполнителя, должен еще раз пройти дополнительное преобразование. Алгоритм дорабатывается и детализируется так, чтобы в нем присутствовали только те команды и конструкции, которые может выполнить Исполнитель.
Так появляется третья стадия, на которой алгоритм должен быть представлен в форме, понятной Исполнителю. Исполнитель, как и любой объект, находится в определенной среде и может выполнять только допустимые в ней действия. Если Исполнитель встретит в алгоритме неизвестную ему команду, то выполнение алгоритма прекратится.
13.2. Понятие программы
На третьей стадии разработки алгоритма необходимо познакомиться с командами, доступными Исполнителю, и с правилами их записи. Так, игра в шахматы теряет всякий смысл, если Исполнитель не представляет себе правил поведения в среде "шахматное поле".
Алгоритм, представленный на понятном Исполнителю языке, называют программой. Обычно понятие программы связывают с компьютером, и тогда процесс создания программы называют программированием или кодированием. Программа должна быть составлена так, чтобы каждый блок компьютера выполнял задуманное человеком действие в соответствии с алгоритмом.
Программа — упорядоченная последовательность команд (инструкций), необходимых компьютеру для решения поставленной задачи.
Программирование (кодирование) — процесс составления программы для компьютера.
Для первых электронно-вычислительных машин программы записывались в виде последовательности элементарных операций. Это была очень трудоемкая и неэффективная работа. Для исправления любой ошибки приходилось переделывать всю программу и снова записывать ее в память.
Поэтому впоследствии были разработаны специальные языки программирования, которые позволяют удобно и наглядно представить алгоритм решения задачи. Первым алгоритмическим языком для создания компьютерных программ был АЛГОЛ (60-е годы). Очень скоро появились и другие языки: Фортран, ПЛ, Бейсик, Паскаль и др. Каждый из них нес в себе какую-нибудь особую идею по более рациональному использованию ресурсов компьютера и усовершенствованию формы представления программы.
В настоящее время существует множество искусственных языков для составления программ. Однако так и не удалось создать идеального алгоритмического языка, который устроил бы всех, как не удалось создать и искусственный разговорный язык, который удовлетворил бы все страны и народы. Одним нравится программировать на Паскале, другим — на Си, третьи, прекрасно овладев правилами составления программ на Бейсике, вполне довольны получающимися результатами. Алгоритм, представленный с помощью языка программирования, чем-то похож на математическую формулу.
Программы, так же как и алгоритмы, обладают свойствами дискретности и детерминированности. Верно составленные программы должны быть конечны и правильны. Хорошие программы обладают свойством массовости.
Программа хранится в памяти компьютера. При запуске программы компьютер выполняет команды в том порядке, в котором они записаны.
В каждом алгоритмическом языке программирования имеется набор встроенных команд —-инструментов для выполнения разнообразных действий. В состав языка обязательно включены команды (операторы) для создания в программе циклов и разветвляющихся конструкций. Любой язык содержит правила для разработки и применения вспомогательных программ, называемых процедурами.
Процедура — вспомогательная программа, которая вызывается из другой программы.
В течение жизни человек постоянно расширяет свой словарный запас. Услышав или прочитав новое слово, вы иногда не понимаете, о чем идет речь, пока не сопоставите это слово с уже знакомыми понятиями. Столкнувшись с новым явлением, мы стараемся подобрать для него название, иногда придумывая его, но обязательно объясняя с помощью уже известных слов. Таким образом увеличиваются наши знания.
Разрабатывая программу для компьютера, вы даете ей уникальное имя. Записывая в память программу под этим именем, вы расширяете словарный запас компьютера. Применяя специальные конструкции языка программирования, можно разработанную программу использовать в качестве процедуры при создании новых программ. Обращение к процедуре происходит по ее имени.
Читайте также: