Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по Паскалю.doc
Скачиваний:
61
Добавлен:
04.06.2015
Размер:
7.62 Mб
Скачать

Var X, y, dx, dy: Word;

driver, regim: Integer;

Begin

driver:=detect; автоопределение графического драйвера

InitGraph(Driver,Regim,'C:\BP\BGI'); инициализация графического режима

SetBkColor(1); цвет фона - синий

ClearDevice; очистка экрана

SetColor(14); цвет фигур - желтый

x:=100; x и y – координаты точки

y:=150;

dx:=50; dx и dy – шаги по координатам

dy:=100;

PutPixel(x,y,14); рисуем точку желтым цветом

Delay(1000); задержка 1 сек

PutPixel(x,y,1); там же рисуем точку цветом фона

x:=x + dx; делаем шаг по координатам

y:=y + dy;

PutPixel(x,y,14); рисуем желтую точку на новом месте

Delay(1000);

ReadLn;

CloseGraph; закрываем графический режим

End.

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

Создадим объект, включающий:

поляxиy– его координаты,

методыInitинициализация– задание начальных значений координат,

Show– появление объекта на экране,

Hide– скрытие объекта,

Move– перемещение объекта на один шаг по координатам.

Поля объекта называются его свойствами. Для описания объектов в Паскале используется специальный типObject:

Program Tochka;

Uses CRT, Graph;

Type TPix = Object

x, y: Word; координаты точки

Procedure Init(a, b: Word); инициализация объекта: a и bего начальные координаты

Procedure Show; появление объекта

Procedure Hide; скрытие объекта

Procedure Move(da, db: Word); перемещение объекта: da и dbшаги по координатам

End;

Procedure TPix.Init; инициализация

Begin

x:=a; x и yглобальные переменные

y:=b; a и bвходные переменные (формальные параметры) – начальные координаты объекта

End;

Procedure TPix.Show; появление

Begin

PutPixel(x,y,14); помещаем желтую точку по координатам x и y

End;

Procedure TPix.Hide; скрытие

Begin

PutPixel(x,y,1); помещаем синюю (цвет фона) точку по координатам x и y

End;

Procedure TPix.Move; перемещение

Begin

Hide; скрытие

x:=x + da; изменение координат

y:=y + db; x и yглобальные переменные

da и dbвходные переменные (формальные параметры) – шаги по координатам

Show; появление

End;

Var x0, y0, dx, dy: Word;

driver, regim: Integer;

pixel: TPix; создаем экземпляр объекта – переменную pixel

Begin

driver:=detect; автоопределение графического драйвера

InitGraph(Driver,Regim,'C:\BP\BGI'); инициализация графического режима

SetBkColor(1); цвет фона - синий

ClearDevice; очистка экрана

SetColor(14); цвет фигур - желтый

x0:=100; x0 и y0начальные координаты точки

y0:=150;

dx:=50; dx и dy – шаги по координатам

dy:=40;

pixel.Init(x0, y0); инициализация точки: задаем начальные координаты точки

pixel.Show; выводим точку на экран по заданным координатам

Delay(1000); пауза в 1 сек

Pixel.Move(dx, dy); перемещаем точку на dx,dy

Delay(1000); пауза в 1 сек

ReadLn;

CloseGraph; закрываем графический режим

End.

Таким образом:

1.в объектеTPixобъединены описания его полей (свойств) и методов –инкапсуляция,

2.доступ ксвойствамобъекта возможен только через егометоды;непосредственное обращение к полям противоречит принципам объектно-ориентированного программирования!

3.поведение объекта полностью определяется ее методамиInit, Show, Hide, Move,

4.поля (свойства) объекта являютсяглобальнымипараметрами для его процедур (методов), поэтому ихне надо передаватьв эти процедуры через формальные параметры,

5.перед началом работы сэкземпляромобъекта (точкой) необходима ееинициализация– задание начальных координат точки.

Рассмотрим понятие наследования: используя объектTPix, создадим объектTRingдля рисования и перемещения окружности, добавив в новый объект полеrad– радиус окружности ипереопределивдля нее методыInit, Show, Hide, доставшиеся от родительского типа. Это означает, что в обоих типах будут использованы методы с одними и теми же именами, но с различной реализацией. Поляxиyновый объект унаследует от старого – это будут координаты центра окружности:

Type TRing = Object (TPix) объект TRing – потомок объекта TPix

rad: Word; радиус окружности

Procedure Init(a, b, r: Word); инициализация объекта: a и bкоординаты его центра, r – его радиус

Procedure Show; появление объекта

Procedure Hide; скрытие объекта

End;

Procedure TRing.Init; переопределенная инициализация

Begin

x:=a; x, y, radглобальные переменные

y:=b; a, b, rвходные переменные (формальные параметры) –координаты центра объекта и его радиус

rad:=r;

End;

Procedure TRing.Show; переопределенное появление

Begin

SetColor(14); цвет фигуры - желтый

Circle(x,y,rad); помещаем желтую окружность по координатам x и y

End;

Procedure TRing.Hide; переопределенное скрытие

Begin

SetColor(1); цвет фигуры – синий (цвет фона)

Circle(x,y,rad); помещаем синюю окружность по координатам x и y

End;

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