Моделирование алгоритмических исполнителей

Определение понятия и классификация известных алгоритмических исполнителей. Практическое создание проекта демонстрации среды "ПервоЛого", исполнителя "Черный ящик" в среде "ЛогоМиры", а также алгоритмического исполнителя в интегрированной среде "Delphi".

Рубрика Педагогика
Вид дипломная работа
Язык русский
Дата добавления 16.06.2011
Размер файла 373,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

5

Факультет математики и информатики

Специальность 030100 - информатика и 021700 - филология

Кафедра информатики и методики ее преподавания

ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА

«Моделирование алгоритмических исполнителей»

Содержание

Введение

Глава 1.Теоретические основы темы «Алгоритмические исполнители»

1.1 Понятие алгоритмического исполнителя

1.2 Классификация алгоритмических исполнителей

1.2.1 Исполнители, работающие с величинами

1.2.2 Исполнители, работающие в среде

1.2.3 ЛогоМиры

1.2.4 КуМир

Глава 2. Моделирование алгоритмических исполнителей в среде ЛогоМиры и Delphi

2.1 Описание среды ЛогоМиры

2.1.1 Проект в ПервоЛого «Смена Дня и Ночи»

2.1.2 Тестирование программы

2.1.3 Исполнитель «Черный ящик»

2.1.4 Тестирование программы

2.2 Моделирование алгоритмического исполнителя в интегрированной среде «Delphy»

2.2.1 Тестирование программы

2.2.2 Описание программы

Заключение

Список литературы

Приложение

Введение

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

Компьютеры стали неотъемлемой частью нашей жизни. Информатика стала обязательным предметом для изучения в школе в старших классах. Но в последнее время, информатика вводится в младших и средних классах общеобразовательных школ. Школьная информатика в настоящее время переживает переломный момент. Идеи алгоритмизации, программирования, информационной технологии решения задач, которыми она питалась в течении почти десяти лет, на сегодня уже почти полностью исчерпаны. Они, несомненно, составляют значительную часть идеологического ядра информатики. Но ясно и то, что далеко не вся она сводится к этим идеям.[11]

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

Актуальность исследования обусловлена необходимостью совершенствования методики преподавания алгоритмизации в школьном курсе информатики с использованием алгоритмических исполнителей.

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

Данная дипломная работа посвящена теме «Моделирование алгоритмических исполнителей».

Объектом исследования являются исполнители алгоритмов.

В качестве предмета исследования выступает разработка классификации основных алгоритмических исполнителей, а также возможность создание алгоритмических исполнителей в среде ЛогоМиры и в среде «Delphi».

Цель исследований состоит в классификации известных исполнителей, создание проекта демонстрации возможностей среды ПервоЛого, исполнителя «Черный ящик» в среде ЛогоМиры, а также алгоритмического исполнителя в интегрированной среде «Delphi».

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

1. Проанализировать и систематизировать научную литературу по теме «Алгоритмические исполнители», а также школьных учебников по информатике.

2. Создание классификации известных исполнителей.

3. Изучить возможности приложения ПервоЛого и создать проект «Смена дня и ночи» как демонстрацию возможностей этой среды.

4. Изучить среду ЛогоМиры и создать алгоритмический исполнитель «Черный ящик».

5. Изучить среду «Delphi» и разработать алгоритмический исполнитель «Умный мячик».

Для достижения цели и решения поставленных задач были привлечены следующие методы :

1. Изучение и анализ литературы по теме исследования и смежным темам.

2. Систематизация полученной информации и ее применение для создания классификации, создания алгоритмических исполнителей.

3. Проектирование алгоритмических исполнителей.

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

алгоритмический исполнитель демонстрация среда delphi

Глава 1. Теоретические основы темы «Алгоритмические исполнители»

1.1 Понятие алгоритмического исполнителя

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

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

Исполнителя характеризуют: среда, система команд исполнителя и отказы. Каждый исполнитель работает или «обитает» в определенных условиях, среде; и может выполнять определенный набор действий (система команд исполнителя - СКИ). Схематически это можно изобразить следующим образом:

Рис.1. Схема исполнителя

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

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

Понятие исполнителя входит в словесное определение алгоритма и поэтому является первичным, неопределяемым. Оно формируется на практике. Исполнитель всегда чем-то или кем-то управляется. Различают субъект управления (кто управляет), объект управления (исполнитель) и цель управления. Обратная связь служит для коррекции действий субъекта. Информатика вносит в эту схему новое представление: субъектом управления может быть не человек, а компьютер, которому заранее человек сообщил алгоритм управления.

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

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

1.2 Классификация исполнителей

Хотя алгоритмические исполнители используются повсеместно в школьной практике, однако до сих пор нет стройной классификации по этой теме.

В своих методических статьях и выступлениях А. П. Ершов выдвигал следующую идею применительно к школьной информатике: различать исполнителей алгоритмов, работающих с величинами и работающих «в обстановке; а соответствующие алгоритмы для этих исполнителей предлагал называть алгоритмами работы с величинами и алгоритмами работы «в обстановке». В алгоритмах второго типа отсутствуют такие элементы, как величины (переменные, константы), команда присваивания, однако используются все типы алгоритмических структур.[5]

