Урок 34 13.05.2020 ЭГС-19-1
Задачи урока:
познакомятся с понятием исполнитель;
выяснят, что представляет собой система команд исполнителя;
смогут создавать словесные алгоритмы для любого исполнителя;
будут развивать социально-коммуникативную компетентность.
Многие годы понятие «алгоритм» использовалось математиками для описания правил решения математических задач. Например, существует алгоритм вычисления квадратного корня положительного числа, алгоритм нахождения наибольшего общего делителя двух чисел и многие другие.
Однако не следует считать алгоритм чисто математическим понятием. Каждый из вас с раннего детства, даже не замечая этого, ежедневно решает задачи, для описания которых используется тот или иной алгоритм, сформулированный в виде конечной последовательности однозначных предписаний.
Например, когда вы уходите в школу в отсутствии родителей, вам следует выполнить цепочку операций по обеспечению безопасности квартиры: закрыть форточки, выключить газ и электроприборы, запереть дверь и т.д. Входя в кабину телефона-автомата, вы видите на стене четкий алгоритм, однозначно описывающий ваши действия, цель которых - разговор с другом: снять трубку, опустить монету, набрать номер и т.д. Чтобы приготовить вкусное блюдо, ваша мама раскрывает поваренную книгу, отыскивает рецепт и, следуя его конкретным указаниям (2 стакана муки, 250 гр. Масла, 1 яйцо..., тесто разрезать на полоски..., в духовке 20-25 минут...), поставленную перед собой задачу.
Носителями алгоритмов являются рецептурные справочники, инструкции по использованию бытовой аппаратуры (от утюга до видеомагнитофона), медицинские рекомендации и описания гимнастических упражнений, даже банки и упаковки с продуктами.
Каждый алгоритм создается конкретным автором в результате обобщения прошлого опыта или технологических разработок и рассчитан на конкретного исполнителя.
Алгоритмы из повседневной жизни всегда предполагают определенный уровень предварительной подготовки исполнителя и потому излагаются приблизительно, без перечисления ряда промежуточных операций, способ выполнения которых избирается самим исполнителем. Даже в простейших ситуациях вы, не задумываясь, оцените уровень исполнителя.
Если сестренке, которую вы попросили купить хлеба, уже 12 лет, вы ставите задачу в общей форме:»Купи черного или белого, в такой-то булочной» и даете денег. Если же девочка еще не ходит в школу, вам придется разработать более детальный алгоритм: что делать, если по дороге встретиться большая собака или строители разрыли тротуар; не забыть получит сдачу и сколько; переходить внимательно проезжую часть дороги и только на зеленый свет светофора и т.д. автор кулинарного рецепта предполагает, что хозяйка умеет включать и выключать газовую и электрическую плиты; регулировать нагрев.
Не только в быту, но и в технике, и даже в математике многие алгоритмы формулируются неточно, приблизительно.
Разработанный алгоритм может исполнять как человек, так и техническое устройство, которые понимают правила записи алгоритма и умеют выполнять предписываемые им действия. Придерживаясь указаний алгоритма, исполнитель получит пригодный результат даже в том случае, когда он не понимает существа решаемой задачи.
При подготовке алгоритмов, исполнителем которых является компьютер, приходится учитывать, что уровень его предварительной подготовки близок к нулю, что самый «умный» компьютер «глупее» шестилетнего ребенка.
Выполняя инструкции, записанные в виде программы, компьютер получит результат, удовлетворяющий пользователя. Процесс подготовки задания для компьютера можно разделить на два общих этапа:
создание алгоритма, где указываются требования к исходным данным и
результатам, постановка задачи, описание точной схемы решения с
указанием всех особых ситуаций;
изложение алгоритма на языке, понятном машине.
Исполнитель алгоритма - это тот объект или субъект, для управления которым составлен алгоритм. Система команд исполнителя - это вся совокупность команд, которые исполнитель умеет выполнять.
Определенная последовательность действий исполнителя всегда применяется к некоторым исходным данным. Полный набор данных: необходимый и достаточный набор данных для решения поставленной задачи.
Алгоритмы можно разделить на два вида: алгоритма для одного исполнителя и алгоритмы для нескольких исполнителей. Эти алгоритмы легко отличить по внешнему виду - в алгоритме для нескольких исполнителей в каждой команде указывается имя исполнителя.
Например:
Один исполнитель | Несколько исполнителей |
Выкопать котлован. | Экскаваторщик. Выкопать котлован. |
Сделать фундамент. | Бетонщик. Сделать фундамент. |
Сложить стены. | Каменщик. Сложить стены. |
Установить окна и двери. | Плотник. Установить окна и двери. |
Сделать крышу. | Кровельщик. Сделать крышу. |
Алгоритмы для одного исполнителя называются процедурно-ориентированными. При составлении процедурно-ориентированных алгоритмов основная задача - это разбиение сложных действий на более простые, затем эти простые разбиваются на еще более простые.
Алгоритмы для нескольких исполнителей называются объектно-ориентированными (объекты - это исполнители). При составлении объектно-ориентированных алгоритмов основная задача - это определение набора объектов - исполнителей с указанием действий, который может выполнять каждый из них, при этом каждый объект — исполнитель может состоять из нескольких составных частей - тоже являющихся объектами — исполнителями.
В процедурно-ориентированном подходе действия описываются так, как будто все делаешь сам. В объектно-ориентированном подходе действия описываются так, как будто отдаешь команды для исполнителя нескольким помощникам.
Объектно-ориентированный подход более современен и считается более перспективным. Большинство современных разработок использует именно этот подход.
Для написания программ при процедурно-ориетированном и объектно-ориентированном подходах существуют определенные языки. Процедурно-ориентированный язык программирования строится на основе использования определенного алфавита и строгих правил построения предложений. В алфавит языка могут входить буквы, цифры, математические символы, а также операторы. Такие языки программирования представляют алгоритм в виде последовательности основных алгоритмических структур: линейная, ветвление, цикл. К таким языкам относятся: Бейсик, Паскаль, MSX-Бейсик, С и др.
Объектно-ориентированное программирование является развитием технологии структурного программирования, однако имеет свои характерные черты. Основной единицей в объектно-ориентированом программировании является объект, который заключает в себе, как описывающие его данные, так и средства обработки этих данных. Объектно-ориентированное программирование по своей сути - это создание приложений из объектов, подобно тому, как из блоков и различных деталей строят дома. Одни объекты приходится полностью создавать самостоятельно, тогда как другие можно позаимствовать в готовом виде из разнообразных библиотек. В системах объектно-ориентированного программирования обычно используется графический интерфейс, который позволяет визуализировать процесс программирования. Появляется возможность создавать объекты, задавать им свойства и поведение с помощью мыши.
Наиболее распространенными системами объектно-ориентированного визуального программирования являются Microsoft Visual Basic и Borland Delphi. 3.
Упражнение 1: Назвать исполнителей следующих видов работы: уборка мусора во дворе, перевозка пассажиров, выдача заработной платы, прием экзаменов, сдача экзаменов, обучение детей в школе. Попробуйте сформулировать систему команд исполнителя для каждого из этих исполнителей.
Упражнение 2: Описать систему команд исполнителя «Геометр», который мог бы выполнять геометрические построения с помощью циркуля и линейки.
Упражнение 3: Описать исполнителя «Графопостроитель», который с помощью «пера» строит на бумаге с нанесенной масштабной сеткой геометрическую фигуру.
Домашнее задание - знать конспект.
Примечание: при резерве времени можно поработать с программой «Алгоритмика».