
- •1. Методичні вказівки до лабораторної роботи №1
- •1.1. Етапи створення віконної прикладної програми
- •1.2. Структура проекту Delphi
- •1.3. Приклад створення простої віконної прикладної програми
- •1.4. Теоретичні запитання
- •1.5. Завдання до лабораторної роботи №1.
- •2. Методичні вказівки до лабораторної роботи №2
- •2.1. Етапи створення віконної прикладної програми табулювання функції
- •2.2. Приклад створення віконної прикладної програми табулювання функції
- •2.3. Теоретичні запитання
- •Етапи створення віконної прикладної програми табулювання функції.
- •2.4. Завдання до лабораторної роботи №2.
- •3. Методичні вказівки до лабораторної роботи №3
- •3.1. Етапи створення віконної прикладної програми роботи з таблицями рядків StringGrid
- •3.2. Теоретичні запитання
- •3.3. Завдання до лабораторної роботи №3. Робота зі структурами даних типу масив
- •4. Методичні вказівки до лабораторної роботи №4
- •4.1. Основні поняття об'єктно-орієнтованого програмування. Робота з класами
- •4.2. Приклад. Об'єктно-орієнтована реалізація комплексних чисел
- •4.3. Завдання до лабораторної роботи №4. Створення об’єктного типу - клас.
- •4.4. Завдання до лабораторної роботи №5. Класи. Прості властивості та властивості-масиви
- •4.5. Завдання до лабораторної роботи №6. Класи. Спадкування. Поліморфізм
- •4.6. Теоретичні запитання
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ОДЕСЬКА ДЕРЖАВНА АКАДЕМІЯ ХОЛОДУ
Антонова А.Р.
Об'Єктно-ОРІЄНТОВАНЕ
ПРОГРАМУВАННЯ
-
Посібник до самостійної роботи
та виконання лабораторних робіт
(спеціальність 092501)
Одеса 2009
Методичні вказівки розроблені та підготовлені до друку:
ст. викл. Антоновою А.Р., ас. Владімірова. В.Б.
Рецензент
Методичні вказівки розглянуті
на засіданні кафедри програмування
протокол № 3 від 17 листопада 2009 року
Зав. кафедрою Косой Б.В.
Затверджені науково-методичною комісією
з напрямків „Комп’ютерна інженерія”
протокол № від 2009 року
Голова комісії
Зміст
Вступ ……………………………………………………………. 5
1. Методичні вказівки до лабораторної роботи №1 …………… 7
1.1. Етапи створення віконної прикладної програми …………. 7
1.2. Структура проекту Delphi ……………………..…………. 12
1.3. Приклад створення простої віконної прикладної програми 16
1.4. Теоретичні запитання ……………………………………. 25
1.5. Завдання до лабораторної роботи №1 ……………………… 26
2. Методичні вказівки до лабораторної роботи №2 …………… 29
2.1. Етапи створення віконної прикладної програми табулювання функції …………………………………………………………….. 29
2.2. Приклад створення простої віконної прикладної програми 34
2.3. Теоретичні запитання ……………………………………. 40
2.4. Завдання до лабораторної роботи №2 ……………………… 41
3. Методичні вказівки до лабораторної роботи №3 …………… 42
3.1. Приклад створення простої віконної прикладної програми 42
3.2. Теоретичні запитання ……………………………………. 51
3.3. Завдання до лабораторної роботи №3 ……………………… 52
4. Методичні вказівки до лабораторної роботи №4 …………… 54
4.1. Основні поняття об'єктно-орієнтованого програмування. Робота з класами ………………………………………………….. 54
4.2. Приклад. Об'єктно-орієнтована реалізація комплексних
чисел мовою Object Pascal …….……………………………..… 59
4.3. Завдання до лабораторної роботи №4 ……………………… 63
4.4. Завдання до лабораторної роботи №5 ……………………… 70
4.5. Завдання до лабораторної роботи №6 ……………………… 78
Рекомендована література ………………………………………… 84
Основна …………………………………………………………… 84
Додаткова ……………………………………………………….… 84
Додатки ………………………………………………………………. 86
Стандартні підпрограми перетворення рядків у числові типи ... 86
Випадкові числа ………………………………………………….. 88
Сортування масивів …………………………………………….... 89
Вступ
Складність сучасного програмного забезпечення потребує від розроблювачів володіння найбільш перспективними технологіями його створення. Однієї з таких технологій на дійсний момент є об'єктно-орієнтоване програмування (ООП). Застосування ООП дозволяє розробляти програмне забезпечення підвищеної складності за рахунок поліпшення його технологічності (кращих механізмів поділу даних, збільшення повторюваності кодів, використання стандартизованих інтерфейсів користувача і т.д.)
Ефективні засоби розробки програмного забезпечення призвели до появи систем програмування, орієнтованих на «швидку розробку». В основі ідеології систем швидкої розробки (RAD-систем, Rapid Application Development – засобу швидкої розробки додатка) лежать технології візуального проектування і подійного об’єктно-орієнтованого програмування, суть якого полягає в тім, що середовище розробки бере на себе велику частину рутини, залишаючи програмістові роботу з конструювання діалогових вікон і створенню функцій обробки подій.
Серед RAD-систем особливо виділяється середовище Borland Delphi, що дозволяє створювати різні програми: від найпростіших одновіконних додатків до програм керування розподіленими базами даних. Як мову програмування, в середовищі Borland Delphi використовують мову Object Pascal.
Більшість сучасних мов програмування підтримують об'єктно-орієнтоване програмування. Можна створювати додатки Delphi, не заглиблюючись при цьому в Object Pascal, тому що велика частина відповідного коду генерується Delphi. Але знання деталей мови і їхньої реалізації допоможе правильно зрозуміти дії Delphi і в досконалості опанувати мовою.
Ціль курсу – формування навичок об'єктно-орієнтованого програмування на прикладі мови Object Pascal у середовищі Delphi.
Кожна лабораторна робота складається з практичного завдання і теоретичного питання. Номер варіанта кожному студенту перед кожним завданням оголошує викладач.
Лабораторна робота полягає у виконанні завдань, відповіді на питання та оформленні звіту. Виконання завдань повинно містить у собі:
Постановку задачі для конкретного варіанта.
Зміст послідовності виконання.
Файли проекту, збережені на носії (кожен проект в окремій папці).
Роздруківку модулів проекту.
Роздруківку результату.
Відповідь на питання повинна бути роздрукована і містити посилання на використану літературу.
1. Методичні вказівки до лабораторної роботи №1
1.1. Етапи створення віконної прикладної програми
Після запуску Delphi 6 на екрані комп'ютера можна побачити (див. рис. 1):
1 – у верхній частині екрана розташоване головне меню, що забезпечує доступ до команд середовища програмування (головне меню міститься в так називаному головному вікні, що має заголовок: Delphi 6 – Project1);
Рис. 1. Вікна і панелі середовища Delphi 6
2 – у головному вікні містяться панелі інструментів, що дозволяють швидко виконувати команди головного меню, які найчастіше використовуються;
3 – у правій нижній частині головного вікна розташована палітра компонентів, що містить великий набір об'єктів, які можна додавати на форму; саме компоненти є засобом створення додатків у середовищі Delphi;
4 – на середині екрана знаходиться вікно форми з заголовком
Form1, що використовується для розміщення компонентів Delphi;
5 – вікно редактора коду, що містить код програми, за замовчуванням має заголовок Unit1.pas і призначено для створення і редагування коду програми;
6 – вікно інспектора об'єктів (Object Inspector) дозволяє змінювати властивості, характеристики компонентів;
7 – вікно дерева об'єктів (Object TreeView) – у цьому вікні відображаються компоненти, розміщені на формі, модулі даних або фреймі, а також логічні відносини, що існують між ними, наприклад відношення батьківський-дочірній.
У термінології візуального програмування об'єктами проекту (компонентами) є діалогові вікна й елементи керування, що знаходяться в діалогових вікнах – командні кнопки, поля введення текстової інформації, перемикачі, меню і т.д.
Властивостями об'єкта є, наприклад, його розмір (висота і ширина), положення на екрані або на формі, текст заголовка або текст на командній кнопці.
Подія – це те, що відбувається під час роботи додатка. У Delphi у кожної події є ім'я. Наприклад, щиглик кнопкою миші – це подія OnClick, подвійний щиглик мишею – подія OnDblClick, при натисканні клавіші виникає подія OnKeyDown, а при відпусканні натиснутої клавіші – OnKeyUp і т.д. Реакцією на подію може бути яка-небудь дія, наприклад, реакцією на подію OnClick, що відбулася по щиглику кнопкою миші на командній кнопці в діалоговому вікні, може бути виконання обчислень по заданих формулах і видача результату. У Delphi реакція на подію реалізується як процедура обробки події. Таким чином, завдання програміста полягає в написанні необхідних процедур обробки подій.
Процес створення найпростішої віконної прикладної програми можна розбити на два етапи: етап конструювання форми й етап про-
грамування. Розглянемо ці етапи більш детально.
Перелічимо операції, що виконуються на етапі конструювання форми.
Насамперед треба вибрати необхідні компоненти з палітри компонентів і розмістити їх на формі. Для того щоб розмістити компонент на формі, необхідно виконати щиглика лівою кнопкою миші на компоненті, що знаходиться в палітрі компонентів, а потім клацнути лівою кнопкою миші в те місце форми, куди повинен бути поміщений компонент.
Поміщений на форму компонент можна переміщати формою за допомогою миші і змінювати його розміри, використовуючи маркери, що обрамляють виділений компонент.
Для того щоб додати компонентові потрібні властивості, варто використовувати сторінку Properties (Властивості) у вікні інспектора об'єктів (див. рис. 1 позначка 6). Ця сторінка складається з двох стовпчиків: лівий стовпчик містить назву властивості, а правий – конкретне значення властивості. Вікно Інспектора Об'єктів відображає інформацію для того компонента, який виділений щигликом миші. Рядки сторінки цього вікна вибирають щигликом миші. Вони можуть відображати прості або складні властивості. До простих відносяться властивості, що визначаються одним значенням – числом, рядком символів, значенням False або True і т.д. Складні властивості визначаються сукупністю значень. Ліворуч від імені таких властивостей указується символ «+». Подвійний щиглик по імені такої властивості приводить до розкриття списку значень складної властивості. Закривається розкритий список також подвійним щигликом миші по імені складної властивості. Цікавим нововведенням у Delphi 6 є додавання в Інспекторі Об'єктів так званих розширених вбудованих компонентних посилань (expanded inline component references) або, коротше, вбудованих компонентів. Під цим терміном маються на увазі деякі властивості компонентів, значеннями яких є імена інших компонентів (тобто посилання на інші компоненти). Наприклад, у багатьох компонентів є властивість PopupMenu, яка містить ім'я компонента, що є контекстним меню. Властивості, що містять посилання на вбудований компонент, відображаються в інспекторі об'єктів за замовчуванням червоним кольором. Коли такій властивості присвоюють значення, біля нього з'являється символ «+». Якщо виконати подвійний щиглик по властивості, що містить ім'я вбудованого компонента або просто натиснути символ «+», то розкриється список властивостей вудованого компонента. Властивості вбудованого компонента за замовчуванням відображаються зеленим кольором.
У результаті виконання зазначених операцій буде сформований зовнішній вигляд вікна майбутньої програми. Для того щоб програма виконувала якусь корисну роботу, необхідно перейти до другого етапу – етапу програмування. Розглянемо основні особливості цього етапу.
К
ожен
компонент може реагувати на певний
набір подій. Для того щоб довідатися,
на які саме події відгукується компонент,
необхідно виділити його щигликом миші
на формі, після чого перейти на сторінку
Events (Події) інспектора
об'єктів (див. рис. 2). Сторінка містить
два стовпчика. У першому стовпчику
перераховані імена подій, на які
відгукується компонент, друга заповнюється
програмістом і містить імена створених
оброблювачів подій. Теоретично можна
створити оброблювачі для всіх подій,
для окремих подій або зовсім не створювати
оброблювачів подій для даного компонента.
В останньому випадку компонент може
бути використаний в оброблювачах подій,
створених для інших компонентів. Можна
створити оброблювач якоїсь однієї
події, а потім на сторінці Events
інспектора об'єктів указати його ім'я
для інших подій, що мають такий же тип.
У цьому випадку та сама процедура буде
виконуватися при виникненні різних
подій. Таким чином, на етапі програмування,
насамперед. необхідно визначити, на які
події повинен відгукуватися той або
інший компонент, і на сторінці Events
інспектора об'єктів ввести ім'я
оброблювача, який створюється.
Оброблювач події являє собою процедуру і має ім'я, що складається з двох частин, розділених крапкою. Перша частина являє собою ім'я класу форми, що створюється. Друга частина імені створюється або програмістом, як було сказано вище, або створюється середовищем Delphi, якщо програміст не ввів своє ім'я. Якщо Delphi автоматично формує другу частину імені для оброблювача, то воно становить собою об'єднання імені компонента й імені події без прийменника On, наприклад:
procedure TForml.LabellClick(Sender: TObject);
Тут TForm1 – ім'я класу форми, що створюється; Label1Click – друга частина імені оброблювача події, створена автоматично Delphi і яка означає, що процедура буде виконуватися, якщо по компоненту з ім'ям Label1 (мітка) натиснути лівою кнопкою миші. Параметр Sender типу TObject містить посилання на компонент, що створив подію OnClick (тобто на Label1).
Після того як ви вказали ім'я оброблювача події на сторінці Events інспектора об'єктів або не вказали його, тому що ім'я буде створено автоматично Delphi, необхідно створити заготовку оброблювача події. Для цього в інспекторі об'єктів виконуємо подвійний щиглик по полю, призначеному для імені оброблювача, який створюється. У результаті в вікно редактора коду буде додана заготовка для оброблювача, наприклад:
procedure TForm1.Label1Click(Sender: TObject);
begin
end;
Тіло процедури обмежене зарезервованими словами begin...end, між якими програміст повинен розміщати свої оператори.
Серед операторів, що вставляються програмістом, можуть бути і такі, котрі змінюють значення властивостей компонентів, розташованих на формі. Це означає, що властивості компонентів можна змінювати не тільки за допомогою інспектора об'єктів на етапі конструювання, але й у процесі виконання програми. Зміна властивостей компонентів у процесі виконання програми називається динамічною зміною властивостей.
Помітимо, що кожен компонент Delphi має одну так названу
подію за замовчуванням. Як правило, це подія, для якої найчастіше складаються оброблювачі. Наприклад, для багатьох компонентів Delphi такою подією є OnClick. Для того щоб створити заготовку оброблювача події за замовчуванням, досить виконати подвійний щиглик мишею по компоненті.
Між вмістом вікна форми і вікна редактора коду існує нерозривний зв'язок, який строго контролюється Delphi. Наприклад, розміщення на формі компонента призводить до автоматичної зміни коду програми. Як уже було сказано вище, автоматично створюються також заготовки для оброблювачів подій. Програміст при цьому може наповняти заготовки конкретним змістом – вставляти оператори, додавати описи власних перемінних, типів, констант і т.д. При цьому програміст повинен пам'ятати, що видаляти з тексту програми ті рядки, що вставило туди середовище Delphi треба дуже обережно.