4056

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

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

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

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

Русский

2012-11-12

46.5 KB

62 чел.

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

Задание:

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

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

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

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.


 

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

68113. Де літав ти, Чорногузе 158.5 KB
  Де ж ти була Далеко Як звуть тебеЛелека Отже ми з вами сьогодні поговоримо про чудового птаха про живий символ України лелеку або як його ще називають Чорногуза. Продовження бесіди Лелека є символом любові та радості. Також вважають що лелека є покровителем сімї і рідного дому.
68114. Будинок англійця 48.5 KB
  So, all pupils are in a good mood and we can start our lesson. Please look at the blackboard and read the motto. It is some English proverb “East or West home is best”, “There is no place like home”. Aim. Повідомлення теми та мети уроку. Today we are going to speak about your home and about...
68115. Я вибирала долю собi сама… 93.5 KB
  Мета: 1) познайомити учнів із творами Л. Костенко, їх неповторністю й оригінальністю; 2) формувати особистість, яка має почуття гідності, багатий духовний світ; розвивати акторські навички учнів; 3) виховувати громадянську позицію учнів, уміння аналізувати залежність виникнення...
68116. Сценарій музично-тематичної композиції до 140-ї річниці від дня народження Лесі Українки 175.31 KB
  Леся Українка: Мріє не зрадь Я так довго до тебе тужила Стільки безрадісних днів стільки безсонних ночей А тепер я в тебе остатню надію вложила. Ведуча: Справді безсмертного якщо має таких геніїв як Леся і якщо навіть після смерті живуть вони віки в памяті народній. Леся Українка...
68117. ЛІДЕР ТОЙ, ХТО ПОПЕРЕДУ 44.5 KB
  Розподіл на групи Визначення якостей лідера Типи лідерів Стилі спілкування Жива скульптура лідера Памятка лідеру Підбиття підсумків Вступ Кожному з вас хочеш не хочеш доведеться якщо і не командувати парадом то вже напевно побувати в ролі старшого. І хай у вашій пріоритетній формулі лідерські якості...
68118. Neue Liebe – Neues Leben – Neue Lyrik 320 KB
  Lehrer Herzlich Willkommen in unserer Aula. Heute ist ein schöner Tag, besonders für die Mädchen und Frauen. Alle Jungen und Männer machen Komplimente den Frauen über das schicke Aussehen und sie sind gut gelaunt. Ohne Liebe kann man sich unser Leben nicht vorstellen.
68119. Що воно, життя? 59 KB
  Мета. Формувати в учнів усвідомлене розуміння поняття життя, його унікальності, цінності; спонукати школярів до роздумів та висловлювань у прозовій та римованій формі про важливі життєві проблеми; виховувати в них ставлення до власного життя та життя інших людей як до найвищої цінності.
68120. Урок –змагання КВК. Природні лиха 203 KB
  Мета: формувати в учнів уявлення про природні лиха; ознайомити дітей з правилами безпечної поведінки під час грози бурі землетрусу повені пожежі; вчити учнів правильно й критично оцінювати свої дії та поведінку в надзвичайних ситуаціях висловлювати власну думку формулювати її в чіткій і стислій формі...
68121. Лірична пісня як жанр української народної творчості 89 KB
  Мета: Поглибити уявлення учнів про жанр ліричної пісні визначити її образний зміст характерні особливості розкрити жанрові особливості естетичну виразність український ліричних пісень; розвивати емоційну чутливість інтерес до ліричних образів навички виконання кантилени правильного...