
- •Тема 1. Указатели и динамические переменные
- •Контрольные вопросы
- •Лабораторная работа 1. Организация списков с помощью динамических переменных
- •Тема 2. Модули
- •Initialization
- •Interface
- •Implementation
- •Контрольные вопросы
- •Лабораторная работа 2. Создание модуля для работы с динамическим списком
- •Тема 3. Объектно-ориентированное программирование
- •Контрольные вопросы
- •Лабораторная работа 3. Создание класса – списка
- •Interface
- •Implementation
- •Библиографический список
Контрольные вопросы
В чем сущность объектно-ориентированного программирования?
Что означает принцип инкапсуляции в ООП?
В чем заключается свойство наследования в ООП?
Что такое класс и как он описывается?
Как описываются и реализуются методы класса?
Что такое экземпляр класса?
Как осуществляется обращение к методам объектов?
Каким образом осуществляется перекрытие методов?
В каких случаях метод наследуется, а в каких перекрывается?
В чем состоит принцип полиморфизма в ООП?
В чем различие статических и виртуальных методов с точки зрения их выполнения?
В чем сущность позднего связывания?
С какой целью методы следует объявлять виртуальными?
Какие методы следует объявлять виртуальными?
Какие функции выполняет конструктор?
Какие функции выполняет деструктор?
Что представляет собой информация о классе?
Каков внутренний формат экземпляра объектного типа?
Какова структура таблицы виртуальных методов?
Какова структура таблицы динамических методов?
Лабораторная работа 3. Создание класса – списка
Задание
Создайте класс «Список» с полями: указатель на начало списка, размер списка и со следующими обязательными методами: конструктор Create– создание пустого списка; деструкторDestroy– уничтожение списка;Clear– удаление всех элементов списка;InsertFirst(v)– включение элемента со значениемvв начало списка;WriteList(f)– вывод элементов списка в файлf.
Поля закройте от прямого доступа с помощью свойств.
Реализуйте в виде методов подпрограммы обработки списка, указанные в вашем варианте задания к лабораторной работе 1 «Указатели и динамические переменные».
Описание и реализацию класса «Список» расположите в модуле.
С использование разработанных методов составьте программу работы с экземплярами класса «Список» в соответствии с вашим вариантом задания.
Пример выполнения задания
Описать и реализовать класс «Список» целочисленных элементов. Реализовать метод записи отрицательных нечетных элементов списка в один список, положительных четных – в другой и продемонстрировать его работу.
// Лабораторная работа 3.
// Создание класса – списка.
// Выполнил Сергеев Андрей, группа 999.
// Модуль описания и реализации списка. Имя файла ListClass.pas.
unit ListClass;
Interface
type
tValue=Integer; // тип содержательной части элемента списка – целый
pItem=^tItem; // тип указателя на элемент списка
tItem=record // тип элемента списка
Value: tValue; // содержательная часть элемента списка
Next : pItem; // указатель на следующий элемент списка
end; // record tItem
tList=class(tObject) // класс - «Список»
private
fHead:pItem; // поле - указатель на начало списка
fSize:Word; // поле – число элементов списка
public
property Head:pItem read fHead write fHead;
property Size:Word read fSize;
constructorCreate;// конструктор – создание пустого списка
destructorDestroy;override;// деструктор – удаление списка
procedureInsertFirst(v:tValue);// включение элемента со знач. v в начало списка
procedure InsertLast(v: tValue); // включение элемента со знач. v в конец списка
procedureWriteList(varf:Text);// вывод значений элементов списка в файл f
procedureClear;// удаление элементов из списка
procedure FormLists(var L1, L2: tList); // формирование новых списков L1, L2
end;