1.2.1 Исполнители, работающие с величинами

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

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

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

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

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

Выражение - запись, определяющая последовательность действий над величинами. Выражение может содержать константы, переменные, знаки операций, функции. Например: А+В; 2* X - У.

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

К этому типу относятся такие исполнители как: «умный мячик», калькулятор, «черный ящик» [4].

« Умный мячик»

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

Исходные данные - расставленные над линейкой буквы; результат - искомое слово.

Действия исполнителя:

· Перемещение вдоль линейки;

· Чтение (копирование) буквы в текущей позиции;

· Сравнение буквы в текущей позиции с заданной.

Реакция исполнителя:

§ «Не понимаю» - на команду, не входящую с СКИ или записанную с ошибкой; на обращение к неописанному вспомогательному алгоритму;

§ «Не могу» - при входе исполнителя за деление 0 или 14; при попытке взять букву в позиции, где буквы нет.[4].

1.

+ число

Движение вправо на указанное число единиц.

2.

- число

Движение влево на указанное число единиц.

3.

!

Взять копию буквы, над которой находится мячик.

4.

.

Конец собирания слова.

5.

? буква

(действие1, действие2)

Проверка буквы и выбор действий; если буква, над которой находится мячик, совпадает с буквой, указанной в команде, то выполняется действие1, а при несовпадении - действие 2.

6.

ПОКА НЕ буква

(действие)

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

7.

ЭТО имя

Действия_вспомогате

льного_Алгоритма

КОНЕЦ

Описание вспомогательного алгоритма. Обращение к нему - указать в основной программе имя.

Система команд исполнителя:

«Черный ящик»

Представить некоторую систему в виде черного ящика, значит указать ее «входы» и «выходы», а также зависимость между ними. Такое описание позволяет целенаправленно использовать данную систему. Например, любые инструкции для пользователей сложной бытовой техники являются описаниями черного ящика. В них объясняется, что нужно сделать на входе (включить, нажать, повернуть) чтобы достичь определенного результата на выходе. Однако, что происходит «внутри» - не объясняется. Схематически структуру «черного ящика» можно представить следующим образом:

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

Если входные и выходные параметры являются числовыми величинами, то на языке математики связь между ними может быть задана в виде функции (формулы). Например, входные параметры: xl, jc2; выходной - у. Связь между ними: y=F(xl,x2). [4]

Ниже приводятся примеры «черных ящиков».

Пример1:

Вход

ау

Абвгде

ыыы

яяя

ббб

б

абв

бва

вба

ввв

бок

вода

Выход

00

011110

000

000

111

1

011

110

110

111

101

1010

Пример2:

Вход

1

2

3

10

21

123

Выход

0

1

2

9

20

122

1.2.2 Исполнители, работающие в среде

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

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

Графический исполнитель (ГРИС)

Среда: лист (страница экрана) для рисования. На лист нанесена прямо-

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

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

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

Действия исполнителя: перемещение вдоль линии сетки с рисованием или без; поворот; проверка условия выхода на край поля [4].

Формат описания основной программы:

Программа имя

Нач

<тело программы>

Кон

Формат описания вспомогательного алгоритма:

Процедура имя

Нач

<тело процедуры>

Кон

Система команд исполнителя:

1.

Шаг

Перемещение ГРИС на один шаг вперед с рисованием линии.

2.

Поворот

Поворот на 90 градусов против часовой стрелки.

3.

Прыжок

Перемещение на один шаг вперед без рисования линии.

4.

Сделай

Имя_вспомогательного

_алгоритма

Вызов вспомогательного алгоритма.

5.

Пока <условие>, повторять

Нц

<тело цикла>

Кц

Цикл. Варианты условий: «впереди край» или «впереди не край». Тело цикла повторяет выполнение пока условие истинно.

6.

Если «условие»

То<серия _1>

Иначе<серия_2>

Кв

Ветвление. Серия_1 выполняется, если условие, записанное после слова «если» истинно. В противном случае выполняется серия_2.

Исполнитель «Машинист »

У исполнителя «Машинист» в Роботландии имеются определенные условия (среда): главный путь; два тупика -- верхний и нижний; три прицепных вагона в верхнем тупике -- крытый вагон, цистерна, платформа; стрелка для переезда то в верхний тупик, то в нижний. Система команд исполнителя «Машинист» ВПЕРЕД, НАЗАД, СТРЕЛКА, ПРИЦЕПИ, ОТЦЕПИ. Интерфейс программы яркий, четкий. Для машиниста существуют следующие виды заданий:

1. взять из сцепки указанный или указанные вагоны и отвезти в нижний тупик;

2. переформировать вагоны в обратном порядке в нижнем тупике;

3. сформировать новый состав из прежнего, но вагоны для выбора указаны избирательно. [8]

