В. А. Давыденко программирование и основы алгоритмизации лабораторный практикум

Вид материалаПрактикум

Содержание


ООП. Разработка программы с объектом «Окно»
Объектный тип
Задания для выполнения
Function GetSizeX: byte
Лабораторная работа
Подобный материал:
1   2   3   4   5   6   7   8   9   ...   16

ООП. Разработка программы с объектом «Окно»



Основы теории

Объектно-ориентированное программирование (ООП) – это технология программирования, базирующаяся на свойствах:
  • инкапсуляции – объединения данных и методов их обработки в одну конструкцию при определении объектного типа;
  • наследования – создания иерархии объектных типов с тем, чтобы поля данных и методы предков автоматически были полями данных и методами потомков;
  • полиморфизма – такого определения методов в иерархии классов, чтобы метод с одним именем мог применяться к различным родственным объектам, сохраняя при этом возможность переопределять его собственными действиями.

Объектный тип в дальнейшем будем называть классом, данныеполями (аналогично типу record – запись), а процедуры и/или функции, обрабатывающие эти поля – методами.

Объявление класса осуществляется в разделе объявления типов программы или модуля по структуре:


Type <имя класса> = object

{объявление полей данных}

{объявление методов, содержащее только их заголовки}

end;


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

Синтаксис полного объявления методов имеет вид:
  • для метода-процедуры:


procedure <имя класса>.< имя метода>;

{объявление местных ресурсов}

<тело подпрограммы-процедуры>;

  • для метода-функции:


function <имя класса>.< имя метода>;

{объявление местных ресурсов}

<тело подпрограммы-функции>;


Инициализацию полей класса принято возлагать на один из его методов, который является процедурой и, по установившейся традиции, поименован как метод Init.

Переменная, объявленная через конкретный класс, называется экземпляром этого класса или объектом и объявляется по стандартным правилам объявления переменных.

Обращение к полям и методам объекта осуществляется через составное имя


<имя объекта>.<вызываемое поле или метод>

  • Вспомогательный материал
  1. Оператор присоединения, применяемый при работе с составными именами:


With … do begin … end;

  1. Функция TextColor (C: byte) модуля CRT – устанавливает цвет символов (С = 0..15; C = 128 – мерцание).
  2. Функции WindMax и WindMin типа word хранят информацию о размерах текущего окна.



Контроль входных знаний
  1. Что общего в данных типа record и типа object?
  2. В чём заключается свойство инкапсуляции и на каком этапе конструирования объекта оно используется?
  3. Какая часть процедур и функций включается в класс?
  4. Методы Init и MakeWin класса Win объявлены как


Procedure Init (…);

Procedure MakeWin;


Как оформить их заголовки при полном описании методов?
  1. Какая функция при конструировании класса возлагается на метод Init?
  2. Переменные a, b, c типа real являются полями некоторого класса. Как объявить метод их инициализации? Как организовать вызов этого метода из основной программы?
  3. Чем обосновано отсутствие списка формальных параметров при объявлении прочих методов класса, кроме метода инициализации полей?


Задания для выполнения

Дан фрагмент объявления класса Win:


Type Win = Object {класс ОКНО}

{Поля:}

x1, y1, {координаты верхнего левого угла окна}

x2, y2, {координаты нижнего правого угла окна}

colf: byte; {цвет фона}

{Заголовки методов:}

{инициализация полей:}

Procedure Init (<список формальных параметров>);

{создание окна:}

Procedure MakeWin;

{задание размеров окна по оси OX:}

Function GetSizeX: byte;

End;

Procedure Win. MakeWin;

Begin

Window (x1, y1, x2, y2); {изображение текущего окна на экране}

Textbackground (colf); {установка фона: colf = 0..7}

ClrScr;

End;

  1. Дополнить класс функцией задания размеров окна по оси OY.
  2. Разработать модуль, содержащий данный класс.
  3. Разработать программу, выводящую на экран:
  • цвет и размеры окна;
  • окно выбранного Вами цвета;
  • три окна разных размеров и цветов;
  • случайное количество окон случайных цветов.
  1. Дополнить класс методом восстановления размеров и цвета окна, предусмотренных по умолчанию.
  2. Вписать в одно окно Вашу фамилию, в другое – имя. Дополнить класс методом вывода строковых данных в заданное окно.
  3. Сформировать окно(а) и разместить в нём/них название лабораторной работы.



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