PascalABC.NET
История создания и структура среды программирования PascalABC.NET (языка Delphi для платформы Microsoft.NET). Описание графического модуля GraphABC данной среды на основе примеров простейших несобытийных и событийных программ. Сфера его использования.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 19.02.2012 |
Размер файла | 747,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Содержание
Введение
Глава 1.
1.1 Из истории PascalABC.net
1.2 Коротко о главном
1.3 Преимущества PascalABC.net
Глава 2.
2.1 Графический модуль GraphABC
2.2 Примеры программ
Заключение
Список литературы
Введение
В последнее время в современной России графические программы активно используются при обучении программированию школьников и студентов. В частности, в среде программирования PascalABC.NET специально разработан модуль GraphABC, который представляет собой простую графическую библиотеку и предназначен для создания несобытийных графических и анимационных программ в процедурном и частично в объектном стиле. Основная сфера использования модуля GraphABC - обучение. Из вышесказанного вполне очевидна актуальность выбранной темы. Так же работа с графикой широко используется в любой из сред программирования.
Объектом исследования в данной курсовой работе является среда программирования PascalABC.NET.
Предметом исследования же является графический модуль данной среды программирования - GraphABC.
Цель данной работы рассмотреть графический модуль на примере различных программ.
Для достижения поставленной цели в данной работе необходимо рассмотреть ряд задач исследования:
- рассмотреть среду программирования PascalABC.NET, ее структуру; - рассмотреть графический модуль GraphABC; - разработать несколько программ: от простейших к более сложным. Практическая значимость данной работы довольно велика, так как работа с графикой в среде программирования очень распространена, а данная курсовая работа поможет прояснить некоторые теоретические и практические вопросы.
Глава 1.
1.1 Из истории PascalABC.NET
PascalABC.NET - это язык Delphi (Object Pascal) для платформы Microsoft.NET, содержащий все основные элементы современных языков программирования: модули, классы, перегрузку операции, интерфейсы, исключения, обобщенные классы, сборку мусора, а также некоторые средства параллельности, в том числе директивы OpenMP. Система PascalABC.NET включает в себя также простую интегрированную среду, ориентированную на эффективное обучение программированию.
Язык Паскаль был разработан Никлаусом Виртом в 1970 г. как язык со строгой типизацией и интуитивно понятным синтаксисом. В 80-е годы наиболее известной реализацией стал компилятор Turbo Pascal фирмы Borland, в 90-е ему на смену пришла среда программирования Delphi, которая стала одной из лучших сред для быстрого создания приложений под Windows. Delphi ввела в язык Паскаль ряд удачных объектно-ориентированных расширений, обновленный язык получил название Object Pascal. Из альтернативных реализаций Object Pascal следует отметить многоплатформенный open source компилятор Free Pascal.
Основная причина создания PascalABC.NET - необходимость в современной простой и мощной бесплатной среде для языка Object Pascal, опирающейся на передовую платформу программирования Microsoft.NET. Платформа .NET обеспечивает язык PascalABC.NET огромным количеством стандартных библиотек и позволяет легко сочетать его с другими .NET-языками: C#, Visual Basic.NET, управляемый C++, Delphi.NET, Delphi Prism и др. Платформа .NET предоставляет также такие языковые средства, как единый механизм обработки исключений, единый механизм управления памятью в виде сборки мусора, а также возможность свободного использования классов, наследования, полиморфизма и интерфейсов между модулями, написанными на разных .NET-языках.
Язык PascalABC.NET близок к реализации Delphi (Object Pascal). В нем отсутствует ряд специфических языковых конструкций Delphi, таких как открытые массивы, записи с вариантами, Variant-тип и т.п., некоторые конструкции изменены (не требуется писать overload, иной синтаксис перегрузки операций, вместо процедурных переменных используются делегаты .NET, интерфейсы реализованы в стиле C# и т.д.). Кроме этого, добавлен ряд возможностей: можно описывать переменные внутри блока, методы в записях, подпрограммы с переменным числом параметров, имеются операции +=, -=, *=, /=, в секции uses можно подключать пространства имен .NET, методы можно описывать непосредственно в теле класса или записи, поля классов можно инициализировать при описании, множества set могут быть на базе произвольных типов, введены операторы foreach и lock, переменные циклов for и foreach можно описывать непосредственно в заголовке цикла, имеются обобщенные классы (generics) и др.
Наиболее близким по идеологии к PascalABC.NET является язык Object Pascal системы CodeGear DelphiPrism. Однако он сильно изменен в сторону .NET: нет глобальных описаний, все описания помещаются в класс, содержащий классовый метод Main, отсутствует ряд стандартных подпрограмм языка Паскаль. Кроме того, система Delphi Prism - платная (за исключением консольного компилятора) и не содержит собственной оболочки (встраивается в Visual Studio).
Интегрированная среда PascalABC.NET обеспечивает подсветку синтаксиса, подсказку по коду (подсказка по точке, подсказка параметров подпрограмм, всплывающая подсказка по коду), форматирование текста программы по запросу, переход к определению и реализации имени, элементы рефакторинга.
Внутренние представления PascalABC.NET позволяют создавать компиляторы других языков программирования и встраивать их в среду с помощью специальных плагинов.
Все права на систему программирования PascalABC.NET принадлежат PascalABCCompiler Team.
1.2 Коротко о главном
Данный текст содержит краткий обзор особенностей языка PascalABC.NET.
Один из авторов PascalABC.NET преподает программирование более 20 лет, знает множество подходов к изучению и преподаванию программирования. Выскажем несколько соображений об изучении программирования и роли системы PascalABC.NET в этом процессе.
· PascalABC.NET - одна из сред, в которой удобно учить программированию. Она ориентирована прежде всего на студентов и школьников, желающих быстро научиться современному языку программирования. По этому критерию, с нашей точки зрения, аналога PascalABC.NET среди отечественных разработок нет.
· PascalABC.NET - мощный и современный язык программирования, однако возможности оболочки ориентированы прежде всего на обучение: простота, подсказки по коду.
· Компилятор PascalABC.NET генерирует код, выполняющийся так же быстро, как и код на C#, и немного медленнее, чем код на C++ и Delphi.
· Язык Паскаль - один из лучших языков для начального обучения программированию.
· Мнение, что язык Паскаль устарел и утрачивает свои позиции, основано на представлении о старом Паскале и старых средах программирования. Кроме того, оно подкрепляется некоторым утрачиванием позиций системы Delphi и связано с неверным мнением, что надо учить программировать на "настоящих" промышленных языках "чтобы потом не приходилось переучиваться".
· Масса отечественной учебной литературы с упорством, достойным лучшего применения, ориентирована на отживший Turbo Pascal с древней консольной оболочкой, бедной графической библиотекой и устаревшими средствами объектно-ориентированного программирования.
· Обучение программированию - это множество алгоритмов, умение структурировать и читать программы, находить в них ошибки. Современные конструкции языка (классы, интерфейсы, исключения, события) здесь вовсе необязательны. Однако, если они есть в языке и просты, то их стоит использовать с самого начала обучения, не откладывая "на потом".
· PascalABC.NET - реализация Delphi, в которой отсутствуют специфические языковые средства Delphi, не имеющие особого значения вне среды Delphi.
· PascalABC.NET основан на платформе .NET и позволяет пользоваться огромным количеством .NET-библиотек, включая контейнерные классы, работу с сетью, базами данных и пр. Кроме того, можно легко сочетать библиотеки, разработанные на PascalABC.NET и других .NET-языках.
· PascalABC.NET расширен новыми современными языковыми возможностями, о которых пойдет речь далее.
· PascalABC.NET - достаточно зрелая среда. Ее прототип - учебная система Pascal ABC - появилась в 2002 году и достаточно активно используется в российских и белорусскихшколах.
· PascalABC.NET - развивающаяся среда. Ведутся разработки новых языковых возможностей, новых библиотек и новых языков программирования, которые будут интегрированы в общую среду.
· PascalABC.NET имеет Web-версию WDE PascalABC.NET, представляющую собой среду разработки в окне браузера. Программы при этом сохраняются и компилируются на сервере, ввод-вывод (в т.ч. и интерактивный) передается по сети.
Общий вид PascalABC.NET
PascalABC.NET - подсказки.
1.3 Преимущества PascalABC.NET
Современный язык программирования Object Pascal.
Язык PascalABC.NET позволяет использовать большинство средств, предоставляемых платформой .NET: единая система типов, классы, интерфейсы, исключения, делегаты, перегрузка операций, обобщенные типы (generics), методы расширения, обширные.NET-библиотеки. Добавлен ряд языковых конструкций: описание метода в теле класса, множества произвольных типов, операторы foreach и lock, внутриблоковые переменные. С другой стороны, PascalABC.NET имеет структуру языка Delphi (Object Pascal): внешние процедуры и функции, модули.
Простая среда разработки, ориентированная на обучение.
Одна из важных особенностей интегрированной среды разработки, ориентированной на обучение, - простота. Интерфейс такой среды не должен выглядеть как интерфейс профессиональных сред программирования или, по крайней мере, должен быть настраиваемым по сложности. Кроме того, среда разработки должна предоставлять специфические для обучения средства, позволяющие облегчить именно обучение программированию (например, ясную диагностику ошибок).
Среда Microsoft Visual Studio.NET Express свободна для некоммерческого использования и позиционируется как среда для обучения. Однако, на наш взгляд, она неоправданно сложна для начинающих программистов (особенно для школьников), содержит много "отвлекающих" деталей. Кроме того, даже самая простая программа на Visual Basic.NET обязательно требует создания проекта. Сразу после создания проекта консольного приложения для Visual Basic в Visual Studio.NET 2005 на диске создается 7 папок и 12 (!) файлов, после первой компиляции количество файлов возрастает до 21. Особенно неприятен для начинающих процесс переноса такого приложения на другой компьютер.
В среде PascalABC.NET в результате компиляции консольного приложения в PascalABC.NET создается всего 1 файл с расширением .exe, а вместо файла проекта используется файл главной программы с подключаемыми к нему в тексте программы модулями. Отсутствие проектов в PascalABC.NET (все модули подключаются в тексте основной программы в разделеuses) позволяет начинающим воспринимать программу только как ее текст, а не как текст с дополнительными ухищрениями, которые могут меняться от системы к системе.
Кроме того, в среде PascalABC.NET большое внимание уделено связи запущенной программы с оболочкой: консольная программа, запущенная из-под оболочки, осуществляет ввод-вывод в специальном окне, встроенном в оболочку. Можно также запустить несколько приложений одновременно: все они будут контролироваться оболочкой.
Специализированные модули для обучения.
Помимо языка и среды, PascalABC.NET предоставляет ряд модулей, нацеленных на обучение. К их числу относятся модуль растровой графики GraphABC, модуль векторных графических объектов ABCObjects, модуль Collections упрощенных коллекций, модули школьных исполнителей Робот и Чертежник.
Кроме этого, PascalABC.NET содержит модуль электронного задачника Programming Taskbook (автор Абрамян М.Э.), позволяющий осуществлять автоматическую постановку и проверку заданий.
Имеются также модули для преподавателя, позволяющие создавать задания для исполнителей Робот, Чертежник и электронного задачника.
программа pascal graphabc графический
Глава 2.
2.1 Графический модуль PascalABC.NET
Модуль GraphABC представляет собой простую графическую библиотеку и предназначен для создания несобытийных графических и анимационных программ в процедурном и частично в объектном стиле. Рисование осуществляется в специальном графическом окне, возможность рисования в нескольких окнах отсутствует. Кроме этого, в модуле GraphABC определены простейшие события мыши и клавиатуры, позволяющие создавать элементарные событийные приложения. Основная сфера использования модуля GraphABC - обучение.
Данный модуль включает в себя ряд графических примитивов, объекты пера, кисти и шрифта для установки глобальных параметров рисования, функции работы с цветами, объект окна для работы со свойствами окна и события мыши и клавиатуры для создания простых событийных приложений.
В число графических примитивов входят процедуры рисования отрезков, прямоугольников, кругов и вывода текста. Перо Pen позволяет задавать параметры рисования линий и имеет атрибуты Color(цвет) и Width (толщина). Кисть Brush отвечает за рисование внутренности замкнутой области и имеет атрибут Color. Шрифт Font хранит следующие свойства: Color, Size (размер в пунктах), Style (стиль - например, курсив) и Name (имя - например, Arial). Окно Window имеет заголовок 3 Title, ширину Width, высоту Height; его можно очистить (Clear) и закрыть (Close). Цвет задается типом Color и включает в себя предопределенные цветовые константы вида Color.Red, Color.Blue и т.д.
Модуль GraphABC основан на графической библиотеке GDI+, но запоминает текущие перо, кисть и шрифт, что позволяет не передавать их в качестве параметров при вызове графических примитивов. К свойствам пера, кисти и шрифта можно получать доступ как в процедурном, так и в объектном стиле. Например, для доступа к цвету текущего пера используется процедура SetPenColor(c) и функция PenColor, а также свойство Pen.Color.
В модуле GraphABC можно управлять самим графическим окном и компонентом GraphABCControl, на котором осуществляется рисование. По умолчанию компонент GraphABCControl занимает всю клиентскую часть графического окна, однако, на графическое окно можно добавить элементы управления, уменьшив область, занимаемую графическим компонентом (например, так сделано в модулях Robot и Drawman).
Для работы с рисунками используется класс Picture, позволяющий рисовать на себе те же графические примитивы, что и на экране.
Режим блокировки рисования на экране (LockDrawing) позволяет осуществлять прорисовку лишь во вне экранном буфере, после чего с помощью метода Redraw восстанавливать все графическое окно. Данный метод используется для ускорения анимации и создания анимации без мерцания.
В модуле GraphABC определен ряд констант, типов, процедур, функций и классов для рисования в графическом окне.
Далее хотелось бы привести несколько примеров программ с использованием графического модуля.
2.2 Примеры программ
Простейшая программа
Приведем простейшую программу для модуля Graph:
uses Graph;
begin
Window.Title := 'Простейшая программа';
Brush.Color := Color.LightGray;
var ww := Window.Width;
var wh := Window.Height;
FillRectangle(20,20,ww-20,wh-20);
Font.Size := 14;
TextOut(130,wh div 2,'Серый прямоугольник');
end.
В результате ее запуска мы увидим следующее графическое окно, появившееся поверх окна браузера.
Рис.1. Вывод простейшей программы
По ссылке http://pascalabc.net/WDE/?file=Moscow10/Simple.pas можно открыть данную программу в окне браузера и выполнить ее.
Поскольку внутренность данного окна содержит тег canvas, графические команды на клиенте переводятся в соответствующие команды JavaScript, которые и осуществляют рисование на битовом образе, соответствующем тегу canvas.
Заметим, что программа продолжает работать на сервере до закрытия графического окна, после чего на сервер передается соответствующий сигнал, и программа завершается. Если по каким-то причинам связь с сервером была прервана, то программа будет автоматически завершена на сервере через несколько минут.
Анимация
Ниже приведена простейшая программа, реализующая анимацию:
uses Graph;
begin
Brush.Color := Color.Red;
forvar i:=50 to 150 do
begin
FillCircle(2*i,100,30);
Sleep(200);
Window.Clear;
end;
end.
Здесь команда Sleep(200) задает паузу в 200 миллисекунд. Особенность реализации команды Sleepсостоит в том, что она выполняется не только на сервере, но и на клиентском компьютере, что достигается генерацией специальной последовательности команд на JavaScript.
Данная программа находится в сети по следующему адресу: http://pascalabc.net/WDE/?file=Moscow10/Anim.pas .
Событийные программы
Приведем программу, обрабатывающую событие щелчка мышью в графическом окне:
uses Graph;
var FirstClick := True;
procedure 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. В результате работы программы и ряда щелчков мышью в графическом окне получим следующий результат:
Рис 2. Рисование мышью
Данная программа находится в сети по следующему адресу: http://pascalabc.net/WDE/?file=Moscow10/MouseEvents.pas .
Cледует отметить, что при каждом щелчке мышью внутри графического окна соответствующее событие отправляется на сервер, где срабатывает обработчик MyMouseDown, который передает назад на клиент несколько команд рисования. За счет передачи данных по сети задержка между нажатием мыши и обработкой этого нажатия может составлять от долей секунды до 1-2 секунд.
Гистограмма.
Построить столбчатую диаграмму (гистограмму), отображающую динамику среднесуточных температур воздуха в течение недели.
Для ввода значений температуры, можно воспользоваться датчиком случайных чисел Random.
program Graf_1;
uses GraphABC;
const dx=50; {ширина столбика}
z=20; {расстояние между столбиками}
k=7; {число дней в неделе}
delta = 10;{диапазон изменения температур от -10о до 10о}
var x, y, color, i, t, xm, ym: integer;
begin
TextOut(250,0,'ТЕМПЕРАТУРА ВОЗДУХА ЗА НЕДЕЛЮ');
xm:=WindowWidth;
ym:=WindowHeight;
y:=ym div 2;
x:=dx+z;
Line(x-z,y,xm-z,y); {ось OX}
Line(x-z,z,x-z,ym-z); {ось OY}
TextOut(x-2*z,y,'0');
for i:=1 to k do
begin
t:= Random(2*delta)-delta;
if t>0 then color:=clRed
else color:=clBlue;
SetPenColor(color);
Rectangle(x,(y-10*t),x+dx,y);
x:=x+dx+z
end
end.
Результат работы программы Graf_1 приведен на рисунке 3.
Рис 3.Гистограмма
программа pascal graphabc графический
Заключение
Данная курсовая работа помогла прояснить некоторые теоретические и практические вопросы, связанные со средой программирования PascalABC.NET, а также с графическим модулем данной среды программирования.
В курсовой работе был приведен краткий обзор программы PascalABC.NET, рассмотрена ее структура, основные примитивы, а также более подробно рассмотрен графический модуль Graph.
Графический модуль Graph был рассмотрен также на основе примеров простейших несобытийных и событийных программ.
Практическая значимость данной работы довольно велика, т.к. работа с графикой очень распространена и основной сферой использования графического модуля является - обучение.
Список литературы
2. Михалкович С.С. Учебная система программирования PascalABC // Научно-методическая конференция «Современные информационные технологии в образовании: Южный Федеральный округ» 13--14 мая 2004 / Крукиер Л.А., Муратова Г.В. -- Ростов-на-Дону: ЮГИНФО РГУ,2004. -- С. 156--158. -- 252 с. -- 200 экз.
3. Михалкович С.С. Учебная система программирования PascalABC: опыт разработки и использования // Вторая международная научно-практическая конференция «Современные информационные технологии и ИТ-образование»: Сборник трудов -- М., 2006. -- С. 394--399.
4. Водолазов Н.Н., Михалкович С.С., Ткачук А.В. Опыт разработки учебного языка программирования для платформы .NET // Научно-методическая конференция «Современные информационные технологии в образовании: Южный Федеральный округ» 26--29 апреля 2007 / Крукиер Л.А., Муратова Г.В. -- Ростов-на-Дону: Изд-во «ЦВВР», 2007. -- С. 71--73. -- 312 с. -- 250 экз. -- ISBN 978-5-94153-146-2.
5. Абрамян М.Э. Практикум по программированию на языке Паскаль: Массивы, строки, файлы, рекурсия, указатели -- Ростов-на-Дону: ООО «ЦВВР», 2004. -- 187 с. -- ISBN 5-94153-001-3.
6. Интернет-ресурс: Http://Pascalabc.net
Размещено на Allbest.ru
Подобные документы
Краткая история становления языка программирования Pascal и основные понятия графики. Основные функции и процедуры работы с графикой в PascalABC. Создание графического проекта: понятие "фрактал" и реализация треугольника. Построения фрактала "Дерево".
курсовая работа [1,4 M], добавлен 26.10.2014Структура компилятора PascalABC.NET. Структура дерева и примеры узлов. Упрощенный синтаксис записи модулей. Объявление имен, совпадающих с ключевыми словами. Генерация узла семантического дерева. Сериализация и десериализация узлов семантического дерева.
курсовая работа [1,8 M], добавлен 18.12.2011Основные приемы работы в среде программирования Delphi. Особенности технологии создания простейших приложений. Работа с компонентами среды разработки приложений. Ввод, редактирование, выбор и вывод информации. Аспекты использования структуры ветвления.
методичка [619,9 K], добавлен 17.11.2011Delphi как среда разработки программ, ориентированных на работу в Windows. Назначение и преимущество использования электронных учебников. Описание возможностей среды Delphi 5 для разработки электронного учебника. Варианты применения служб Internet.
дипломная работа [3,6 M], добавлен 13.07.2011Изучение общей структуры языка программирования Delphi: главные и дополнительные составные части среды программирования. Синтаксис и семантика языка программирования Delphi: алфавит языка, элементарные конструкции, переменные, константы и операторы.
курсовая работа [738,1 K], добавлен 17.05.2010Изучение особенностей создания алгоритмов вычислительных задач. Визуальное программирование стандартных компонентов среды программирования Delphi. Технология создания компонента Delphi для решения производственной задачи. Выполнение блок-схемы алгоритма.
курсовая работа [638,0 K], добавлен 30.01.2015Сущность программирования с использованием среды Delphi 7 и ее основные графические возможности. Структура автономно компилируемого программного модуля и его принципы. Основные приемы работы с графическими процедурами, построение дуги, круга и эллипса.
курсовая работа [138,2 K], добавлен 16.12.2011Описание процесса проектирования информационно–справочной системы с помощью среды разработки PascalABC.Net, ее использование для регистрации обращений в медицинское учреждение. Логическая структура программы, алгоритм ее работы, особенности интерфейса.
курсовая работа [628,8 K], добавлен 07.06.2017Рассмотрение особенностей среды программирования Delphi, анализ клиент-серверной версии. Знакомство с библиотекой визуальных компонентов. Основные функции интеллектуального редактора. Характеристика требований к базам данных. Функции программы "Магистр".
дипломная работа [1,5 M], добавлен 10.03.2013Особенности среды визуального проектирования Borland Delphi 7.0. Этапы разработки программы и составления блок-схемы алгоритмов. Способы вычисления кусочно-заданной функции одной переменной. Рассмотрение компонентов среды Delphi, ее предназначение.
контрольная работа [703,8 K], добавлен 24.09.2012