Исполнитель «Кенгуренок»

Среда исполнителя: На экране присутствуют три основных элемента среды учебного исполнителя: строка меню, поле программы и поле рисунка, на котором находится Кенгуренок. На поле рисунка неявно (то есть, её не видно) нанесена прямоугольная сетка. Длину стороны одной квадратной ячейки этой сетки назовем шагом. Размер всего поля -- 15 шагов по горизонтали и 19 шагов по вертикали.

Режим работы -- это определенное стояние учебного исполнителя, в котором могут выполняться определенные действия. Для исполнителя «Кенгуренок» вся система режима работы отражена в схеме на рис1.

Кенгуренок может работать в режиме прямого управления: «команда -- исполнение» (в схеме это названо ручным управлением), и в режиме программного управления: «устанавливается тогда, когда текстовый курсор находится на поле программы. Если его вывести за границу поля программы, то установится режим прямого программирование автоматическое исполнение программы».

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

В свою очередь, в режиме программного управления имеются следующие режимы (подрежимы) работы:

-- установка исходного состояния, стирается рисунок с поля Кенгуренка, устанавливается исходное положение и направление Кенгуренка (этот режим работает и при «ручном» управлении);

-- программирование: набор программы на программном поле;

-- исполнение: работа Ру по заданной программе.

И, наконец, исполнение может проходить в трех режимах:

-- в автоматическом режиме (на экране сразу появляется результат выполнения программы);

-- в автоматическом пошаговом режиме (Кенгуренок демонстрирует выполнение каждой команды);

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

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

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

Система команд исполнителя (СКИ). Команды делятся на команды установки (изменения) режимов и команды управления Кенгуренком (команды программы). Все команды могут быть выбраны из меню. Меню команд первого типа имеет желтый цвет; меню команд второго типа -- белый цвет. Будем называть их кратко: «желтое меню» и «белое меню».

Рис.2.Схема режимов работы исполнителя

Каждую команду можно вызвать нажатием определенной функциональной клавиши. «Желтое меню» является многоуровневым. Команды первого уровня «желтого меню» и соответствующие им функциональные клавиши, следующие:

[F1] -- ПУСК -- запуск на исполнение готовой программы в пошаговом автоматическом режиме;

[F2] -- ОТЛАДКА -- выполнение программы в отладочном режиме с остановкой после каждой команды;

[FЗ] -- УСТАНОВКА -- очистка поля и установка положения Ру с помощью клавиш перемещения курсора;

[F4] -- РАЗНОЕ -- содержит подменю с дополнительными командами работы с файлами;

[F5] -- РЕЗУЛЬТАТ -- мгновенное получение результата работы, программы (автоматический режим исполнения).

В свою очередь команда РАЗНОЕ имеет два уровня подменю, состоящих из команд файлового типа. В режим справки можно попасть, нажав одновременно клавиши [Ctrl]+[H]. [3]

В режиме ручного управления (курсор за программным полем) используются всего три простые команды «белого меню»:

1) шаг -- перемещение Ру на один шаг вперед с рисованием линии;

2) поворот -- поворот Ру на 90° против часовой стрелки;

3) прыжок -- перемещение Ру на один шаг вперед без рисования линии.

При переходе в режим программирования «белое меню» меняется. К нему, кроме перечисленных, добавляются следующие команды:

4) пoка <условие> повторять <тело цикла> конец цикла - цикл с предусловием;

5) если <условие> то <серия 1> иначе <серия 2> конец ветвления - полное ветвление;

6) если <условие> то <серия > конец ветвления -- неполное ветвление

7) сделай <имя процедуры> -- обращение к процедуре.

Исполнитель «Паркетчик»

Паркетчик представляет из себя «бездумного исполнителя», назначение которого -- выкладывать на клетчатом поле узоры из разноцветных плиток (красных и зеленых). Поле имеет прямоугольную форму; каждая клетка идентифицируется двумя индексными номерами -- по горизонтали и по вертикали, например: (1,1), (3,5).

Паркетчик может перемещаться с помощью команд «шаг вверх», «шаг вниз», «шаг влево», «шаг вправо» к соседним клеткам, а также к любой клетке поля по команде «перейти на (m,n)». В текущую клетку Паркетчик может положить плитку указанного цвета по команде «положить (цвет)»или убрать плитку по команде «снять плитку». Условиями в командах ветвления и цикла может быть проверка цвета лежащей плитки или проверка наличия препятствия (стены) в любом направлении от текущей клетки.

Паркетчик предназначен для методичного обучения структурному способу построения алгоритмов. Форма языка Паркетчик применяется также и для описания вычислительных алгоритмов, подобно тому, как используется алгоритмический язык А. Г. Кушниренко. По сути дела, между алгоритмическим языком и языком Паркетчика нет принципиальной разницы тот и другой представляет собой структурный русскоязычной псевдокод. Видимо, считая описание алгоритма на языке Паркет достаточно структурированным и наглядным, авторы отказались от использования блок-схем [4].

Исполнитель « Чертежник»

