- •Министерство образования российской федерации
- •Введение
- •Программирование циклических алгоритмов и массивов
- •Программа работы
- •Контрольные вопросы
- •Методические указания
- •Var ... { Раздел объявления переменных }
- •Варианты задания лабораторной работы №1
- •Лабораторная работа №2 Программирование с использованием подпрограмм
- •Программа работы
- •Контрольные вопросы
- •Варианты задания лабораторной работы №2
- •Лабораторная работа №3 Программирование с использованием модулей
- •Программа работы
- •Контрольные вопросы
- •Лабораторная работа №4
- •Программа работы
- •Контрольные вопросы
- •Варианты задания лабораторной работы №4
- •Лабораторная работа № 5
- •Лабораторная работа № 6 Визуальное программирование
- •Подготовка к работе
- •Программа работы
- •Контрольные вопросы
- •Методические указания к выполнению работы
Лабораторная работа № 5
Основы объектно-ориентированного программирования
Продолжительность работы 2 часа
Цель работы: ознакомление с классами объектов в системе программирования Delphi .
Подготовка к работе
Изучить по конспекту лекций и приведенной ниже литературе, следующие особенности языка программирования Delphi:
дополнительные по сравнению с Паскалем типы данных;
объявление классов;
Программа работы
Получить у преподавателя вариант индивидуального задания
Создать программу (аналогично программе из лекции), которая позволяла бы :
заносить два числа в форму,
запускать ее на выполнение с помощью кнопки
и выводить на форму результат действий над числами, указанных в варианте задания.
Запустить Delphi и открыть новое приложение для проектирования
Отладить программу
Контрольные вопросы
Чем отличаются классы и объекты?
Что такое инкапсуляция?
Что такое наследование?
Что такое полиморфизм?
Какова структура описания класса?
Перечислите целые типы данных, используемые в Delphi.
Перечислите вещественные типы данных Delphi.
Что понимается под форматом хранения данных в памяти?
Какие компоненты входят в описание класса?
Как создается и инициализируется объект?
Как уничтожается объект?
Содержание отчета
Отчет должен содержать окончательный вариант текста программы и результат ее выполнения.
Методические указания к выполнению работы
К п.1. Для получения информации о типах данных, используемых в Delphi, выберите пункт меню Help|Delphi Help, а затем в открывшемся окне выберите раздел Object Pascal Reference|Data types, variables and constants.
Для получения информации о форматах хранимых данных Object Pascal, выберите пункт меню Help|Delphi Help, а затем в открывшемся окне выберите раздел Object Pascal Reference|Memory Management.
К п.2. Класс– это тип данных, определяемый пользователем и содержащийполя, методы и свойства. Экземпляры класса называютсяобъектами. Поля, методы и свойства класса называюткомпонентами или членами.
Поле является в сущности переменной, которая является неотъемлемой частью объекта и характеризует объекта. Подобно полям записи, поля класса представляют собой набор данных, которые присутствуют в любом классе.
Методявляется процедурой или функцией, связанной с классом. Большинство методов управляет объектами.
Свойство является интерфейсом к данным, связанным с объектом (часто хранящимся в поле). Свойства определяют, каким образом их данные могут читаться и модифицироваться.
Объединение полей, методов и свойств в один тип - класс называется инкапсуляцией.
Объекты являются динамически распределяемыми блоками памяти, структура которых определена типом класса. Каждый объект имеет уникальную копию поля, определенного в классе, но все экземпляры класса разделяют его методы. Объекты создаются и уничтожаются специальными методами – конструкторами и деструкторами.
Любой класс может быть порожден от другого класса. При этом он наследует поля, методы, свойства и события от своих предков и может отменять какие-то из перечисленных элементов класса или вводить новые. Это второй принцип класса – наследование.
Пример объявления класса:
Type
TClassName = class(TAncestorClass)
fName: string;
fVal: integer;
consructor Create(Name: string);
procedure SetVal(Value: integer);
procedure Metod1;
function Metod2: integer;
…..
end;
где
TClassName - имя, создаваемого типа класса;
TAncestorClass - имя типа класса-родителя (если он есть).
fName, fVal - поля создаваемого класса.
Все классы в object Pasakal порождены от единственногшо родителя TObject. Объявления полей (переменных) выглядят аналогично объявлениям переменных в записях. Все поля должны быть объявлены ранее объявлений свойств и методов.
Create - конструктор создаваемого класса. Конструкторы – специальные методы, вызываемые при создании и инициализации экземпляра объекта. У класса может быть более одного конструктора, но, как правило, он один.
Metod1, Metod2 - методы создаваемого класса.
К п.4. При реализации методов класса (подобно полям записи) необходимо указывать класс, а затем после точки – название метода:
procedure TClassName.MetodName;
Begin
…..
end;
Чтобы вызвать метод нужного объекта необходимо указывать его переменную, а затем после точки – название метода.
Для уничтожения объектов в Object Pascal и удаления их из памяти используется метод Free.
К п. 3 Для разработки приложения в Delphi выберите пункт меню File|New
Таблица Варианты заданий к лабораторной работе №5
Вариант1 | |||||
Класс, поля, методы, функции |
Название |
Описание | |||
Класс |
TBin |
Однобайтное двоичное число | |||
Поля |
fName fVal |
Имя переменной Значение числа | |||
Методы |
Create SetVal Info NotBin RRight |
Создание и инициализация объекта Установка исходного значения числа Получение информации о полях объекта Инверсия числа Сдвиг числа на разряд вправо | |||
Дополнительные функции |
AndBin OrBin |
Логическое умножение двух чисел Логическое сложение двух чисел | |||
Вариант 2 | |||||
Класс, поля, методы, функции |
Название |
Описание | |||
Класс |
TSingle |
2-х байтное действительное число | |||
Поля |
fName fVal |
Имя переменной Значение числа | |||
Методы |
Create SetVal Info Resign |
Создание и инициализация объекта Установка исходного значения числа Получение информации о полях объекта Изменение знака числа | |||
Дополнительныефункции |
MulSin DivSin |
Арифметическое умножение двух чисел Арифметическое деление двух чисел | |||
Вариант 3 | |||||
Класс, поля, методы, функции |
Название |
Описание | |||
Класс |
TInt |
4-х байтное целое число | |||
Поля |
fName fVal |
Имя переменной Значение числа | |||
Методы |
Create SetVal Info NotInt |
Создание и инициализация объекта Установка исходного значения числа Получение информации о полях объекта Инверсия числа | |||
Дополнительные функции |
AddInt SubInt |
Арифметическое сложение двух чисел Арифметическое вычитание двух чисел | |||
Вариант 4 | |||||
Класс, поля, методы, функции |
Название |
Описание | |||
Класс |
TChar |
Символ | |||
Поля |
fName fChar |
Имя переменной Значение символа | |||
Методы |
Create SetChar Info UpCase |
Создание и инициализация объекта Установка исходного значения символа Получение информации о полях объекта Установить заглавную букву | |||
Дополнительные функции |
Concat |
Конкатенация двух символов | |||
Вариант 5 | |||||
Класс, поля, методы, функции |
Название |
Описание | |||
Класс |
TReal48 |
6-ти байтное действительное число | |||
Поля |
fName fVal |
Имя переменной Значение числа | |||
Методы |
Create SetVal Info Resign |
Создание и инициализация объекта Установка исходного значения числа Получение информации о полях объекта Изменение знака числа | |||
Дополнительные функции |
AddR48 SubR48 |
Арифметическое сложение двух чисел Арифметическое вычитание двух чисел | |||
Вариант 6 | |||||
Класс, поля, методы, функции |
Название |
Описание | |||
Класс |
TReal |
3- х байтное действительное число | |||
Поля |
fName fVal |
Имя переменной Значение числа | |||
Методы |
Create SetVal Info Resign |
Создание и инициализация объекта Установка исходного значения числа Получение информации о полях объекта Изменение знака числа | |||
Дополнительные функции |
MulReal DivReal AddReal SubReal |
Арифметическое умножение двух чисел Арифметическое деление двух чисел Арифметическое сложение двух чисел Арифметическое вычитание двух чисел | |||
Вариант 7 | |||||
Класс, поля, методы, функции |
Название |
Описание | |||
Класс |
TBin |
Однобайтное двоичное число | |||
Поля |
fName fVal |
Имя переменной Значение числа | |||
Методы |
Create SetVal Info RLeft |
Создание и инициализация объекта Установка исходного значения числа Получение информации о полях объекта Сдвиг числа на разряд влево | |||
Дополнительные функции |
XorBin OrBin |
Логическое сложение по модулю 2 двух чисел Логическое сложение двух чисел | |||
Вариант 8 |
|
| |||
Класс, поля, методы, функции |
Название |
Описание | |||
Класс |
TSmInt |
2-х байтное целое число | |||
Поля |
fName fVal |
Имя переменной Значение числа | |||
Методы |
Create SetVal Info NotInt |
Создание и инициализация объекта Установка исходного значения числа Вывод информации о полях объекта Инверсия числа | |||
Дополнительные функции |
MulSmInt DSmInt |
Арифметическое умножение двух чисел Арифметическое вычитание двух чисел | |||
Вариант 9 |
|
| |||
Класс, поля, методы, функции |
Название |
Описание | |||
Класс |
TInt |
4-х байтное целое число | |||
Поля |
fName fVal |
Имя переменной Значение числа | |||
Методы |
Create SetVal Info NotInt |
Создание и инициализация объекта Установка исходного значения числа Получение информации о полях объекта Инверсия числа | |||
Дополнительные функции |
MulInt SubInt |
Арифметическое умножение двух чисел Арифметическое вычитание двух чисел | |||
Вариант 10 |
|
| |||
Класс, поля, методы, функции |
Название |
Описание | |||
Класс |
TChar |
Символ | |||
Поля |
fName fChar |
Имя переменной Значение символа | |||
Методы |
Create SetChar Info UpCase |
Создание и инициализация объекта Установка исходного значения символа Получение информации о полях объекта Установить заглавную букву | |||
Дополнительные функции |
Concat |
Конкатенация трех символов | |||
Вариант 12 |
|
| |||
Класс, поля, методы, функции |
Название |
Описание | |||
Класс |
TReal48 |
6-ти байтное действительное число | |||
Поля |
fName fVal |
Имя переменной Значение числа | |||
Методы |
Create SetVal Info ObrCod |
Создание и инициализация объекта Установка исходного значения числа Получение информации о полях объекта Получение обратного кода | |||
Дополнительные функции |
MulR48 DivR48 |
Арифметическое умножение двух чисел Арифметическое деление двух чисел | |||
Вариант 13 |
|
| |||
Класс, поля, методы, функции |
Название |
Описание | |||
Класс |
TReal |
3- х байтное действительное число | |||
Поля |
fName fVal |
Имя переменной Значение числа | |||
Методы |
Create SetVal Info Resign |
Создание и инициализация объекта Установка исходного значения числа Получение информации о полях объекта Изменение знака числа | |||
Дополнительные функции |
MulReal SubReal |
Арифметическое умножение двух чисел Арифметическое вычитание двух чисел | |||
Вариант 15 |
|
| |||
Класс, поля, методы, функции |
Название |
Описание | |||
Класс |
TBin |
Однобайтное двоичное число | |||
Поля |
fName fVal |
Имя переменной Значение числа | |||
Методы |
Create SetVal Info NotBin |
Создание и инициализация объекта Установка исходного значения числа Получение информации о полях объекта Инверсия числа | |||
Дополнительные функции |
AndBin XorBin
|
Логическое умножение двух чисел Логическое сложение по модулю 2 двух чисел | |||
Вариант 16 |
|
| |||
Класс, поля, методы, функции |
Название |
Описание | |||
Класс |
TSmInt |
2-х байтное целое число | |||
Поля |
fName fVal |
Имя переменной Значение числа | |||
Методы |
Create SetVal Info IzmZn |
Создание и инициализация объекта Установка исходного значения числа Вывод информации о полях объекта Изменение знака | |||
Дополнительные функции |
AddSmInt SubSmInt |
Арифметическое сложение двух чисел Арифметическое вычитание двух чисел | |||
Вариант 17 |
|
| |||
Класс |
TSmInt |
4-х байтное целое число | |||
Поля |
fName fVal |
Имя переменной Значение числа | |||
Методы |
Create SetVal Info NotInt |
Создание и инициализация объекта Установка исходного значения числа Вывод информации о полях объекта Инверсия числа | |||
Дополнительные функции |
MulSmInt SubSmInt |
Арифметическое умножение двух чисел Арифметическое вычитание двух чисел | |||
Вариант 18 |
|
| |||
Класс, поля, методы, функции |
Название |
Описание | |||
Класс |
TInt |
6-х байтное целое число | |||
Поля |
fName fVal |
Имя переменной Значение числа | |||
Методы |
Create SetVal Info NotInt |
Создание и инициализация объекта Установка исходного значения числа Получение информации о полях объекта Инверсия числа | |||
Дополнительные функции |
AddInt SubInt |
Арифметическое сложение двух чисел Арифметическое вычитание двух чисел | |||
Вариант 19 |
|
| |||
Класс, поля, методы, функции |
Название |
Описание | |||
Класс |
TChar |
Символ | |||
Поля |
fName fChar |
Имя переменной Значение символа | |||
Методы |
Create SetChar Info UpCase |
Создание и инициализация объекта Установка исходного значения символа Получение информации о полях объекта Установить заглавную букву | |||
Дополнительные функции |
Concat |
Последовательность из двух одинаковых символов | |||
|
|
|