Работа в графическом режиме с использованием модуля GRAPH. Работа с фрагментами изображения.

Задание 1: Составить программу вычерчивания на экране дисплея рисунка, приведенного в таблице 17.1. При вычерчивании рисунка использовать графический режим. Размеры рисунка выбираются самостоятельно.

 

Задание 2: Составить программу синтеза динамического изображения, используя рисунки приведенные в таблице 17.1. Для этого использовать динамическую область памяти для сохранения и восстановления отдельных фрагментов изображения с различными режимами вывода.

 

Таблица 17.1

 

Вариант 1 Вариант 2
Вариант 3 Вариант 4
Вариант 5 Вариант 6
Вариант 7 Вариант 8
Вариант 9 Вариант 10

Таблица 17.2

Вариант 1 Составить программу вывода на экран циферблата механических часов, отображая перемещение часовой, минутной и секундной стрелок. Вариант 2 Составить программу вывода на экран снеговика, отображая перемещение шапки снеговика с рукой по дуге окружности
Вариант 3 Составить программу, отображающую на экране процесс перемещения винта. Вариант 4 Составить программу, отображающую на экране процесс перемещения трактора по горизонтали
Вариант 5 Составить программу перемещения шарика по прямоугольной плоскости. Вариант 6 Составить программу “бегущей строки ” В качестве строки взять “BORLАND PASCAL”
Вариант 7 Составить программу вертикального меню, состоящую как минимум из 3-х окон. Передвижение по окнам меню осуществляется клавишами “вверх “ “вниз“ и ENTER Вариант 8 Составить программу горизонтального меню, состоящую как минимум из 3-х окон. Передвижение по окнам меню осуществляется клавишами клавишами “-> “ “<-“ и ENTER
Вариант 9 Составить программу работы робота, выполняющую передвижение деталей с одного станка на другой. (активный станок выделять по цвету) Вариант 10 Составить программу масштабирования строки, с помощью клавиш “вверх “, “вниз“

 

Лабораторная работа №18

“Работа с объектами в Borland Pascal”

Задание: Написать программу на языке Pascal, в которой необходимо описать объект, дочерний от имеющегося и продемонстрировать работу с этим объектом на примере геометрических фигур, перемещающихся по экрану с помощью клавиш <↑>,<↓>,<←>,<→>. Фигуры изображены в таблице 18.1.

Таблица 18.1

 

Указания: набор графических объектов, которые следует использовать при написании, находится в модуле Figures, который необходимо подключить к программе. В данном модуле описаны следующие фигуры: точка и окружность.

Объект point {точка} обладает следующими методами: show, hide, moveto, drag {показать, спрятать, двигать в, перетянуть}.

Объект circle {окружность} имеет следующие методы: show, hide, expand, contract {показать, спрятать, увеличить, уменьшить}.

Методы show и hide объектов точка и окружность используются без операндов, метод moveto объекта point используется с координатами новой точки в качестве операндов, метод drag используется с операндом DragBy, который характеризует скорость перетягивания.

Методы expand и contract объекта circle используются с операндом, на значение которого увеличивается или уменьшается радиус окружности.

 

Пример использования объекта circle и построения дочернего объекта arc:

 

program FigureDemo;

uses crt,dos,graph,figures;

const PathToDrivers = 'c:\tp\bgi';

type Arc=object(Circle)

StartAngle,EndAngle:integer;

constructor Init(InitX, InitY:integer; InitRadius:integer; InitStartAngle,InitEndAngle:integer);

procedure Show; virtual;

procedure Hide; virtual;

end;

var

GraphDriver:integer;

GraphMode:integer;

ErrorCode:integer;

AnArc:Arc;

ACircle:Circle;

 

{ Arc Object Methods Description }

constructor Arc.Init(InitX,InitY:integer;InitRadius:integer;InitStartAngle,InitEndAngle:integer);

begin

Circle.Init(InitX,InitY,InitRadius);

StartAngle:=InitStartAngle;

EndAngle:=InitEndAngle;

end;

procedure Arc.Show;

begin

Visible:=true;

Graph.Arc(X,Y,StartAngle,EndAngle,Radius);

end;

 

procedure Arc.Hide;

var

TempColor:word;

begin

TempColor:=Graph.GetColor;

Graph.SetColor(GetBkColor);

Visible:=false;

Graph.Arc(X,Y,StartAngle,EndAngle,Radius);

Graph.SetColor(TempColor);

end;

{ Main Program }

 

Begin

GraphDriver:=Detect;

DetectGraph(GraphDriver,GraphMode);

InitGraph(GraphDriver,GraphMode,PathToDrivers);

if GraphResult<>GrOK then

begin

Writeln(GraphErrorMsg(GraphDriver));

if GraphDriver=grFileNotFound then

begin

Writeln('Driver not found in ',PathToDrivers,' ,please, check in the program','"PathToDrivers",');

writeln('it means value of path constant');

writeln;

end;

writeln('Press ENTER...');

Readln;

Halt(1);

end;

 

{ All of the children of Point object contain virtual methods and

must be initialised using constructor }

AnArc.Init(151,82,25,0,90);

AnArc.Drag(5);

CloseGraph;

end.

 

Контрольные вопросы:

 

Что такое объект?

Что называется методом объекта?

Какие объекты называют дочерними?

Имеет ли дочерний объект методы родительского?

Как описывается объект?

Чем отличается объектно-ориентированное программирование от статического?

Какие преимущества и недостатки объектно-ориентированного программирования Вы можете назвать?

 

Лабораторная работа №19








Дата добавления: 2015-03-26; просмотров: 1380;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.017 сек.