Работа в графическом режиме с использованием модуля 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;