Язык Паскаль признан многими российскими преподавателями как один из лучших именно для начального обучения. Однако, среда Turbo Pascal, ориентированная на MS DOS, устарела, а среда Borland Delphi с ее богатыми возможностями сложна для начинающего программиста. Кроме этого, использование Turbo Pascal 7.0 на компьютерах с операционной системой Windows 7 весьма неудобно. В связи с этим, многие студенты для самостоятельной работы используют систему программирования Pascal ABC, разработанную в Ростовском государственном университете
Система Pascal ABC основана на языке Pascal и призвана осуществить постепенный переход от простейших программ к модульному, событийному, объектно-ориентированному и компонентному программированию. Некоторые языковые конструкции в Pascal ABC допускают, наряду с основным, упрощенное использование, что позволяет использовать их на ранних этапах обучения. Например, в модулях может отсутствовать разделение на секцию интерфейса и секцию реализации. В этом случае модули устроены практически так же, как и основная программа, что позволяет приступить к их изучению параллельно с темой "Процедуры и функции".
Компилятор Pascal ABC является компилятором переднего плана (front-end). Это означает, что он не генерирует исполняемый код в виде .exe-файла, а создает в результате компиляции дерево программы в памяти, которое затем выполняется с помощью встроенного интерпретатора. В итоге скорость работы программы примерно в 20 раз медленнее скорости работы этой же программы, откомпилированной в среде Turbo Pascal, но для целей обучения это не является серьезным недостатком.
В свободно распространяемую версию Pascal ABC & Programming Taskbook Mini Edition кроме среды программирования входит мини-версия электронного задачника (200 задач).
Язык Паскаль системы Pascal ABC является достаточно мощным и содержит, в частности, практически все возможности языка Borland Pascal. Помимо конструкций, описанных в данном пособии, он поддерживает рекурсию, вложенные описания подпрограмм, массивы, файлы (кроме нетипизированных), указатели (в том числе и указатели на подпрограммы). Можно создавать классы, использовать наследование и полиморфизм. Имеется также простейшая событийная модель, позволяющая писать приложения, управляемые событиями. Графическая библиотека близка по возможностям к графической библиотеке системы Borland Delphi и использует понятия и методы графического ядра операционной системы Windows.
Практически все конструкции языка Turbo Pascal, приведенные в данном пособии, можно использовать в Pascal ABC, единственным исключением является материал 11 главы (Графика), где имеются весьма незначительные отличия, описанные ниже.
Следует отметить очень удобный интерфейс системы Pascal ABC, показанный на рисунке 13.1. В основном окне системы одновременно присутствуют окно редактирования программы, окно ввода исходных данных и окно вывода результатов. Текст программы можно сохранить или считать с помощью стандартного интерфейса Windows; названия окон, команды, система меню, сообщения об ошибках выполнены на русском языке. Система программирования имеет очень подробную встроенную помощь на русском языке.
Рисунок 13.1 – Интефейс системы Pascal ABC
Работа с графикой в Pascal ABC несколько отличается от описанной в главе 11, ниже будут приведены эти отличия.
Модуль, содержащий графические подпрограммы имеет имя GraphABC, поэтому подключение графики осуществляется директивой Uses GraphABC.
Для графики в Pascal ABC предусмотрено специальное графическое окно, которое открывается автоматически при обращении к модулю, из-за этого инициализации графического режима (InitGraph) и закрытия его (CloseGraph) выполнять не нужно.
В начале программы можно задать размеры открывающегося графического окна (в пределах разрешения экрана, установленного в Windows).
При открытии графического окна по умолчанию цвет фона – белый, цвет пера – черный.
Стандартные цвета задаются символическими константами:
clBlack – черный clPurple – фиолетовый clWhite – белый clMaroon – темно-красный clRed – красный clNavy – темно-синий clGreen – зеленый clBrown – коричневый clBlue – синий clSkyBlue – голубой clYellow – желтый clCream – кремовый | clAqua – бирюзовый clOlive – оливковый clFuchsia – сиреневый clTeal – сине-зеленый clGray – темно-серый clLime – ярко-зеленый clMoneyGreen – цвет зеленых денег clLtGray – светло-серый clDkGray – темно-серый clMedGray – серый clSilver |
Процедуры работы с графикой Pascal ABC почти не отличаются от соотверствующих процедур Turbo Pascal (Таблица 13.1).
Таблица 13.1 – Соответствие графических подпрограмм Turbo Pascal и Pascal ABC
подпрограммы Turbo Pascal | подпрограммы Pascal ABC |
SetWindowSize(x,y: integer) Задает размеры графического окна | |
InitGraph, CloseGraph | отсутствует |
MoveTo(x,y:integer) | MoveTo(x,y: integer); |
PutPixel(x,y:integer;Pixel:word) | SetPixel(x,y,color: integer) |
LineTo(x,y:integer) | LineTo(x,y: integer) |
LineRel(dx,dy:integer) | отсутствует |
Line(x1,y1,x2,y2:integer); | Line(x1,y1,x2,y2: integer) |
Rectangle(x1,y1,x2,y2:integer) | Rectangle(x1,y1,x2,y2: integer) |
Circle(x,y:integer;Radius:word) | Circle(x,y,r: integer) |
Arc(x,y:integer;A1,A2,Radius:word | Arc(x,y,r,a1,a2: integer) |
Ellipse(x,y:integer;a1,a2,xr,yr:word) | Ellipse(x1,y1,x2,y2: integer) Рисует эллипс, заданный своим описанным прямоугольником с координатами противоположных вершин (x1,y1) и (x2,y2) |
SetLineStyle(LineStule,Pattern,Thick:word) | SetPenStyle(ps: integer) |
SetColor ( Color : word ) | SetPenColor(color: integer) |
SetBkColor ( Color : word ); | ClearWindow(c: ColorType) Очищает графическое окно цветом c |
SetFillStyle(Pattern:word;Color:word) | отсутствует |
FloodFill(x,y:integer;Border:word | FloodFill(x,y,color: integer) |
OutText ( TextString : string) | отсутствует |
OutTextXY(x,y:integer;TextString:string) | TextOut(x,y: integer; s: string) |
Подробнее про графику Pascal ABC можно прочитать в работе [6] или во встроенной помощи системы.
На рисунке 13.2 приведен пример решения задачи из раздела 11.3 на языке Pascal ABC.
Скачать Pascal ABC (рекомендуется версия 3.01) можно бесплатно на сайте http://sunschool.math.rsu.ru/.
Program Example_25;
Uses GraphABC;
Const xn=150; yn=300; l=120; ras=100; lo=40; a=10; ld=10;
ho=60; h1=100; h2=50; p=25; hd=67; hk=120; rdx=25;rdy=55;
var x,y,x1,y1,x2,y2 : integer;
begin
SetWindowSize(600,480) ;
SetPenColor(clBrown); { установка коричневого цвета }
Rectangle(xn,yn,xn+l,yn-h1); { рисование первого этажа }
x:=xn+l div 2 -a; y:=yn-p;
x1:=x-lo; y1:=y-ho;
Rectangle(x,y,x1,y1); { левое окно }
x2:=x-lo div 2; y2:=y-ho div 2;
line(x,y2,x2,y); { ромбик в левом окне }
line(x2,y,x1,y2);
line(x1,y2,x2,y1);
line(x2,y1,x,y2);
x:=x+2*a; x1:=x+lo;
Rectangle(x,y,x1,y1); { правое окно }
x2:=x+lo div 2;
line(x,y2,x2,y); { ромбик в правом окне }
line(x2,y,x1,y2);
line(x1,y2,x2,y1);
line(x2,y1,x,y2);
x:=xn+ l div 2; y:=yn-h1;
Arc(x,y,l div 2,0,180); { крыша }
y:=y-h2 div 2;
Ellipse(x-10,y-16,x+10,y+16); { окно на чердаке }
Line(x-10,y,x+10,y); { рама в окне на чердаке }
Line(x,y-16,x,y+16);
x:=xn+l+ras; y:=yn;
Rectangle(x,y,x+ld,y-hd); {ствол дерева }
x1:=x+ld div 2; y1:=y-hd;
Ellipse(x1-rdx,y1,x1+rdx,y1-2*rdy); { крона дерева }
FloodFill(x1,y1-rdy,clGreen); { закраска кроны зеленым }
FloodFill(x+5,y-5,clBrown); { закраска ствола коричневым }
Line(xn-20,yn,xn+l+ras+ld+20,yn); { основание - земля }
end.
Рисунок 12.3 – Программа Example_25
ЛИТЕРАТУРА
1 Аляев Ю.А., Козлов О.А. Алгоритмизация и языки программирования Pascal, C++, Visual Basic, - Финансы и статистика, 2008.
2 Епанишников А., Епанишников В. Программирование в среде Turbo Pascal 7.0. - М.: “ДИАЛОГ-МИФИ”, 1998. - 288 с.
3 Климова Л.М. Pascal 7.0. Практическое программирование. Решение типовых задач.-М.: “Кудиц-образ”, 2000. - 496 с., : ил.
4 Культин Н.Б. Программирование в Turbo Pascal 7.0 и Delphi. –СПб: БХВ -Петербург, 2000. - 416 с., : ил.
5 Культин Н.Б. Turbo Pascal в задачах и примерах. БХВ-Петербург, 2006, - 256 с.
6 Махно В.В., Михалкович С.С., Пучкин М.В.. Основы программирования графики PascalABC. Базовые возможности. Ростов-на-Дону: Федеральное государственное образовательное учреждение высшего профессионального образования, 2007. - 49 с.
7 Немнюгин С. А. Turbo Pascal. Практикум. Программирование на языке высокого уровня. Учебник для вузов. - Питер, 2003. - 496 с.
8 Николаев Н.А. Основы программирования в системе Turbo Pascal 7.0. Учебно-методическое пособие.- Новоуральск, НПИ-МИФИ, 2000. - 69 с. :ил.
9 Николаев Н.А., Шивырев А.А. Сборник заданий по программированию.
Часть 2. Методическое пособие. Новоуральск, НГТИ, 2005. - 48 с.
10 Николаев Н.А. Оформление исходного текста программ. Методические указания. Новоуральск, НГТИ, 2006. - 44 с.
11 Николаев Н.А. Работа с графикой в системе Turbo Pascal. Методическое пособие. Новоуральск, НГТИ, 2006, - 48 с.
12 Николаев Н.А. Сборник заданий по программированию. Часть 1. Методические указания. Новоуральск, НГТИ, 2007. - 52 с.
13 Николаев Н.А. Система типов данных языка TurboPascal. Методическое пособие. Новоуральск, НГТИ, 2008. - 43 с.
14 Николаев Н.А. Конспект лекций по курсу «Программирование на языке высокого уровня». Часть 1. Методическое пособие. Новоуральск, НГТИ, 2009.
- 74 с.
15 Николаев Н.А. Конспект лекций по курсу «Программирование на языке высокого уровня». Часть 2. Методическое пособие. Новоуральск, НГТИ, 2009.
- 62 с.
16 Огнева М.В., Кудрина Е.В. Turbo Pascal: Первые шаги. Примеры и упражнения. –М.: Научная книга, 2008. - 100 с.
17 Потопахин В.В. Turbo Pascal: решение сложных задач. - СПб.: БХВ-Петербург, 2006. – 208 с., : ил.
18 Программирование на языке Паскаль: задачник /под ред. Усковой О.Ф. - СПб.:Питер, 2003. -336.с., : ил.
19 Рапаков Г. Г., Ржеуцкая С. Ю. Программирование на языке Pascal. – СПб.: БХВ-Петербург. ISBN: 5-94157-401-0, 2004. - 480 с.
20 Фаронов В.В. Турбо Паскаль. В 3 кн. Кн.3. Практика программирования. Часть 1. - М.: Учебно-инженерный центр "МВТУ-ФЕСТО ДИДАКТИК", 1993. - 256 с., :ил.
21 Фаронов В.В. Турбо Паскаль. В 3 кн. Кн.3. Практика программирования. Часть 2. - М.: Учебно-инженерный центр "МВТУ-ФЕСТО ДИДАКТИК", 1993. - 304 с., :ил.
22 Фаронов В.В. Turbo Pascal в подлиннике. Наиболее полное руководство.
- БХВ-Петербург, 2004. - 675 с.
23 Федоренко Ю. Алгоритмы и программы на Turbo Pascal. Издат.: Питер, 2007.
- 240 с.
24 Шпак Ю.А. Turbo Pascal 7.0 на примерах. М.: Юниор. 2006. - 496 с.
Электронная документация
(каталог Z :\ EDUCATION \Программирование\ TPascal сервера кафедры ИиП)
e 1 Паскаль. Избранные уроки, набор статей - Каталог «Паскаль - Избранные уроки»
e 2 Pascal. Лекции - файл «Pascal - лекции по программирования.txt»
e 3 TurboPascal. Электронный учебник - файл «TurboPascal - самоучитель.chm»
е 5 Абрамян М.Э. Programming Taskbook. Электронный задачник по программированию. Версия 4.5 – файл «Programming Taskbook»
е6 Видеокурс Pascal с нуля в видеоформате. Каталог «Pascal с нуля в видеоформате»
е7 Интернет-учебник «PascalABC.net» Сайт http://pascalabc.net/.
Приложение
Таблица кодов символов ASCII
УДК
Автор Николаев Николай Александрович
Дата: 2019-03-05, просмотров: 299.