А.Г. Гейн также применял исполнитель с названием «Чертежник», который относится к категории исполнителей, работающих по принципу «черепашьей графики». Команды перемещения (сделать шаг, прыгнуть) и вращения (повернуть налево) не имеет параметров. По одной команде исполнитель перемещается на строго определенное расстояние -- один шаг, или поворачивается против часовой стрелки на 90°. Поэтому создаваемые рисунки могут состоять только из горизонтальных и вертикальных отрезков. Можно сказать, что Чертежник А. Г. Гейна в чистом виде является исполнителем, работающим «в обстановке».

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

Для моделирования методов решения задач обработки табличной информации А.Г. Гейном введен исполнитель Робот-манипулятор.

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

нц пока снизу стена

закрасить

вправо кц

Здесь использован цикл с предусловием -- основной тип циклической команды (нц -- начало цикла, кц -- конец цикла). Рассмотрим еще один пример: Робот движется вдоль горизонтальной стены и закрашивает только пустые (не закрашенные) клетки. Прямоугольная таблица имитируется стеллажом, состоящим ячеек, в которые могут быть помещены различные радиодетали (микросхемы, транзисторы и прочее). Робот умеет перемещаться в вертикальном и горизонтальном направлениях вдоль ячеек, перемещать в них детали или извлекать детали из ячеек. Здесь можно говорить о появлении величин, рассматривая имя детали в ячейке как величину (производится сравнение ее имени с именем искомой детали). Характерная структура алгоритмов управления Роботом -- вложенные циклы с ветвлениями [3]. Помимо классов исполнителей, работающих с величинами и в среде, существуют также две категории исполнителей, которые не входят в данные классы. Это среда программирования ЛогоМиры и КуМир.

1.2.3 Логомиры

Программная среда Лого (ЛогоМиры) была разработана и реализована под руководством американского психолога С. Пейперта в 1989 г. в Масса-чусетском технологическом институте. Она была создана не просто как формализованный язык программирования, а как среда, в которой дети могли бы научиться естественному общению с компьютером. ЛогоМиры - универсальная учебная компьютерная среда на базе языка Лого. Эта среда интегрирует графику, мультипликацию, звуки, программирование и позволяет осуществлять проектный подход к занятиям по всем направлениям учебного плана, а также обеспечивает возможность осуществлять межпредметные связи с другими дисциплинами на уроках информатики.

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

В Лого первоначально заложены принципы конструктивного обучения. Согласно этим принципам в процессе создания реального продукта (для реализации конкретной задачи) значительно повышается эффективность обучения. Это возможно только потому, что Лого - полноценный язык программирования, допускающий возможность создания настоящих, графически оформленных, работоспособных программ. Так же, как и школьный алгоритмический язык, Лого является интерпретатором, обеспечивающим диалоговый характер общения с пользователем, превращающим компьютер в мощный калькулятор в режиме непосредственных вычислений. Структурное построение программы роднит Лого и Паскаль. В ранних версиях языка мы имели черно-белый экран, одну треугольную черепашку и англоязычный вариант записи команд для нее. Позднее в России была популярна версия Лого для компьютеров ЮМ система Logo Writer. В дальнейшем среда ЛогоМиры была модифицирована и адаптирована для детей более раннего возраста. Программа ПервоЛого доступна для детей 5-6 лет [1]. В школьной информатике ПервоЛого рекомендуется изучать в пропедевтическом курсе. Среда «ПервоЛого» обладает ярким интерфейсом и, простым и доступным для детей способом программирования.

1.2.4 КуМир

В 60-70гг. XX столетия А. П. Ершовым был разработан АЛЬФА-язык программирования (развитая версия структурного языка Алгол-60 с русскоязычной нотацией) и создан транслятор с этого языка (АЛЬФА-транслятор). Учебный алгоритмический язык содержит в себе многие черты АЛЬФА-языка. Алгоритмический язык А. П. Ершова можно назвать русскоязычным псевдокодом, предназначенным для обучения методике структурного программирования Для учебных целей на базе алгоритмического языка был создан язык программирования РАПИРА. Однако он не получил распространения. В 1987 г. в МГУ была осуществлена разработка учебной среды программирования на основе алгоритмического языка, получившая название «Е-практикум» (Е-87). Впоследствии она получила развитие и распространение через известный пакет учебного программного обеспечения КуМир (Комплект Учебных Миров) [5]. Обучаемый сам может конструировать исполнителей средствами УАЯ. Синтаксически все просто. Вводятся слова исп и кон, а между ними размещается описание данных, относящихся среде исполнителя, и затем - вспомогательные алгоритмы, или методы. Данные исполнителя являются общими для этих методов [3].

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

Размещено на http://www.allbest.ru/

5

Глава2. Моделирование алгоритмических исполнителей в среде ЛогоМиры и Delphi

2.1 Среда ЛогоМиры

