Поняття програми, процес її створення. Поняття об’єкта у програмуванні. Принципи роботи у середовищі візуальної розробки програм.

Поняття мови програмування, програмного коду.

Існують мови програмування високого рівня, низького. Високий рівень програмування – програмування в кодах процесора. Нагадаємо, команда процесора містить 32 ( або 64) біти, тобто 32-хрозрядна послідовність нулів і одиниць. Частину коду команди займає код операції а інша частина – фізичні адреси комірок ОП та пристроїв введення-виведення, задіяних в виконанні команди. Написання програми в такій формі – дуже кропіткий процес, він існував тільки для ЕОМ І покоління. Далі вже виникли алгоритмічні мови, в яких кожна команда – це текст, що містить певні слова (найчастіше англ. мови), що визначають команду та формули, близькі по запису до математичних.

Програма в машинних кодах при завантаженні в ОП зразу виконується процесором. Як правило, програма в машинних кодах зберігається в файлах *.ехе або *.com, тому такі файли і називаються виконавчими програмами. Програма на алгоритмічній мові зберігається в текстових файлах, але їх розширення співзвучне мові програмування: *.bas, *.pas, *.si+, тощо.

Перетворення програми з алгоритмічної мови на машинну мову виконують певні програми, що називаються трансляторами. Транслятори діляться на інтерпретатори і компілятори. Розглянемо принцип роботи кожного з них.

Інтерпретатори (Basic) перекладають кожну команду з алгоритмічної мови на машинну і тут же їх виконують. Тобто процеси трансляції і виконання не розділяються. Такі програми можна завантажувати і виконувати тільки в середовищі інтерпретатора. Тобто, файл *.ехе або *.com отримати не можливо.

Компілятори спочатку перекладають всю програму з алгоритмічної мови на машинну, утворюючи так званий об’єктний програмний модуль. Об’єктний модуль може зберігатися в ОП або на дисках як файли *.ехе або *.com. Тобто, процес трансляції і виконання програми розділені.

Складові програми: дані, логіка, інтерфейс.

Виконання будь-якої програми відбувається, як правило, за таким планом: відбувається звертання до користувача для введення початкових даних, далі за певним алгоритмов відбувається обробка отриманих даних, і завершує цей процес виконання програми друкування результатів.

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

Якщо певні дані будуть визначатись користувачем в ході виконання програми, то треба продумати систему вікон, через який буде здійснюватись зв’язок (інтерфейс) програми і користувача. Може введення даних бажано здійснювати в окремому вікні, а виведення результатів в другому вікні, може введення даних і виведення результатів здійснювати в одному вікні.

Процес обробки отриманих даних в програмі може здійснюватись по різному. Як і людина може розв’язати одну задачу різними методами, так і в програмі може бути використаний той чи інший алгоритм (логіка програми).

Об’єкти і їх властивості

Що таке об’єкт? Постановка серйозної задачі практично ніколи не містить опису змінних і масивів, які треба використовувати. Навпаки, більшість реальних задач формулюються як опис поведінки об’єктів, наприклад при комп’ютерному моделюванні складних систем.

В кінці 80-х років XX століття програмування опинилося в достатньо серйозній кризі. Головна проблема полягала у тому, що складність програм стала перевищувати можливості людського інтелекту. Одній людині стало не під силу охопити розумом всі аспекти складної програми.

Виходом з кризової ситуації став підхід, заснований на понятті об’єкту. Нова ідея полягала в тому, щоб розбити складну систему на частини – об’єкти і спробувати зрозуміти і удосконалювати кожну частину окремо, незалежно від інших. При цьому розробку кожного об’єкту можна доручити окремій людині. Такий підхід називають об’єктно-орієнтованим програмуванням.

Об’єкт – це щось, що має властивості і методи (функції).

Властивості – це якісь характеристики об’єкту, які ми можемо спостерігати і, можливо, змінювати. Васю Пупкина можна розглядати як об’єкт. Його властивості – це зріст, вага, колір очей, характер, зачіска і т.п. Властивості об’єкту-автомобіля – це його марка, колір, об’єм двигуна, рік випуску.

