Научная статья на тему 'Графическая библиотека для Web-среды программирования pascalabc. Net'

Графическая библиотека для Web-среды программирования pascalabc. Net Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
244
29
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Михалкович Станислав Станиславович, Белякова Юлия Вячеславовна

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Михалкович Станислав Станиславович, Белякова Юлия Вячеславовна

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Графическая библиотека для Web-среды программирования pascalabc. Net»

Графическая библиотека для Web-среды программирования PascalABC.NET

С.С. Михалкович, Южный федеральный университет,

miks@math.sfedu.ru, Ю.В. Белякова, Южный федеральный университет,

Julbin@yandex.ru

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

Web-аналоги десктопных приложений

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

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

Очевидно, что для наиболее сложных десктопных приложений, к числу которых относятся интегрированные среды разработки программ (IDE, Integrated Development Environment), трудно реализовать аналогичный Web-аналог. В настоящее время для IDE сред разработки программ имеется лишь несколько попыток создать соответствующую Web-среду разработки (WDE, Web Development Environment). Наиболее удачными бесплатными Web-средами разработки программ являются

системы IDEOne, WebDevStudio и CodeRun Studio; их сравнительная характеристика дана в [1]. Некоторые из них (WebDevStudio) лишь создают исполняемый файл, компилируя его на сервере, и предлагают скачать этот файл на локальный компьютер. Другие (IDEOne) позволяют выполнить программу на сервере, но лишены интерактивности (после «запуска» программы открывается новая страница браузера, на которой расположен результат вывода программы или сообщения об ошибках компиляции).

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

Web-среда программирования PascalABC.NET

Система программирования PascalABC.NET [2] активно используется для обучения современному программированию [3]. Она включает в себя компилятор языка, близкого к Delphi, генерирующий код для платформы Microsoft .NET, а также простую и мощную среду разработки. Отметим, что в примерах программ настоящей работы используется ряд расширений языка Delphi, введенных в PascalABC.NET.

В 2009 г. была предпринята попытка создать её Web-аналог - Web-среду разработки PascalABC.NET. При её реализации ставились достаточно амбициозные цели: создать среду, максимально приближенную по функциональности к оригинальной среде PascalABC.NET, позволяющую каждому пользователю хранить свои файлы на сервере, редактировать их непосредственно в окне браузера, а также исполнять с возможностью интерактивного ввода-вывода, и наконец, публиковать ссылки на сетевые файлы программ на сайтах и форумах с возможностью немедленного запуска этих программ в окне браузера.

Поставленные задачи были реализованы с некоторыми ограничениями. На рис. 1 приведен общий вид Web-среды PascalABC.NET. Она состоит из окна редактора, панели инструментов, окна вывода (внизу), панелей авторизации, публикации и панели-браузера файлов (справа). Сохранение программы происходит на сервере в каталоге пользователя. После запуска программа компилируется и выполняется также на сервере, интерактивно запрашивая входные данные и выводя результаты в окно вывода (данные ввода-вывода передаются при этом по сети). Web-среда функционирует непосредственно через браузер и доступна по адресу http://pascalabc.net/WDE. Наиболее сложные технические моменты реализации описаны в [4]. Следует особо отметить активно используемую в проекте технологию AJAX, которая позволяет не перезагружать Web-страницу при получении и отображении данных с сервера.

© p<K(dlA8CJs№t wcf) development «ivrorimcri» (WOE) - Mode FSrefox ¿121 *J

Омска вш Ззклддки &*;трумен1ь Стожа

- С X £i 1\№p\J/p*xjlitrc.netjwcEi <Cz • Pf-|goö£s р] ф