Исторически первым педагогическим программным средством, предназначенным для обучения детей алгоритмизации, был язык программирования ЛОГО, разработанный в конце 1960-х гг. американским педагогом-психологом С. Пейпертом. В состав ЛОГО ходит исполнитель Черепашка, назначение которого -- изображение на экране чертежей, рисунков, состоящих из прямолинейных отрезков. Программы управления Черепашкой составляются из команд: вперед(а), назад(а), направо(в), налево(в), поднять хвост, опустить хвост. Имеется в виду, что Черепашка рисует хвост и если хвост опущен, то при перемещении проводится линия, когда хвост поднят, то линия не рисуется. Кроме того, в языке имеются все основные структурные команды. В целом ЛОГО предназначен для обучения структурной методике программирования. От ЛОГО происходит понятие черепашьей графики, используемой также и в некоторых профессиональных системах компьютерной графики. Важную роль в новых направлениях обучения играет отношение к ошибкам и их устранение. Отладка программы (поиск и исправление в ней ошибок) обычно является трудоемким процессом. Язык Лого значительно упрощает его. Решение разбивается на множество мелких шагов, каждый из которых может быть проверен отдельно. Если допущена ошибка, то черепашка просто не выполнит задания или выполнит его не так, как следовало. Так как ученики могут самостоятельно найти ошибку, исправить и снова попробовать, то они перестают бояться ошибок. Школьники чувствуют себя исследователями, не боящимися творить. Они обретают уверенность в своих силах и могут выразить свое знание предмета в форме, отличной от вербальной.

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

Лого объединяет в себе черты многих языков программирования, Изучение Лого как начального языка значительно облегчает дальнейшее обучение профессиональных языков программирования.[12]

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

Главное методическое достоинство исполнителя Черепашки - ясность для ученика решаемых задач, наглядность процесса работы в ходе выполнения программы. Как известно, дидактический принцип наглядности является одним из важнейших в процессе любого обучения.[1]

Управлять черепашками можно непосредственно (интерактивно), для этого в специальной области экрана - в «Поле команд» нужно написать соответствующие команды, которые будут немедленно выполнены. Лого включает в себя более 200 команд. Среди них есть и графические команды: команды перемещения черепашки, изменения цвета, изменение формы (черепашка может, например, «надеть на себя» форму самолета или стать цветком) и так далее. Знакомство с мультипликацией позволяет «оживить» формы черепашки, и тогда экран заполняется летающими птицами, скачущими лошадьми, мчащимися автомобилями. Есть команды, позволяющие создавать музыку, выполнять арифметические действия и прочее. Кроме непосредственного управления в ЛогоМирах доступен и режим программирования. В особом листе на экране компьютера можно записать программы, которые, как и большинство языков программирования, «расширяют исходный словарь языка». Имена записанных программ можно использовать в интерактивном режиме, при записи новых программ, а также при применении кнопок. Объекты «кнопки» обеспечивают функции гипертекстовой структуры, при нажатии на них выполняют функции гипертекстовой структуры, при нажатии на них выполняются заранее предписанные действия: переходы, движения и так далее. Объект «бегунок» позволяет использовать в проектах переменные числовые величины. Значение бегунка видно и может быть изменено с помощью мыши.

Черепашки могут иметь любую форму, но видеть цвет пера черепашки и направление можно, только когда черепашка имеет исходную «черепашью» форму. Можно изменить цвет и размер пера черепашки в Графическом редакторе.

Перемещение черепашки

Перетащить черепашку можно с помощью мышки. Нужно потащить черепашку за голову - она повернется.

Изменение размеров черепашки

Можно изменять размер с помощью луп, находящихся в Поле форм.

Направление черепашки

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

Новые черепашки и имена черепашек

Для создания новой черепашки, надо выбрать черепашку в Инструментальном меню и поместить ее на лист в нужном месте, щелкнув на нем мышкой. Появится новая черепашка. Повторив это еще раз, появится еще одна черепашка. Черепашки получают имена в соответствии с моментами их появления: ч1, ч2 и так далее. Вы можете изменить имя черепашки. Как открыть диалоговое окно Черепашки?

v Выбрать пиктограмму Черепашки.

v Щелкнуть на Черепашку на листе.

v Написать новое имя .

v Щелкнуть ОК.

Программирование черепашки

v Открыть диалоговое окно черепашки.

v Напечатать инструкцию

v Указать «Один раз» или «Много раз» будут выполняться инструкции.

v Щелкнуть на «ОК».

v Щелкнув на черепашку, можно посмотреть, что произойдет.

Мультипликация

В поле форм есть несколько пар (троек) похожих форм. Меняя похожие формы можно создать летящую птицу, идущего мальчика или бегущую собаку.

Пример:

Открыть диалоговое окно Черепашки.

Напечатать: нов_форма «птица1 вп2 нов_форма «птица2 вп2. Выбрать режим «Много раз ». Щелкнуть «ОК».

Щелкнуть на черепашку. Если птица летит неправильно, но надо напечатать в Поле команд: нов_курс 300.

Выделение черепашек

Протащить мышку вокруг нее или нажать клавишу Shift и щелкнуть на черепашку.