Методи – це команди, які об’єкт розуміє і може виконувати, причому в документації на об’єкт сказано, як саме він реагує на ці команди. Наприклад, автомобіль реагує на натиснення педалей, поворот руля,  перемикання швидкостей.

Ми нічого не знаємо про те, що містить об’єкт всередині. Для нас це, як говорять кібернетики, «чорний ящик». Але найголовніше – для того, щоб працювати з об’єктом, нам і не потрібно знати його внутрішній устрій. Достатньо, що ми можемо визначити і змінити його властивості, а також застосовувати доступні методи управління.

Властивості і методи є інтерфейсом об’єкту, тобто спосіб його спілкування із зовнішнім світом.

Об’єднання властивостей і методів в єдиному понятті об’єкту називають інкапсуляцією.

Програми в середовищі Delphi найчастіше будуються на принципах об’єктно-орієнтованого програмування. Наприклад, більшість програм, що працюють в системі Windows, мають вікно. У Delphi вікно (воно називається формою) – це об’єкт, у якого є властивості (заголовок, колір, розміри і т.п.) і методи (зокрема обробники повідомлень).

На формі розташовані елементи управління – кнопки, перемикачі, поля введення і ін. Вони також є об’єктами з своїми властивостями і методами.

Ми поступово знайомитимемося з об’єктами Delphi на прикладах, заглиблюючись тільки в ті деталі, які потрібні в даній задачі.

Процес створення програми

Delphi – це грецьке місто, де жив дельфійській оракул. І цим ім’ям був названий новий програмний продукт з феноменальними характеристиками. Середовище Delphi фірми Borland  – це одне з найпопулярніших середовищ швидкої розробки додатків (RAD = Rapid Applications Development). Мова, що реалізована в Delphi – це сучасний варіант мови Паскаль (спочатку його називали Object Pascal – об’єктний Паскаль, а зараз – просто мова Delphi).

Розробка програми в середовищі RAD складається з наступних етапів:

1. Створення форми (вікна майбутньої програми); при цьому мінімальний код будується автоматично і відразу виходить працездатна програма;

2. Розстановка елементів інтерфейсу на формі (поля введення, кнопки, текстові повідомлення, списки) за допомогою миші;

3. Створення обробників подій подвійним клацанням миші, мінімальний код також будується автоматично;

4.  Написання коду обробників, який реалізує потрібний алгоритми обробки даних.

Середовища RAD дозволили істотно скоротити час розробки програм. Проте потрібно пам’ятати, що будь-який інструмент – це тільки інструмент, який можна використовувати грамотно і безграмотно. Використовування середовища RAD не гарантує, що у вас автоматично вийде хороша програма з хорошим призначеним для користувача інтерфейсом.


Середовище Delphi

Інтегроване середовище розробника Delphi – це складний механізм, що забезпечує високоефективну роботу програміста. Візуально вона реалізується кількома одночасно розкритими вікнами. Завантажте Delphi, і ви отримаєте дещо схоже на малюнку, після нескладного переміщення вікон та зміни їх розмірів.

1

Головне меню здійснює основні функції керування проектом створюваної програми. Не намагайтесь його розгорнути на весь екран, його розмір і вигляд при цьому майже не зміняться. Це пов’язано з його функціональним призначенням – воно містить всі інструменти для програміста і не займає місце інших вікон. Згортання головного вікна призводить до згортання всіх інших вікон середовища.

2

Інструментальні кнопки відкривають швидкий доступ до найбільш важливих команд головного меню (менюView – Speedbar). По фунцціональним ознакам вони розділені на кілька груп, що займають окрему панель. Розглянемо їх вміст:

3 – відкрити сховище об’єктів (new items);

4 – відкрити файл (open file);

5 – зберегти файл (save file);

6 – зберегти всі файли проекту;

7 – відкрити проект;

8 – додати файл до проекту (add file to project);

9 – видалити файл з проекту (remove file from project);

10 – обрати модуль зі списку модулів, пов’язаних з поточним проектом (select unit from list);

11 – обрати форму зі списку форм, пов’язаних з поточним проектом (select form from list);

12 – перемкнути активність між вікном форми і вікном кода програми (toggle form/unit);

13– створити нову форму і додати її до проекту (new form);

14 – запустить компіляцію та виконання програми (run);