J £ ße«ä(AeCJVfelwd>dev«lüp... I + | |

WDE P^scalÄBCÄt " * ^ wtbdevdopmcftt environment ЛОМиФннл! I80JÜ Актиьнь»* посетителей <«rofl.nn: 0

J H И мО^а» J '3 + - Я Авторизация

ели« »» I rff pll ТгО«С*4 Я.[Ч» ГОфЛМО&ЗтелЬ- miki> ц ив «»'fr пароле Выйти | Помощь Управление файлами Файлы ткущего еаакса геЫ isUisii Г" ar ,f&t Г Marxa.jaai Г Г" LonjTime о« Г ftotxftt.pas Г Т гее Draw, if a i Г EüÄLfiAS г EftteAPolw Г

// Перед вами - М£В-Среда разработки PascalABC. IffiT (ьерсия 0.7) . // Она основана на современном языке PascalABC.IffiT,, совместимом // с Delphi Pascal. Программа запускается на сервере,, ввод-вывод // передается по сети. Программу можно опубликовать н ссыпаться И на нее в Интернете в вндё http://раасаlabe.net/l№/?fil«=HMfl. Jj Зарегистрированные пользователи получа»т дополнительные возм<у УУ долговременное хранение своих программ, возможность работы с v« х,у: integer; begin write("Введите два целых числа, разделяя их пробелом; "); read in (х, у); writeIn('Сумма ,ixi1 и '¿у*' равна \х+у); write in ('Разность ' н ',у,' равна ', х-у) ;

11 writ'ilni 'Произведение и ',у, ' равно ' : * Jj

end. | Опервции «13 в Я&Щ Примеры

ГЬ»чн* Diero Cipiie.itw* 7ii

6 vi« Ошибки

Публжацмя &tf! опубликовании* Файлы. ФлЗлы., опубликованные в г йкущйм спаисв

готоеэ

Рис.1. Общий вид Web-среды PascalABC.NET

Основные возможности графического модуля

Поскольку графические программы активно используются при обучении программированию школьников и студентов, был реализован модуль графики Graph - облегченный аналог стандартного модуля GraphABC для десктопной системы PascalABC.NET. Данный модуль включает в себя ряд графических примитивов, объекты пера, кисти и шрифта для установки глобальных параметров рисования, функции работы с цветами, объект окна для работы со свойствами окна и события мыши и клавиатуры для создания простых событийных приложений.

В число графических примитивов входят процедуры рисования отрезков, прямоугольников, кругов и вывода текста. Перо Pen позволяет задавать параметры рисования линий и имеет атрибуты Color (цвет) и Width (толщина). Кисть Brush отвечает за рисование внутренности замкнутой области и имеет атрибут Color. Шрифт Font хранит следующие свойства: Color, Size (размер в пунктах), Style (стиль - например, курсив) и Name (имя - например, Arial). Окно Window имеет заголовок Title, ширину Width, высоту Height; его можно очистить (Clear) и закрыть (Close). Цвет задается типом Color и включает в себя предопределенные цветовые константы вида Color.Red, Color.Blue и т.д.

Технически модуль Graph реализован с помощью тега canvas и поэтому не поддерживается браузером Internet Explorer до версии 8 включительно.

Простейшая программа

Приведем простейшую программу для модуля Graph: uses Graph; begin

Window.Title := 'Простейшая программа'; Brush.Color := Color.LightGray; var ww := Window.Width; var wh := Window.Height; FillRectangle(2 0,2 0,ww-2 0,wh-2 0); Font.Size := 14;

TextOut(13 0,wh div 2,'Серый прямоугольник'); end.

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

Рис.2. Вывод простейшей программы

По ссылке http://pascalabc.net/WDE/?file=Moscow 10/Simple.pas можно открыть данную программу в окне браузера и выполнить ее.

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

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

Анимация

Ниже приведена простейшая программа, реализующая анимацию: uses Graph; begin

Brush.Color := Color.Red; for var i:=50 to 150 do begin

FillCircle(2*i,100,30); Sleep(200); Window.Clear; end; end.

Здесь команда Sleep(200) задает паузу в 200 миллисекунд. Особенность реализации команды Sleep состоит в том, что она выполняется не на сервере, а на клиентском компьютере, что достигается генерацией специальной последовательности команд на Java Script.

Данная программа находится в сети по следующему адресу: http ://pascalabc.net/WDE/?file=Moscow 10/Anim.pas.

Событийные программы

Приведем программу, обрабатывающую событие щелчка мышью в графическом окне: uses Graph;

var FirstClick := True;

procédure MyMouseDown(x, y, mb: integer); begin

DrawCircle(x,y,5); if FirstClick then

MoveTo(x,y) else LineTo(x, y); FirstClick := False; end; begin

OnMouseDown := MyMouseDown; Window.Title := 'Рисование ломаной'; end.

Здесь событие OnMouseDown реализовано в виде процедурной переменной, которой в основной программе присваивается обработчик MyMouseDown. В результате работы программы и ряда щелчков мышью в графическом окне получим следующий результат:

Рис.3. Рисование мышью

Данная программа находится в сети по следующему адресу:

http://pascalabc.net/WDE/?file=Moscow10/MouseEvents.pas.

Следует отметить, что при каждом щелчке мышью внутри графического окна соответствующее событие отправляется на сервер, где срабатывает обработчик MyMouseDown, который передает назад на клиент несколько команд рисования. За счет передачи данных по сети задержка между нажатием мыши и обработкой этого нажатия может составлять от долей секунды до 1-2 секунд.

Использование для обучения

Web-среда программирования PascalABC.NET используется в процессе обучения как вспомогательное средство. Она позволяет ученику и преподавателю осуществлять доступ к личному каталогу программ с любого компьютера, который работает под управлением любой операционной системы и на котором не обязательно установлена система программирования PascalABC.NET. Она позволяет также публиковать в Интернете статьи с примерами программ, реализованными в виде гиперссылок на страницы Web-среды (как в этом тексте). Используется

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

Что касается графических возможностей Web-среды PascalABC.NET, то они используются по нескольким направлениям:

1. Иллюстрация алгоритмов, например:

http://pascalabc.net/WDE/?file=WDEGraph/GrLabvrinth.pas - генерация случайного лабиринта;

http://pascalabc.net/WDE/?file=WDEGraph/Dragon.pas - фракталы, рисование кривой Дракона;

http://pascalabc.net/WDE/?file=Moscow10/Mandelbrot.pas - фракталы, множество Мандельброта.

2. Создание графических объектов для изучения объектно -ориентированного программирования, например:

http://pascalabc.net/WDE/?file=Moscow10/Balls.pas - создание графического объекта Ball, анимация с отражением от стен.

3. Обучение событийному программированию.

Литература

1. Ю. В. Белякова, И. В. Бондарев, С. С. Михалкович. Первое сообщение о Web-среде разработки PascalABC.NET. / Научно-методическая конференция «Современные информационные технологии в образовании: Южный Федеральный округ». Ростов-на-Дону, 2010. - С.58-59.

2. Электронный ресурс http://pascalabc.net.

3. С. С. Михалкович. Курс «Основы программирования» на базе системы PascalABC.NET / IV Международная научно-практическая конференция «Современные информационные технологии и ИТ-образование». Москва, 2009. - С.385-392.

4. Ю. В. Белякова, С. С. Михалкович. Web-среда разработки PascalABC.NET / XVII Всероссийская научно-методическая конференция «Телематика 2010». Санкт-Петербург, 2010. - С.139-142.

i Надоели баннеры? Вы всегда можете отключить рекламу.