Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PAS1~1.doc
Скачиваний:
1
Добавлен:
07.11.2018
Размер:
283.65 Кб
Скачать

7.5. Лабораторная работа n 5.

Создание и использование обьектов.

Цель pаботы: Получить навык обьектно - ориентированного программирования на языке Паскаль.

Постановка задачи: Согласно заданию, составить программу в графическом режиме, отладить и вывести на экран pезультаты.

Пояснение: Создание обьекта произвести на примере лабораторной работы N 4.

Для pеализации поставленной задачи необходимо:

4.1. Инициализировать графический режим.

4.2. Hаписать пpогpамму, инициализирующую выбранный графический образ, с возможностью произвольного размещения его на экране по координатам и включения-отключения индикации.

4.3. Предьявить результат работы преподавателю в виде алгоритма, результата работы и исходного текста программы.

Пример программы с использованием обьекта в виде кнопки.

program primer_object;

uses graph,crt;

type

button = object

X1,y1,x2,y2:integer;

TextStyle: TextSettingsType;

TextColor: Word;

BackColor: Word;

Text : string;

constructor Init(p1,p2,p3,p4,p6,p7:integer;p5:string);

procedure press(p5:string);

end;

VAR

knopka:button;

constructor button.init(p1,p2,p3,p4,p6,p7:integer;p5:string);

var

tc:integer;

begin

setlinestyle(0,0,1);

tc:=GetColor;

x1:=p1;

y1:=p2;

x2:=p3;

y2:=p4;

text:=p5;

TextColor:=p6;

BackColor:=p7;

SetFillstyle(1,BackColor);

Bar(x1, y1, x2, y2);

setcolor(15);

line(x1, y1, x2-1, y1);

line(x1, y1+1, x2-2, y1+1);

line(x1, y1, x1, y2-1);

line(x1+1, y1+1, x1+1, y2-2);

setcolor(8);

line(x1+1, y2-1, x2-1, y2-1);

line(x2-1, y2-1, x2-1, y1+1);

setcolor(0);

line(x1, y2, x2, y2);

line(x2, y2, x2, y1);

SetColor(TextColor);

OutTextXY((x1+x2-TextWidth(Text))div 2+1,

(y1+y2-TextHeight(Text))div 2+1,Text);

SetColor(tc);

end;

procedure button.press(p5:string);

var

tc:integer;

begin

text:=p5;

setlinestyle(0,0,1);

tc:=getcolor;

SetFillstyle(1,BackColor);

Bar(x1, y1, x2, y2);

setcolor(15);

line(x1, y2, x2, y2);

line(x1+1, y2-1, x2-1, y2-1);

line(x2-1, y1+1, x2-1, y2-1);

line(x2, y1, x2, y2);

setcolor(8);

line(x1+1, y1+1, x2-1, y1+1);

line(x1+1, y1+1, x1+1, y2-1);

setcolor(0);

line(x1, y1, x2, y1);

line(x1, y1, x1, y2);

SetColor(TextColor);

OutTextXY((x1+x2-TextWidth(Text))div 2+2,

(y1+y2-TextHeight(Text))div 2+1,Text);

delay(200);

Init(x1,y1,x2,y2,textcolor,backcolor,text);

delay(100);

SetColor(tc);

end;

var

grDriver: Integer;

grMode : Integer;

ErrCode : Integer;

begin

grDriver := Detect;

InitGraph(grDriver, grMode,' ');

ErrCode := GraphResult;

if ErrCode <> grOk then

begin

Writeln('Graphics error:', GraphErrorMsg(ErrCode));

halt(1);

end;

knopka.init(250,200,350,220,0,7,'Привет !!!') ;

case readkey of

#13: begin knopka.press('группе ЭП !');end; {нажата кнопка "Enter"}

end;

READKEY;

RestoreCrtMode;

end.

7.6. Лабораторная работа n 6.

Программирование с использованием модулей библиотек.

Цель pаботы: Получить навык создания библиотечных модулей на языке Паскаль.

Постановка задачи: Согласно заданию, составить программу в виде двух файлов: основной программы и библиотечного модуля, отладить и вывести на экран pезультаты.

Пояснение: Создание программы произвести на примере лабораторной работы N 5 по соседнему варианту в сторону увеличения. Предьявить результат работы преподавателю и исходный текст программы.

Пример программы с использованием библиотечного модуля:

Основная программа:

Program Primer_Unit;

Uses Graph, Crt, PriUnit;

Var Driver,Mode : Integer;

MyObject : Risunok;

Begin

Driver:=Detect;

InitGraph(Driver,Mode,'');

SetFillStyle(1,7);

Bar(0,0,GetMaxX,GetMaxY);

With MyObject Do

Begin

Init(20,20,15); {местоположение на экране}

DrawObject; {рисование обьекта}

End;

Readkey;

CloseGraph;

End.

Библиотечный модуль:

Unit PriUnit;

Interface

Type { рисунок обьекта }

Risunok = Object

X, Y : Integer;

Value : Integer;

Constructor Init(X0, Y0, Value0 : Integer);

Procedure DrawObject;

End;

Implementation

Uses Graph;

Constructor Risunok.Init(X0,Y0,Value0 : Integer);

Begin

X:=X0;

Y:=Y0;

Value:=Value0;

End;

Procedure Risunok.DrawObject;

Var I : Integer;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]