15– призупинити виконання програми (pause);

16 – здійснити покрокове виконання програми з викликом підпрограм (step into);

17 – здійснити покрокове виконання програми без виклику підпрограм (step over).

Палітра компонентів – це головне багатство Delphi (менюView – Component Palette). Вона розташована в правій частині Головного вікна і містить кілька вкладок, що забезпечують швидкий пошук потрібного компонента. Під компонентом розуміють певний функціональний вузол, який програміст може розмістити в вікні форми, який має певні властивості. Як правило за допомогою цих компонентів користувач програми вводе дані в програму або отримує результати її роботи. Це може бути вікно введення, перемикачі, прапорці, списки і т.п. Палітру можна редагувати за допомогою ДВ Environments Options (КМ палітри – Configure).

18 

Вікно форми – в майбутньому перетвориться в вікно програми. На початку це вікно пусте і містить тільки стандарті для Windows інтерфейсні елементи в рядку заголовка. Вся область вікна заповнена координатною сіткою. Значну частину часу програміст ніби з конструктором Logo бере з палітри певний компонент і викладає його на форму. В наповненні форми і полягає основна родзинка візуального програмування. Програміст в будь-який час контролює вид вікна створюваної програми і може вносити в нього певні зміни.

Вікно інспектора об’єктів. Будь-який розміщений на формі об’єкт має певні характеристики: розташування, розмір, колір, тощо. Частину цих параметрів програміст може визначити маніпулюючи мишкою: перетягти, змінити розмір. Але всі характеристики об’єктів визначаються в вікні інспектора об’єктів. Це вікно має 2 вкладки: Properties (Властивості) і Events (Події). Вкладка Properties використовується для визначення певних властивостей компонента, а вкладка Events дозволяє визначити реакцію компонента на ту чи іншу подію. Сукупність властивостей відображає видиму сторону компонента: відстань відносно лівого верхнього кута вікна, розмір,  колір, тощо, сукупність подій – його поведінку: чи буде реагувати на клацання мишею, як буде з’являтись на екрані, чи буде зникати після використання і т.п.

Кожна вкладка вікна постає перед програмістом в вигляді таблиці з 2-х стовпчиків: лівий – назви властивостей або подій, правий – значення властивості або ім’я підпрограми, що її обробляє. Рядки таблиці обираються кліком миші і відображають прості (одне значення) або складні властивості (сукупність значень). Виділивши складну властивість, маємо біля неї позначку-кнопку –19 , після натискання на неї з’явиться діалогове вікно, в якому визначаємо сукупність параметрів властивості.

В верхній частині вікна маємо відкриваючий список всіх компонентів, розміщених в формі. 20Оскільки сама форма також є компонентом, тої ім’я також є в цьому списку.

Вікно кода програми призначене для створення і редагування тексту програми. Мова програмування Delphi є надбудовою над мовою Pascal.

Зразу після відкриття нового проекту маємо рядки, що описують присутністю в програмі форму. Як вже зазначено, вікно кода програми описує поведінку програми, а вікно форми – її зовнішнє відображення. Обидва вікна тісно пов’язані між собою, і будь-які зміни в формі вносять зміни в коді програми між рядками unit і implementation.

Вікно дерева об’єктів – призначене для візуального відображення зв’язків між окремими компонентами, розміщеними на активній формі або в активному модулі. Клік на будь-який компонент в цьому вікна активізує відповідний компонент в формі і відображає властивості цього компонента в вікні інспектора об’єктів.

Основи візуального програмування

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

Розберемося з поняттям модуль. Модуль – це самостійна частина програми. Модуль створюється кожен раз, як створюється нова форма. При компіляції програми Delphi створює файли з розширеннями PAS, DFM I DCU для кожного модуля:

♠ PAS-файл містить копію тексту з вікна кода програми,

♠ в DFM-файлі зберігаються описання змісту форми,

♠  DCU-файл містить результат перетворення в машинний код текстів з обох файлів.

DCU-файли створюються компілятором і є необхідною базою для роботи компановщика, який перетворює їх в єдиний виконавчий файл з розширенням EXE.

