4056

Принцип наследования. Создание иерархии классов. Классы и модули

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

Информатика, кибернетика и программирование

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

Русский

2012-11-12

46.5 KB

63 чел.

Принцип наследования. Создание иерархии классов. Классы и модули.

Задание:

Создать иерархию графических классов в соответствии с рисунком. Описания классов оформить в отдельном модуле.

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

Текст программы:

Unit labs3;

Interface

TYPE

    tLocation=object {создание типа фигуры}{класс TLocation}

       x,y,x1,y1:integer; {описание переменных координат}

       procedure Init(InitX,InitY:integer); {процедура инициализации}

    end;

    tPoint=object(tLocation) {описание объекта}{ класс tPoint}

       color:word; {цвет}

       procedure Init(InitX,InitY:integer;col:word);

       procedure Move(NewX,NewY:integer); {процедура движения фигур}

      { procedure Hide;}

       Procedure Draw; {процедура рисования}

    end;

    tCircle=object(tPoint) {класс tCircle, окружность}

       Rx,Ry,VRx:word;

       procedure Init(InitX,InitY:integer;col,RRx:word);

       procedure Move(NewX,NewY:integer);

      { procedure Hide;}

       Procedure Draw;

    end;

    tEllipse=object(tCircle) {элипс}

       procedure Init(InitX,InitY:integer;col,NRx,NRy:word);

       procedure Move(NewX,NewY:integer);

      { procedure Hide;}

       Procedure Draw;

    end;

    tLine=object(tPoint) {линия}

       Rx,Ry:word;

       procedure Init(InitX,InitY:integer;coll:word);

       procedure Move(NewX,NewY,NewX1,NewY1:integer);

      { procedure Hide;}

       Procedure Draw;

    end;

    tTriangle =object(tLine) {треугольник}

       procedure Init(InitX,InitY:integer;coll:word);

       procedure Move(NewX,NewY,NewX1,NewY1:integer);

      { procedure Hide;}

       Procedure Draw;

    end;

    tKvadrat=object(tLine) {квадрат}

       procedure Init(InitX,InitY:integer;coll:word);

       procedure Move(NewX,NewY,NewX1,NewY1:integer);

      { procedure Hide;}

       Procedure Draw;

    end;

implementation

Uses Crt,Graph; {инициализация графики}

                   {Метод tLocation}

procedure TLocation.Init(InitX,InitY:integer); {процедура, имя класса имя метода и так везде, где в скобках()указаны параметры}

begin

x:=InitX; y:=InitY;

end;

                   {Метод tPoint}

procedure tPoint.Init(InitX,InitY:integer;col:word);

begin

tLocation.Init(InitX,InitY);

color:=col;

end;

procedure tPoint.Move(NewX,NewY:integer);

begin

{Hide;}

x:=NewX;

y:=NewY;

Draw; {метод рисующий фигуру заданным цветом}

end;

{procedure tPoint.Hide;

begin

PutPixel(x,y,GetBkColor);

end;}

procedure tPoint.Draw; {процедура рисования}

begin

PutPixel(x,y,color);

end;

                 {Метод класса tCircle}

procedure tCircle.Init(InitX,InitY:integer;col,RRx:word);

begin

tPoint.Init(InitX,InitY,col);

Rx:=RRx;

end;

procedure tCircle.Move(NewX,NewY:integer);

begin

{Hide;}

x:=NewX;

y:=NewY;

Draw;

end;

{procedure tCircle.Hide;

begin

SetFillStyle(1,GetBkColor);

Setcolor(GetBkcolor);

Circle(x,y,Rx);

end;}

procedure tCircle.Draw;

begin

SetFillStyle(1,GetBkColor);

Setcolor(color);

Circle(x,y,Rx);

end;

                 {Метод класса tEllips}

procedure tEllipse.Init(InitX,InitY:integer;col,NRx,NRy:word);

begin

tCircle.Init(InitX,InitY,col,VRx);

Rx:=NRx;

Ry:=NRy;

end;

procedure tEllipse.Move(NewX,NewY:integer);

begin

{Hide;}

x:=NewX;

y:=NewY;

Draw;

end;

{procedure tEllipse.Hide;

begin

SetFillStyle(1,GetBkColor);

Setcolor(GetBkcolor);

FillEllipse(x,y,Rx,Ry);

end;}

procedure tEllipse.Draw;

begin

SetFillStyle(1,GetBkColor);

Setcolor(color);

FillEllipse(x,y,Rx,Ry);

end;

                  {Метод класса tLine}

procedure tLine.Init(InitX,InitY:integer;Coll:word);

begin;

tLocation.Init(InitX,InitY);

color:=coll;

end;

procedure tLine.Move(NewX,NewY,NewX1,NewY1:integer);

begin

{Hide;}

x:=NewX;

y:=NewY;

x1:=NewX1;

y1:=NewY1;

Draw;

end;

procedure tLine.Draw;

begin

SetFillStyle(1,GetBkColor);

Setcolor(color);

Line(x,y,x1,y1);

end;

            {Метод класса tTriangle}

procedure tTriangle.Init(InitX,InitY:integer;Coll:word);

begin;

tLine.Init(InitX,InitY,color);

color:=coll;

end;

