Кузнецова Ирина Николаевна
МОДЕЛИРОВАНИЕ В СРЕДЕ ЛОГО ЗАНЯТИЕ 6. РАЗРАБОТКА ИНТЕРНЕТ-ПРИЛОЖЕНИЙ
Какая современная программная среда обходится без средств публикации в Интернет? Компанией LSCI разработан WEB-проигрыватель - mwplugin, который обеспечивает выполнение команд Лого при запуске проекта через браузер. Этот проигрыватель распространяется свободно, достаточно обратиться на сайт Московского Института Новых Технологий в образовании: http://www.int-edu.ru/logo/web.html. Программу mwplugin следует скачать по указанному адресу и установить у себя на компьютере.
Использование проигрывателя mwplugin позволяет работать с Лого-проектами на компьютерах, не имеющих систем Лого Миры 2 и MicroWorldPro.
Комплекс программ, написанных автором на Лого и JavaScript, обеспечивает создание дистанционной среды программирования, аналога которой автор пока не встречал.
Это занятие посвящено проблемам публикации проектов Лого в Интернет и содержит некоторые рекомендации.
ЗАДАНИЕ 1.
Правила оформления Лого-проекта для публикации
Если на вашем компьютере установлен проигрыватель mwplugin, то на сайте Лого-школы (http://acm.eltech.ru/logo/ logosch/instrum.htm) вы можете найти инструменты для демонстрации любого Лого-проекта.
Однако вы и сами можете подготовить свой проект для публикации в Интернет.
Любой объект, предназначенный для демонстрации в Интернет, должен быть вставлен в гипертекстовый документ. В документации системы Лого Миры 2 описана методика подготовки такого документа, приведен пример HTML-докумен-та, который будет служить для вызова проекта.
В системе MicroWorldPro запускающий HTML-документ подготавливается автоматически при выполнении действия «Create HTML Template...» в пункте «File» Главного меню. При этом вы получите в текущей папке файл с именем вашего ЛОГО-проекта и типом (расширением) -.html (например, ivanov_01.html). Для проверки работы в WEB-проигрывателе запустите этот файл через браузер - обычно достаточно дважды щелкнуть на нем левой клавишей мыши.
В этом занятии показан более совершенный метод, который использован на сайте компании LSCI (http:// www. micro worlds. com/library/index. html).
Проект Лого включается в гипертекстовый документ как объект определенного класса:
<OBJECT classid="CLSID:D467AA06-E4F1-454C-B08C-916996C09579" width=370 height=400> <PARAM name=URL value="travel.mw2"> <EMBED src="travel.mw2" type= "application/x-mw2-plugin" pluginspage="http://www.lcsi.ca/webplayer" width=370 height=400X/EMBED> </OBJECT>
В теге <OBJECT> указывается имя Лого-проекта и его ширина и высота в пикселях.
Приведем пример такого документа:
<HTML> <HEAD>
<META NAME="keywords" CONTENT="MW Web Player">
<TITLE>Connect4</TITLE></HEAD> <BODY>
<table border=1 width=592> <tr>
<td valign=top width=322>
<h3 align=center>connect4.mw2</h3>
<OBJECT classid="CLSID:D467AA06-E4F1-454C-
B08C-916996C09579" width=592 height=322>
<PARAM name=URL value="connect4.mw2">
<EMBED src="connect4.mw2"
type="application/x-mw2-plugin"
pluginspage="http://www.lcsi.ca/webplayer/
" width=592 height=322X/EMBED>
</OBJECT>
</td>
</tr>
</table>
</BODY>
</HTML>
Поскольку язык Лого позволяет формировать новый код программы во время выполнения команды, возможно создание запускающего HTML-файла любого формата.
Предлагаем вам самостоятельно написать такую программу.
ЗАДАНИЕ 2. Ограничения на Лого-проект
При подготовке к публикации в Интернет, помимо правильного оформления запускающего файла, следует подумать о том, что Лого-проект будет передаваться по сети, загружаться и выполняться на компьютере клиента.
Необходимо позаботиться о пользователях, которые захотят посмотреть ваше творение. Поэтому вы должны максималь-
но сократить размер Лого-проекта, обеспечить в нем управляющие объекты, включить необходимые инструкции.
Итак, рассмотрим все по порядку.
1. Чтобы уменьшить объем информации, передаваемой по сети, следует уменьшать размер ЛОГО-проекта (рабочего поля). Это делается только для нового (чистого) проекта командой newprojectsize, например newprojectsize [400 300]. Тогда размер рабочего поля устанавливается 400 пикселей по горизонтали и 300 пикселей по вертикали. После выполнения этой команды сохраняйте проект.
2. При выполнении вашего проекта через проигрыватель командного центра не будет, поэтому все действия полезно назначать экземплярам объектов - черепашкам и кнопкам. Если вы использовали команду show, то данные будут выводиться в диалоговое окно браузера.
3. Вы можете снабдить появление первой страницы проекта различными эффек тами, если исполь зуете команду presentationmode, включенную в процедуру startup.
4. В ЛОГО-проекте, подготовленном для публикации в Интернет, нельзя использовать следующие команды, связанные с работой с командным центром и файлами:
cc
merge
newprojectsize
printtext
procedures
saveproject
setfooter
loadpict
savepict
loadshape
saveshape
placepicture
savetext
loadtext
openworksheet
closeworksheet setcell getcell exporttext
ЗАДАНИЕ 3.
Моделирование командного центра в WEB-рабочем поле
Как говорилось выше, в проекте, опубликованном в Интернет, нет командного центра. Это приводит к тому, что для публикации можно представить только полностью готовые проекты. Однако для дистанционного обучения необходима среда, позволяющая проводить любые эксперименты, создавать любые объекты в режиме online. Такие дистанционные среды программирования автору пока неизвестны.
В системе MicroWorldPro появилась новая команда readonline для назначения роли командного центра текстовому окну. Вот как используется эта команда в проектах, опубликованных на сайте http ://acm. eltech .ru/lo go/lo gosch:
;;; Создание комнадного центра to startup
newtext "command_center [-182 -140][366 40] command_center, setfont "system pr [This is
the Command Center] onreadline "command_center "run end
Пример удаленного рабочего поля можно увидеть на сайте Лого-школы по адресу: http://acm.eltech.ru/logo/logosch temal/desk v1.html. На этом рабочем поле размещены также кнопки, моделирующие инструменты среды Лого для создания новых объектов и назначения им свойств и действий:
turtle - создание черепашки txtwin - создание текстового окна button - создание кнопки slider - создание бегунка page - создание листа shape_s - просмотр форм FIX_rule - назначение действия объекту d_rule - описание действия объекта рабочее_поле - возврат на первый лист
Все эти кнопки формируются программой - конструктором, "
о -
которая стартует автоматически при открытии проекта.
К сожалению, команды для назначения текстовому окну функций командного центра нет в русской версии Лого Миры 2. Кроме того, команды создания новых объектов Лого и назначения им свойств и действий не совместимы в средах Лого Миры 2 и MicroWorldPro. Поэтому командный центр пришлось моделировать следующим образом:
;Для работы через Интернет проигрыватель -запуск команд через текстовое окно to startup
newtext command_center [-163 -149][326 40] command_center, setfont "system pr
[Это командный центр] ; кнопка для ввода из командного центра newbutton "bcc [-123 -124][ввод_из_КЦ] set "bcc "размер [85 22] end
Процедура для кнопки bcc - ввода строки из КЦ
to ввод_из_КЦ
eol select sol copy cd
run clipboard
end
В этом варианте для ввода из удаленного командного центра необходимо установить курсор в окно ввода и щелкнуть по кнопке ввод_из_КЦ.
И все-таки в итоге удалось создать удаленную среду программирования Лого, пригодную как для первого знакомства с основами программирования, так и для моделирования различных процессов и микромиров.
ЗАДАНИЕ 4. Примеры публикации Лого-проектов
В рамках нашего курса рассматривались разные проекты. Часть из них опубликована на сайте http://acm.eltech.ru/logo/ logosch. Для загрузки проектов подготовлена запускающая гипертекстовая страница dem_pro.htm. Пользователь может выбрать одно из действий - открыть указанный Лого-проект в режиме online или считать архив с этим файлом и работать с ним в режиме offline. При загрузке проекта через запускающий файл в окне браузера рядом с рабочим полем Лого вы увидите окно с текстами программ. Окно Лого-проекта содержит и командный центр, поэтому можно выполнить любую команду.
Примеры встроенных объектов, предлагаемые на занятии 1 («Встроенные объекты» - http://acm.eltech.ru/ logo/logosch\tm1 doc.htm) содержатся в проектах valent и concert. В первый проект включены черепашки и кнопки, во второй - музыкальные объекты. Программы, рассмотренные на занятиях 2 и 3 («Алгоритмы обработки» и «Работа с переменными» -http://acm.eltech.ru/logo/logosch/tm2 doc.htm), содержатся в проекте travel. Этот проект -не самый удачный пример публикации, так как размер его более 250 кб. Не каждый сможет загрузить такой большой файл. Поэтому предлагается скачать архив. В архив включен и запускающий HTML-файл. Интересные примеры применения возможностей Лого приведены также в проекте idies (смотри там же). Этот проект имеет размер еще больше - более 700 кб!
На занятии 4 («Разработка проекта по школьному предмету») рассматривались вопросы математики, выраженные на языке Лого. Эти идеи и программы включены в проект mathematics (http://acm.eltech.ru/ logo/lo go sch/pro/dem pro.htm). В проекте нет заимствованной графики, из встроен-
ных объектов используется только черепашка, которая создается процедурой constr, и текстовое окно, выполняющее роль командного центра. Поэтому размер файла mat hematic s.mw2 составляет всего 58 кб. Рядом с рабочим полем расположено окно, в которое выведены тексты всех Лого-программ, доступных в этом проекте.
Занятие 5 («Создание микромиров») иллюстрируется двумя проектами: of_gorohov и fractal (http://acm.eltech.ru/logo/ logosch/pro/dem pro.htm). Проект of_gorohov демонстрирует применение фракталов при создании в среде Лого пейзажа. Програм-
мы, написанные для этого, видны в окне рядом с рабочим полем. Каждую из этих программ можно отдельно выполнить, введя соответствующую команду в командном центре, созданном в этом проекте.
Проект разработан для моделирования фрактала Коха в среде Лого. Программы, реализующие язык фрактальной черепашки, описывающие алгоритм построения некоторых фракталов, выведены в окно рядом с рабочим полем. Параметры, которые влияют на вид фрактала Коха, заданы бегунками. Изменяя эти параметры, можно получить разные узоры.
В 2004 году проводилась командная олимпиада в среде Лого. На сайте (http:// acm.eltech.ru/logo/topoly.htm) опубликованы версии задач для дистанционного участия в среде Лого Миры 2 (http://acm.eltech.ru/logo/ logosch /pro olimp04/mw2 dist04.html) и в среде Micro WorldPro (http://acm.eltech.ru/ logo/logosch/pro/olimp04/mwpro dist04.html).
На указанных страницах приведены порядок работы и правила оценки результатов, а также условия задачи. Рабочее поле
на этой странице содержит все Лого-объекты, необходимые для проведения исследования.
Имеются кнопки для создания черепашек, текстовых окон, страниц проекта. Команды для управления объектами можно вводить в командном центре. Можно также для каждого созданного объекта описать алгоритм действий и назначить его выполнение этому объекту.
Назначения кнопок описаны в окне на указанной странице. Здесь же есть ссылка на коллекцию форм, доступных в приведенном проекте.
Проект содержит также команды для сохранения созданных объектов и их алгоритмов работы. Эти команды описаны в справке по языку Лого. Справка по языку Лого имеет два уровня. Первый содержит слова Лого, которые потребуются для решения. Второй уровень вызывается по ссылке из первого и содержит более подробную информацию о командах и датчиках.
Каждая страница НТМЬ-документа с олимпиадными задачами открывается в отдельном окне, что позволяет оперативно пользоваться помощью, коллекцией форм, не теряя рабочего окна.
Размер Лого-проекта с задачами довольно большой (235 кб) из-за большого количества использованной графики, которая хранится в коллекции форм. Однако этот проект предназначен для выполнения на клиентской машине и не требует многократного погружения данных с сервера. Поэтому можно рекомендовать сначала загрузить сам проект, открыть ссылки на условия задач, коллекцию форм и справку, а затем сеанс с Интернет можно закрыть.
После окончания работы рекомендуется использовать команды для сохранения созданных объектов. При этом в текстовом окне формируется программа-конструктор, которая описывает все имеющиеся объекты и действия, им назначенные. Достаточно было сохранить текст этой программы и полученный файл выслать организаторам олимпиады.
Безусловно, дистанционная форма олимпиады в среде Лого требует больше знаний от участников, чем очная работа в системе Лого Миры 2. Однако эти сложности могут быть вынесены за пределы работы начинающих участников и поручены более опытным пользователям. Сохранение и отправку результатов работы могли бы делать локальные координаторы (учителя, старшеклассники).
Обращаем внимание читателя на важное достоинство такой олимпиады: для участия в ней не требуется наличия систем Лого на локальном компьютере! Достаточно иметь браузер и установить проигрыватель -mwplagin.exe.
ЗАДАНИЕ 5.
Моделирование абстрактных форм
В марте 2002 года в Интернет появился обзор статьи (http://astronomv.swin.edu.au/ ~pbourke/curves/) «A generic geometric transformation that unifies a wide range of natural and abstract shapes» - «Общее геометрическое преобразование, которое объединяет широкий ряд естественных и абстрактных форм».
Автор этой статьи Johan Gielis предлагает новый подход для моделирования разнообразных абстрактных, природных и созданных человеком форм. Взяв за основу уравнение окружности, автор рассказывает, как, добавляя логарифмические и тригонометрические зависимости в это урав-
нение, можно получить самые разнообразные геометрические формы. В итоге .ГоИап ОеШ предлагает формулу
1
1
-cos
a
m е^
4
V
/
+
1
— sin b
m е
4
v
A
зависимости радиуса угла в полярных координатах (см. рисунок 1).
Как ни странно, это позволяет получить даже спиралевидные кривые. У фор-
мулы есть еще параметры (п1, п2, т) - они, собственно, и отвечают за форму кривой.
В проекте аЬз1г^огтез написаны программы движения черепашки в соответствии с указанной формулой (публикуется впервые).
Покажем в удаленной среде Лого, что может нарисовать черепашка, следуя указанным математическим зависимостям.
Учитывая, что данный проект будет публиковаться в Интернет, сразу установим небольшой размер рабочего поля -
[300 400], включим текстовое окно, которое будет играть роль командного центра. Подготовим конструкторы и деструкторы для создания и удаления нужных объектов:
to startup
newtext "command_center [-142 -160][280 40] command_center, setfont "system pr [This
is the Command Center] onreadline "command_center "run end
;3адание 1. Исследование зависимости ;координат точки в зависимости ;от радиуса-вектора ;и угла поворота этого радиуса. to constr1
Рисунок 1.
newslider "an [-150 200][-9999 9999 0] newslider "r [-30 200][0 100 50] newturtle "t1 pu home setsh 7 st setc 105 newtext "scale [90 200][50 30] setscale 100 end
to destrac1 eg
remove "t1 remove "an remove "r remove "scale end
Программы должны быть опубликованы в текстовом окне рядом с рабочим полем. Для этого создадим следующий HTML-документ:
<HTML> <HEAD>
<META NAME="keywords" CONTENT="MW Web Player">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <TITLE>Aбстрактные формы</TITLE> </HEAD> <BODY>
<table width=100%> <tr><td width=300 valign=top> <big>Mоделирование фракталов.</big> <OBJECT classid="CLSID:D467AA06-E4F1-454C-B08C-916996C09579" width=300 height=400> <PARAM name=URL value="abstr-formes.mw2"> <EMBED src="abstr-formes.mw2" type="application/x-mw2-plugin" pluginspage="http://www.lcsi.ca/webplayer" width=300 height=400></EMBED> </OBJECT>
<a href="logohelp.html" target="_blank">
Лого-помощь</a>
</td><td valign=top>
n
n
2
n
r
<з^опд>Текст процедур</з^опд> <БК> <textarea naшe=пjobп rows=25 ео1з=40 уа1ие=пп>
«здесь должны быть тексты программ на языке
Лого>>
</textarea><BR>
<ШРит type=button va1ue=пBозвратп onc1ick="1ocation.href='deш_pro.htш';"> </td> </tr>
</В0БУ>
</ытмь>
Вводя последовательно команды: task3 task4 task5 ex1, вы увидите, какие необыкновенные фигуры рисует черепашка.
Вводя команду ex2 c разными значениями параметра m (от 3 и увеличивая на 1), а также команду ex3 c разными значениями параметра m (от 5 и увеличивая на 1), вы почувствуете, как этот параметр влияет на форму фигуры (рисунки 2-4).
Проект abstr-formes опубликован на сайте Лого-школы (http://acm.eltech.ru/logo/ logosch /pro/dem pro.htm).
Более подробно о приведенной формуле и ее применении в среде Лого вы могли бы узнать, посещая занятия в дистанционной школе моделирования в среде Лого.
© Наши авторы, 2004. Our authors, 2004.
Кузнецова Ирина Николаевна, учитель информатики школы № 640, координатор секции Лого-Лего Международной конференции «Школьная информатика и проблемы устойчивого развития».