Удаление черепашки

На поле форм выбрать Ножницы, щелкнуть ими по черепашке, которую необходимо удалить. [1]

Основные команды языка программирования среды ЛогоМиры

Наименование

Назначение

Пример

Вперед(вп)число

Всегда список инструкций

Домой

Жди число

Жди_пока логическое значение

Запусти список инструкций

Курс

Налево (лв)число

Место

Надпись слово

Назад (нд)число

Направо (пр)число

Нов_курс(нк)число

Нов_место(нм)[ху]

Нов_размер (нрз) число

Нов_размер_пера(нрп) число

Нов_форма(нф) имя или число

Нов_цвет (нц) имя или число

Ответ

Пиши слово или список

Плавно расстояние скорость

по

Повтори число список-инструкций

пп

пч

сг

ск или сс

Сотри

Спроси слово или список

ст

сч

Удали

Цвет

Штамп

Перемещает черепашку вперед.

Бесконечно повторяет

Остановка:Ctrl+Break.

Перемещает черепашку в точку[0,0].

Пауза в работе. Время изменяется1/10сек.

Система будет ждать, ока входной параметр не сообщит Да.

Выполняет список-инструкций как независимый процесс.

Сообщает направление активной черепашки.

Поворачивает черепашку налево.

Сообщает координаты активной черепашки.

Черепашка при движении будет печатать указанное слово.

Перемещает черепашку назад

Поворачивает черепашку направо.

Черепашка получает направление, соответствующее числу градусов.

Перемещает черепашку в точку с координатами[ху].

Меняет размер черепашки min-5, исходный -40, max-150.

Изменяет толщину пера активной черепашки.

Изменяет форму черепашки

Изменяет цвет пера черепашки.

Сообщает последний ответ, напечатанный в диалоговом окне.

Печатает слово или список в активном текстовом окне.

Плавно перемещает черепашку на указанное расстояние.

Опускает перо у активной черепашки.

Выполняет список-инструкций указанное число раз.

Поднимает перо у активной черепашки.

Делает активную черепашку видимой.

Стирает графическое изображение на листе, возвращает активную черепашку на место.

Стирает текст в поле команд.

Стирает графическое изображение, не изменяя положения черепашки.

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

Стирает текст в активном текстовом окне.

Прячет активную черепашку.

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

Сообщает цвет черепашки в виде числа.

Делает копию изображения черепашки на экране.

Вп 50 по вп10

всегда[вп1]

всегда [пр1]

вп 50 домой

жди 10 пч жди 10

жди_пока[цп=15] пр 180

запусти [плавно 10001]

покажи курс 180

вп 40 лв 50

покажи место 50 49

надпись «школа» повтори 5 [вп 10] лв 30

по нд 20 пр 90

вп 50 пр 38

нк 0

нк 120

нк 180

нм [50 50]

нрз 20

нрз40

по нрп 20 вп50

нф «луна

нц «красный

спроси[Сколько тебе лет?]

покажи ответ

Мне 10 лет.

Повтори 5 [пиши «хелло]

Плавно 1001

Повтори 10 [по вп 10 пп вп 10]

Повтори 10 [нФ «птица1 жди5 нф «птица2 жди 5]

Повтори 10 [по п 10 пп вп 10]

Повтори [сч жди 5 пч жди 5]

По вп 50 пр 90 штамп вп 50 сг

Ск

По нФ 12 нц 10

Спроси[Сколько Вам лет?]

Покажи ответ

Мне 10 лет.

Текст1, пиши «хелло ст

Повтори[сч жди 5 пч жди 5]

Удали «текст1

Удали «ч1

Удали «лист1

Нц «красный

Покажи цвет

НФ «дерево пп повтори 10 [штамп вп 40]

2.1.1 Проект в ПервоЛого «Смена Дня и Ночи»

Данный проект является демонстрацией возможностей приложения среды ЛогоМиры ПервоЛого. Чтобы запустить демонстрацию нужно мышкой выделить солнце и луну и щелкнуть по любой из этих черепашек. Сейчас на экране мы видим день, а как только солнце сядет, наступит ночь. И картинка изменится.

Рис.3. День Рис.4. Ночь

Для создания этого проекта прежде всего необходимо создать новые формы для черепашек. Нужно нарисовать небо и землю днем и ночью. Итак, чтобы нарисовать землю и небо днем и ночью, нужно в свободной клетке Поля Форм щелкнуть правой кнопкой мыши. Появится окно редактирования. При помощи инструментов Рисовалки создаются эти объекты.

Рис.5. Поле форм

После создания объектов, на форму помещаются четыре черепашки и «одеваются » в следующем порядке: дневное небо, солнце, луна и дневная земля. Черепашку, которая будет луной нужно повернуть на 180 градусов, чтобы она смотрела вниз. Совмещаем рисунок и должно получиться следующее:

Рис.6. Лист проекта