На початку роботи в середовищі Delphi маємо пусту форму, але ця форма вже має певні властивості: розмір, розташування, тощо. В програмі ще не закладено ніяких дій, крім однієї – виведення вікна – прообразу нашої форми. Спробуємо запустити програму на компіляцію і виконання – 14 . Спочатку виникне діалог, в якому треба визначити місце збереження файлів проекту, а потім виникне пусте діалогове вікно з заголовком Form1. Закривши його, повертаємося в режим модифікації форми і коду програми.

Форма, її конструювання

Властивості форми визначають зовнішній вигляд вікна майбутньої програми: розмір, розташування на екрані, текст заголовка, вид рамки.

Для перегляду та зміни властивостей форми використовуємо вікно інспектора об’єктів Object Inspector. В верхній частині вікна Object Inspector визначається назва об’єкту, властивості якого визначаються на даний момент. В лівій колонці вкладки Properties (Властивості) приведені властивості об’єктів, а в правій – їх значення.

Таблиця 1  Властивості форми (об’єкта mform)

1

Форма — це звичайне вікно, тому його розмір можна змінити перетягуванням границі вікна. При цьому значення Height і width зміняться автоматично. Вони будуть відповідати встановленому розміру форми.

Компоненти, їх властивості

Щоб додати в форму компонент, треба обрати спочатку його в палітрі компонентів, клацнути по його значку та визначити його місце на формі, окресливши показником миші рамку на координатній сітці форми. Якщо компонент має стандартний розмір, то він розміститься в лівому верхньому кутку окресленої рамки.

Вкладка Standard містить найбільш поширені компоненти.

Каждому компоненту Delphi присвоює ім’я, яке складається з його назви та порядкового номера:  Edit1 и Edit2. Програміст шляхом зміни значення властивості Name може мінити ім’я компонента. В простих програмах імена компонентів, як правило, не змінюють.

Таблица 2  Властивості компонента Edit  21  (поле введення-редагування)

2

Delphi дозволяє змінювати розмір і розташування компонентів за допомогою миші.

Поряд з полем введення в вікні програми повинні знаходитись тексти, що коментують призначення поля введення. Також в вікні програми можуть бути присутніми і інші текстові повідомлення користувачу програми. Для виведення тексту в форму використовується компонент мітка – Label. Значок компонента Label знаходиться також на вкладці Standard. Додаємо компонент Label в форму точно як і поле введення.

Таблиця 3  Властивості компонента Label  22 (поле виведення тексту)

3

Командна кнопка, компонент Button, додається в форму точно так, як і інші компоненти. Значок компонента Button знаходиться на вкладці Standard.

Таблиця 4   Властивості компонента Button  23 (командна кнопка)

4

Подія і процедура обработки події

Вид створеної форми підказує, як працює додаток. Вочевидь, що користувач повинен ввести початкові дані в поля введення і редагування і натиснути на кнопку з підписом про початок роботи з даними, виведення результатів, тощо. Клік на зображення командної кнопки — це приклад того, що в Windows називають подією.

Подія (Event) — це те, що відбувається під час роботи програми. В Delphi кожній події присвоєено ім’я. Наприклад, клік кнопкою миші – це подія OnClick, подвійний клік мишею –  OnDblClick.

Таблиця 5 Події Windows

5

Реакцією на подію повинна бути певна дія. В Delphi реакція на подію реалізуєтся як процедура обробки події. Таким чином, щоб програма виконувала певну роботу у відповідь на певну дію користувача, програміст повинен в програмі написати процедуру обробки відповідної події. Треба звернути увагу на те, що значну частину обробки події бере на себе компонент. Тому програміст повинен розробити процедуру обробки події тільки в тому випадку, якщо реакція на подію відрізняється від стандартної або не визначена. Наприклад, якщо по умові задачі немає обмежень на символи, що вводяться в поле Edit, то процедуру обробки події OnKeyPress писать не потрібно, бо під час роботи програми буде використана стандартна процедура обробки події.

Щоб почати створення процедури обробки події, треба в вікні Object Inspector вибрати компонент, для якого створюється процедура обробки події, відкрити вкладку Events (Подія).

В лівому стовпчику вкладки Events приведені імена подій, які може сприймати компонент. Якщо для цієї події вже існує процедура її обробки, то в правому стовпчику поряд з назвою події приводиться ім’я цієї процедури.