procedure tTriangle.Move(NewX,NewY,NewX1,NewY1:integer);

begin

{Hide;}

x:=NewX;

y:=NewY;

x1:=NewX1;

y1:=NewY1;

Draw;

end;

procedure tTriangle.Draw; {процедура прорисовки треугольника}

begin

SetFillStyle(1,GetBkColor);

Setcolor(color);

  Line(x,x,y,x1); {линии треугольника}

  Line(x,x,y1,x1);

  Line(y,x1,y1,x1);

end;

              {Метод класса tKvadrat}

procedure tKvadrat.Init(InitX,InitY:integer;Coll:word);

begin;

tLine.Init(InitX,InitY,color);

color:=coll;

end;

procedure tKvadrat.Move(NewX,NewY,NewX1,NewY1:integer);

{Hide;} {метод, рисующий фигуру цветом фона}

begin

x:=NewX;

y:=NewY;

x1:=NewX1;

y1:=NewY1;

Draw; {метод, рисующий фигуру цветом фона}

end;

procedure tKvadrat.Draw; {класс,объект}

begin

SetFillStyle(1,GetBkColor); {цвет закраски}

Setcolor(color); {цвет которым будет производится закраска}

Rectangle(x,y,x1,y1); {прямоугольник}

end;

end.


 

А также другие работы, которые могут Вас заинтересовать

52028. Наш край у 1932-1933 роках. Історія Маньківщини 57.5 KB
  Хід уроку: Епіграф: Нагадай мені інший народ щоб він зазнав такої чорної недолі як народ український Учитель української мови і літератури Відкосили косами Жниварі з ЦК А ми хліба просимо Аж болить рука Встали під закопами Ух тверді лоби.Проценко Голодомор Учитель історії: Радянське керівництво взявши курс на модернізацію промислового потенціалу країни одразу зіткнулося з трьома проблемами: коштів сировини й робочих рук для розвитку індустрії. Учитель української мови та літератури: Перед вами картина...
52029. По следам бременских музыкантов. Числа от 11 до 20 173.5 KB
  И был у мельника осёл хороший осёл умный и сильный. Долго работал осёл на мельнице таскал на спине кули с мукой и вот наконец состарился.Чтение отрывка из сказки Видит хозяин: ослабел осёл не годится больше для работы и выгнал его из дому. Испугался осёл: âКуда я пойду куда денусь Стар я стал и слабâ.
52030. Множення дробів. Піднесення дробу до степеня 239 KB
  Мета: домогтися засвоєння учнями правил множення раціонального дробу на цілий вираз на дріб а також правила піднесення раціонального дробу до натурального степеня та виконання сумісних дій піднесення дробу до степеня та множення раціональних дробів; формувати вміння відтворювати вивчені правила та застосовувати їх під час виконання завдань на множення раціональних дробів та піднесення дробу до степеня; вдосконалювати вміння виконувати скорочення раціональних дробів та знаходити ОДЗ дробового виразу; розвивати мислення...
52031. Короткі історичні відомості (від абака до нетбука) 1.09 MB
  Обладнання: мультимедійне обладнання: проектор екран або мультимедійна дошка; програмний комплекс презентація PowerPoint Як винайшли компютер підручник робочі зошити інструкція з правил техніки безпеки. Робота за компютером 8 хв. Саме в Києві був створений перший в Європі компютер який умів швидше за всіх рахувати А чи завжди існували компютери Якими вони були в давнину Про це ми дізнаємося на сьогоднішньому уроці. Вчитель презентує у електронному вигляді новий матеріал Як винайшли компютер.
52032. Дидактические основы конструирования урока математики 247 KB
  Дидактические основы конструирования урока математики. Сущность современного урока математики и основные требования к нему типологии уроков. Взаимосвязь процессов конструирования и анализа урока математики. Непосредственная разработка урока математики.
52033. Счет в пределах 100. Решение составных задач 32.5 KB
  Задачи на смекалку: а как с помощью двух палочек образовать на столе квадрат положить их в угол стола; б сколько концов у палки У двух палок У двух с половиной 6 в какое число я задумала 5 ед. 1 сотня 138; г сколько получится: 78 84 212 94 187 97 Молодцы. А квадрат это что Какие еще геометрические фигуры вы знаете Что такое квадрат Посчитайте сколько квадратов на рисунках 102 62 4 = 12 Чтобы снять мультфильм трудятся очень много людей: сценаристы операторы режиссеры.
52034. У світі цікавих чисел. Гра Склади нове слово, гра Цифробокс 265 KB
  Вдосконалювати обчислювальні навички учнів, розвивати знання, отримані на уроках математики, логічне мислення, творчу і просторову уяву, память і увагу; збагачувати словниковий запас учнів; виховувати патріотичні почуття, любов до математики.
52035. Механічна взаємодія тіл. Сила . Види сил у механіці 2.22 MB
  обота Ньютона спиралась на здобутки вчених його попередників і містила основні поняття : маса сила кількість руху прискорення три закони механіки закон всесвітнього тяжіння Закони динаміки дозволяють зрозуміти принцип роботи машин і механізмів які застосовуються на виробництві у побуті . Сила це векторна фізична величина яка характеризує механічну дію даного тіла на інше і є мірою цієї взаємодії .