Теперь, чтобы солнце двигалось по кругу, необходимо задать ему следующую команду: 10 шагов, поворот на 13 градусов и пауза 0.3 сек. В окне команд для солнца нужно задать эту цепочку действий и щелкнув на стрелке, задать многократное повторение этих действий. Чтобы посмотреть что получилось, надо щелкнуть мышкой на солнышко. Оно всходит и заходит, но земля и небо остаются дневными. Это можно исправить с помощью светофора. Для этого надо вызвать окно обучения для солнышка, щелкнуть на закладку с двумя черепашками и выбирать землю, щелкнув на ней мышкой. Теперь на поле команд необходимо выбрать Светофор и установить фиолетовый цвет. Также необходимо научить землю и небо реагировать на изменение сигнала светофора. Для этого надо открыть окно обучения для земли, щелкнув Ключом. Выбирать закладку с светофором и установить фиолетовый цвет и ночную Землю. Точно также учим реагировать на изменение сигнала светофора небо. На данный момент, когда солнышко зашло, Земля и Небо стали ночными, но когда оно вышло, темнота осталась. Чтобы это исправить надо открыть окно обучения для солнца, щелкнув ключом, выбирать закладку с двумя черепашками. Установить дневное небо. В закладке Светофор необходимо установить значок светофора с оранжевым цветом. Теперь землю и небо необходимо обучить реагировать на оранжевый сигнал светофора. Для этого надо вызвать окно обучения для Земли, на закладке Светофор выбрать оранжевый сигнал. Установить дневную форму земли. Закрыть окно обучения. Точно также учим реагировать небо на изменение сигнала светофора. Осталось задать Луне команду движения по кругу. Аналогично солнцу, в окне обучения Луны необходимо записать команду: 10 шагов, поворот на 13 градусов и пауза 0.3 сек.

Приведенный ниже листинг программы генерируется автоматически. Ученики создают команды лишь с помощью мыши.

Листинг программы

это шагай :n

fd :n

my-cmt3

color-react

конец

это removeitem :item :list

let [res []]

dolist [i :list]

[if not equal? :item :i [let [res lput :i :res]]]

op :res

конец

это clr-last-meet :t1 :t2

ask :t1 [if member? :t2 <l-meet> [установи_<l-meet> removeitem :t2 <l-meet>]]

ask :t2 [if member? :t1 <l-meet> [установи_<l-meet> removeitem :t1 <l-meet>]]

конец

это set-last-meet :t1 :t2

ask :t1 [установи_<l-meet> fput :t2 <l-meet>]

ask :t2 [установи_<l-meet> fput :t1 <l-meet>]

конец

это get-some :t1 :t2 :what

if equal? :what "can-meet