Для того щоб створити функцію обробки події, треба зробити подвійний клік мишею в полі імені процедури відповідної події. В результаті відкриється вікно редактора кода програми, в яке буде добавлено шаблон процедури обробки події, , а в вікні Object Inspector поряд з іменем події з’явиться ім’я функції її обробки.

Delphi присвоює функції обробки події ім’я, яке складається з двох частин. Перша частина ідентифікує форму, що містить компонент і для якого створюється процедура обробки події. Друга частина ідентифікує сам компонент і подію. Наприклад,  ім’я форми — Form1, ім’я команднї кнопки — Buttoni, а ім’я події –Click, тоді ім’я процедури: TForm1.ButtonlClick.

В вікні редактора кода між словами begin и end можна друкувати інструкції, що реалізують функцію обробки події.

Приклад створення проекту:

1. В вікні інспектора об’єктів визначте значення вказаних в таблиці значень  властивостей форми:7

242.  Спробуйте змінити розмір форми перетягуванням границі показником миші. Перевірте, як зміни-лись значення цих властивостей.

3. Спробуйте визначити значення цих властивостей, вводячи нові значення в інспекторі об’єктів. Значення властивості Caption визначте «Увага!». Спостерігайте, які зміни при цьому відбулись в самій формі.

4. Запустіть проект на виконання – 14  – кнопка в панелі інструментів. При цьому виконання проекту містить тільки одну подію – появу описаного вікна програми, що ідентичне описаній формі.

5. Закривши вікно проекту, отримаємо знову зображення форми та коду програми.

6. Щоб зберегти проект, треба з меню File вибрати команду  Save Project As. Якщо проект ще не був збережений, то Delphi спочатку запропонує зберегти модуль (вміст вікна редактора коду), тому на екрані з’явиться вікно Save Unitl As. В цьому вікні треба визначити папку, призначену для файлів проекту, і ввести ім’я модуля. Після натискання кнопки Сохранить, з’явиться друге вікно, в якому необхідно ввести ім’я файла проекту.

Розміщення на формі компонентів

1. Щоб розмістити на формі текст, треба обрати в палітрі компонентів компонент мітка – Label 22, а потім на формі показником миші обвести діапазон, в якому плануєте розмістити текст.

26
2. Зверніть увагу на вікно інспектора об’єктів. В ньому зараз визначені властивості активного компонента – мітки Label1. В полі Caption введіть текст «На системному диску – ВІРУС!». Що змінилось в формі при цьому?

27
3. В вікні інспектора об’єктів клацніть по властивості Font. Клацнувши по кнопці 28, отримаємо діалогове вікно, в якому можна визначити формат тексту.
4. Аналогічно розмістіть на формі ще одну мітку Label2 з текстом «ВІРУС знищити неможливо! Форматувати диск?».
5. Розмістіть на формі новий компонент – кнопку (23– Button). В вікні інспектора об’єктів в полі Caption введіть текст «Почати форматування!».
6. Розмістіть під кнопкою ще один компонент – мітку Label3.

7. Зробіть прогон програми. В вікні програми натискання кнопки не викликає ніяких змін, тобто подій. Закрийте вікно програми, щоб продовжити роботу з проектом.

8. Щоб запрограмувати якусь подію, що буде здійснюватись при натисканні кнопки, виконайте подвійний клік по кнопці на формі.29
9. В вікні кода програми виникне шаблон процедури обробки події. Між словами begin end  вставте текст label3.Caption:=”Розслабтесь. Це був жарт!”;

Ця команда визначає зміну значення властивості Caption компонента Label3 програмним шляхом після події – клік мишкою по кнопці.

10. Зробіть тепер прогон програми. Спробуйте в вікні програми натискати кнопку.
11. Щоб в поточній папці зберегти файл *.ехе, виконати команду з меню Proiect – Build NameProject.

12. Створити на диску D: папку, в яку потіп збережіть проект. Щоб в поточній папці зберегти файл *.ехе, виконати команду з меню Proiect Build NameProject. Для файлу *.ехе викласти ярлик на робочий стіл. Спробуйте запустити програму з ярлика. Вітаємо з першим вдалим проектом!