Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по Паскалю.doc
Скачиваний:
5
Добавлен:
04.11.2018
Размер:
7.76 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;

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