[

if equal? :t1 :t2 [op "нет]

dolist [i ask :t1 [<my-meet>]] [if equal? :t2 first :i [op "да]]

dolist [i ask :t2 [<my-meet>]] [if equal? :t1 first :i [op "да]]

op "нет

]

if equal? :what "last-meet

[

if equal? :t1 :t2 [op "нет]

let [

lm1 ask :t1 [<l-meet>]

lm2 ask :t2 [<l-meet>]

t1t2 member? :t2 :lm1

t2t1 member? :t1 :lm2]

op or :t1t2 :t2t1

]

if equal? :what "comm

[

if equal? :t1 :t2 [op [[][]]]

let[com1 []

com2 []

m1 ask :t1 [<my-meet>]

m2 ask :t2 [<my-meet>]

]

dolist [i :m1] [if equal? :t2 first :i [let [com1 last :i]]]

dolist [i :m2] [if equal? :t1 first :i [let [com2 last :i]]]

op list :com1 :com2

]

конец

это find-page :tur

dolist [i pagelist]

[dolist [j get :i "черепашки]

[

if equal? :tur :j [op :i]]]

конец

это my-cmt3

let[tm who

page find-page :tm]

dolist [i get :page "черепашки]

[

if get-some :tm :i "can-meet

[ ifelse touching? :tm :i

[

if not get-some :tm :i "last-meet

[ let [cod get-some :tm :i "comm]

if not empty? first :cod

[launch [ask :tm [run first :cod]]]

if not empty? last :cod

[launch [ask :i [run last :cod]]]

]

set-last-meet :tm :i

]

[ clr-last-meet :tm :i ]

]

]

конец

это get-table-color :color

if :color = 9 [op 1]

if :color = 0 [op 9]

if :color < 70 [op 2 + int (:color / 10)]

op 3 + int (:color / 10)

конец

это color-react

let [pl get-table-color colorunder]

if not empty? item :pl <c-list> [

if not :pl = <l-color> [run item :pl <c-list>]

]

установи_<l-color> :pl

конец

это светофор :n

if :n < 1 [stop]

if :n > 6 [stop]

dolist [i get first pagelist "черепашки ]

[if not empty? item :n ask :i [<traf-list>] [

launch [ask :i [run item :n <traf-list>]]]]

конец

это наугад :n

let[zn 1]

if less? :n 0 [let [zn -1]]

let [n abs :n]

let [res product :zn random sum :n 1]

op :res

конец

это перо :l-com

ifelse equal? item 3 :l-com "true [let [p_col random 255]]

[let [p_col item 2 :l-com ]]

setpensize item 1 :l-com

setc :p_col

конец

это пусто

конец

2.1.2 Тестирование программы

Данная программа была протестирована во 2 и 3 классах лингвистической школы и в 6 классе коррекции СОШ№3 г. Славянска-на-Кубани. В течение третей четверти 2003-2004учебного года ученикам предлагалось изучить возможности ПервоЛого. За это время они приобрели навыки по работе в данной среде, научились программированию. В качестве контрольного задания было предложено создать проект «Смена Дня и Ночи». Все ученики успешно справились с заданием. Были сделаны интересные и красивые проекты, что показало эффективность использования данного приложения в качестве обучающей программы.

2.1.3 Исполнитель «Черный ящик»

Всякая система представляет собой некоторый объект, который можно выделить из окружающей среды. Система взаимодействует с окружающей средой: среда оказывает влияние на систему , а система - на среду. Воздействие среды на систему называют входами или входом системы, в воздействие системы на среду - выходами или выходом системы. Здесь «воздействие» понимается в широком смысле. Это могут быть материальные объекты, которыми обменивается среда и система, физическое воздействие, информация. Для всякой системы можно перечислить множество входов и выходов, совсем не обязательно связанных с ее прямым назначением. Например, система «ручные механические часы». Ее входы -это верньер для завода часов и для перевода стрелок; но в тоже время и пыль, грязь, вода, тряска, удары. Выходы - циферблат со стрелками, тиканье, вес, способ крепления на руке, способ изображения цифр на циферблате, точность хода и так далее. Для большинства реальных систем список входов/выходов бесконечен. Мы часто не знаем как объект устроен «внутри». Нам важно лишь знать к каким результатам на выходе приведут определенные воздействия на входе системы. В таких случаях говорят, что система рассматривается как «черный ящик».

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

Рис.6 Лист «инструкция»

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

Рис.7. Лист «игра» Рис.8. Ввод начального значения

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

Рис.9. Окно «Отгадки»

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

Листинг программы

это startup

пусть "помню [] {Создает переменную с именем помню и присваивает ей нулевое значение. Переменные не исчезают при закрытии проекта}

вл "инструкции {Показывает на экране лист «инструкции». Входной параметр - имя листа в активном проекте. Для загрузки листа можно просто напечатать его имя.}

конец

это новая.игра

экран, ст { Стирает текст в активном текстовом окне. }

пусть "помню []

загадка, покажи_текст{ Спрятанное активное текстовое окно появляется на экране. В этом блоке программы, при нажатии кнопки «новая игра» , появляется спрятанное окно, в котором можно изменить формулу по которой производятся вычисления.}

конец

это черный_ящик

спроси "|Введите число на вход черного ящика| { Открывает диалоговое окно, в котором предлагается ввести число на вход черного ящика и нужно напечатать ответ. После того как ответ будет напечатан, его текст хранится в виде символьной цепочки, до следующего применения команды спроси и может быть получен с помощью датчика ответ. }

если не число? ответ [сообщи [На вход черного ящика можно подать только число!] стоп] { Если входной параметр не является числом, выводится сообщение в сигнальном окне, что на вход черного ящика можно подать только число. Чтобы закрыть окно, щелкните на OK.

Работа процедуры останавливается. }

пусть "цифра ответ {Если входной параметр является числом, сообщает последовательность символов, напечатанную в диалоговом окне, открытом командой спроси. Ответ сообщает введенный текст как одно (длинное) слово. }

пусть "помню внсп :цифра :помню {Сообщает список, полученный добавлением первого входного параметра в начало второго. Второй параметр должен быть списком.}

экран, вставь "|Ввели | вставь :цифра вставь "| получили | пиши вычисления :цифра{ Печатает входной параметр в позиции курсора в активном текстовом окне. Курсор не переходит на следующую строку.}

конец

это вычисления :цифра

выход делай разбери загадка {Останавливает процедуру и сообщает результат.}

конец

это отгадка

пусть "проверка 1

пусть "счетчик 0 контроль

конец

это контроль

подбор

локально "вопрос { Делает указанную переменную локальной по отношению к процедуре, содержащей команду локально. }

пусть "вопрос пред "|Сколько получится если на вход черного ящика подать| :проверка спроси :вопрос

если_иначе ответ = (вычисления :проверка) [пусть "счетчик :счетчик + 1

если :счетчик = 3 [сообщи [Все правильно !] стоп] контроль][сообщи [Неправильно !]] {В данной процедуре происходит проверка правильности работы черного ящика. Выводится диалоговое окно, в котором спрашивается сколько получится, если на вход черного ящика подать число (число предлагается, которое не было использовано в процессе работы черного ящика.). Если в течении трех раз были получены правильные ответы, выводится сообщение, что все правильно сделано, иначе выводится сообщение «неправильно».}


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.