Міністерство освіти І науки, молоді та спорту україни міжнародний економіко-гуманітарний університет імені академіка степана дем’янчука с. О. Карпік Сучасні системи візуалізації даних Науковий керівник icon

Міністерство освіти І науки, молоді та спорту україни міжнародний економіко-гуманітарний університет імені академіка степана дем’янчука с. О. Карпік Сучасні системи візуалізації даних Науковий керівник




НазваМіністерство освіти І науки, молоді та спорту україни міжнародний економіко-гуманітарний університет імені академіка степана дем’янчука с. О. Карпік Сучасні системи візуалізації даних Науковий керівник
Сторінка1/18
Дата24.12.2012
Розмір1.21 Mb.
ТипДокументи
  1   2   3   4   5   6   7   8   9   ...   18


МІНІСТЕРСТВО ОСВІТИ І НАУКИ,

МОЛОДІ ТА СПОРТУ УКРАЇНИ


МІЖНАРОДНИЙ ЕКОНОМІКО-ГУМАНІТАРНИЙ УНІВЕРСИТЕТ

ІМЕНІ АКАДЕМІКА СТЕПАНА ДЕМ’ЯНЧУКА


С.О. Карпік


Сучасні системи візуалізації даних





Науковий керівник:

Ю. В. Турбал, канд. фіз.-мат. наук, доцент


Науковий консультант:

Р.М.Літнарович, канд. техн. наук, доцент


Рівне-2012

УДК 004.422.8 Карпік С.О. Сучасні системи візуалізації даних. Монографія. МЕГУ, Рівне, 2012.-84 с. Karpik S.O. Modern systems data visualization. Monograph. IEGU, Rivne, 2012.-84 p.


Рецензенти: В.Г.Бурачек, доктор технічних наук, професор

Є.С. Парняков, доктор технічних наук, професор

В.О.Боровий , доктор технічних наук, професор

Відповідальний за випуск: Й.В. Джунь, доктор фізико-математичних наук, професор.

Досліджується і аналізується створення програмного забезпечення для візуалізації даних по землетрусах. Монографія містить актуальний матеріал довідково-аналітичного характеру по наступних темах: створення програмного забезпечення, робота з графікою, створення графічного додатка, візуалізація даних, програмування, робота в середовищі розробки програм Borland C++ Builder 6.

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


Исследуется и анализируется создание программного обеспечения для визуализации данных по землетрясениям. Монография содержит актуальный материал справочно-аналитического характера по следующим темам: создание программного обеспечения, работа с графикой, создания графического приложения, визуализация данных, программирование, работа в среде разработки программ Borland C++ Builder 6.

^ Ключевые слова: визуализация данных, графическое приложение, программное обеспечение, программирование.


Investigates and analyzes the development of software for data visualization by earthquakes. The book contains material relevant reference and analytical nature in the following topics: software, work with graphics, create graphics applications, data visualization, programming, work in software development environment Borland C + + Builder 6.

Keywords: data visualization, graphic application, software, programming.


© Карпік С.О.





^ Сергій Олексійович Карпік,

магістрант інформаційних технологій


Архів наукових публікацій Національного педагогічного університету

ім. М. Драгоманова

http:enpuir.npu.edu.ua:8080/1,2,3,4,5,6,7,8,9/

Захищено авторським правом. Всі права застережено.

ЗМІСТ


ЗМІСТ 5

ЗМІСТ 5

Вступ 42

Тема наукової роботи „Сучасні системі візуалізації даних” поєднує у собі програмування та комп’ютерну графіку. Метою даної роботи є створення програмного забезпечення для візуалізації даних по землетрусах з можливістю зберігати результати візуалізації у графічні файли. Предмет дослідження – методи автоматичного представлення даних у візуальному вигляді, перетворення даних у візуальний формат. Об\'єкт дослідження – розробка програми для візуального виведення даних на екран та у графічний файл. 42

Візуальне представлення даних є набагато інформативнішим за інші методи отримання та сприйняття інформації, більш зручним і легшим для сприйняття та розуміння ніж наприклад представлення даних у таблицях, схемах, математичних матрицях, або просто в числах. У наш час поширюються засоби для візуального представлення інформації та даних і для таких цілей широко використовується комп’ютерна техніка, тому виникає необхідність створювати програмне забезпечення для візуалізації даних. З’явились також нові різновиди візуального представлення даних, деякі з них походять від графіків, діаграм, гістограм і не просто візуалізація на площині а візуалізація у 3D просторі. 42

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

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

Враховуючи вимоги до створення програмного забезпечення та актуальність сучасних мов програмування, для створення програмного забезпечення було обрано середовище візуальної розробки програм Borland C++ Builder 6. 42

Розділ 1 СУЧАСНІ ТЕХНОЛОГІЇ ПРОГРАМУВАННЯ 43

1.1 Об’єктно-орієнтоване програмування (ООП) 43

1.1 Об’єктно-орієнтоване програмування (ООП) 43

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

Об’єктно-орієнтоване програмування – це методика, що концентрує основну увагу програміста на зв\'язках між об\'єктами, а не на деталях їхньої реалізації. Класичні принципи ООП – інкапсуляція, наслідування, поліморфізм, створення класів і об\'єктів, вони інтерпретуються й доповнюються новими поняттями й термінологією, прийнятими інтегрованими середовищами візуальної розробки. 43

Наслідування 43

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

Поліморфізм 44

Коли буде відбуватися звернення до змінної, що відноситься до класу С, що є послідовником класу В, який в свою чергу наслідує класу А, то програмі доведеться вирішувати, який конкретно метод потрібно викликати: метод класу А, В чи С. У відповідності з принципом поліморфізму рішення приймається в залежності від типу змінної, що викликала цей метод. 44

Інкапсуляція 44

Інкапсуляція дозволяє розмежувати доступ розробників до різних полів і властивостей класу, приблизно так, як це зроблено в модулях C++Builder , коли з інших модулів видно лише інтерфейсну частину. Точно так і всередині класу деякі поля і методи можна зробити вільно доступними для використання в будь–якому місці програми, а інші поля і методи зробити доступними лише всередині поточного модуля і власних методів класу. Це дозволяє сховати в середині опис різних характеристик і можливостей класу, щоб зосередити увагу розробників, що повторно використовують цей клас, на його важливих якостях. Крім того, бажано не допускати безконтрольної зміни значень властивостей, так як це може призвести до порушення запланованого і збалансованого взаємозв’язку між цими якостями. 45

У середовищі C++Builder мова С++ розширена новими можливостями (компоненти, властивості, методи, обробники подій) і останніми доповненнями стандарту ANSI C++ (шаблони, простори імен, явні й непостійні оголошення, ідентифікація типів при виконанні програми RTTI, виключення, динамічні масиви, ключові словами explicit, mutable, typename, automated і ін.). У C++Builder введено нові типи даних: булевий тип даних bool, рядковий тип AnsiString (реалізований як клас, оголошений у заголовочному файлі vcl/dstring.h), тип “множина” (реалізований як шаблон класу, оголошений у заголовочному файлі vcl/sysdefs.h) та інші типи. Вважається що останні версії C++Builder найбільш повно відповідають стандарту ANSI/ISO серед всіх компіляторів на платформі Windows. 45

Компанія Borland пропонує потужний набір власних розширень мови C++, що забезпечує підтримку VCL бібліотеки (Visual Component Library). У C++Builder поряд із звичайними об\'єктними класами мови C++, з’явилися нові компонентні класи (компоненти). Форми є основою додатків C++Builder. Створення користувацького інтерфейсу додатка полягає в додаванні на форму елементів (компонентів). Компоненти C++Builder розташовуються на палітрі компонентів, виконаної у вигляді багатосторінкового блокнота. Важлива особливість C++Builder полягає в тому, що він дозволяє створювати власні компоненти й настроювати палітру компонентів, а також створювати різні версії палітри компонентів для різних проектів. 46

Компонент (component) – спеціальний клас, властивості якого подають атрибути об\'єкту, а його методи реалізують операції над відповідними екземплярами компонентних класів. Поняття властивість, метод, обробник подій розглянемо далі, а зараз перелічимо основні відмінності компонентних класів від об\'єктних класів: 46

– всі компоненти є прямими або непрямими нащадками одногозагального класу-прародича (TComponent); 46

– компоненти звичайно використовуються безпосередньо,шляхом маніпуляції з їхніми властивостями; 46

– компоненти розміщаються тільки в динамічній пам\'яті купи(heap) за допомогою оператора new, а не на стеку, як об\'єкти звичайних класів; 46

– компоненти можна добавляти до палітри компонентів і далі маніпулювати з ними за допомогою редактора форм інтегрованого середовища візуальної розробки C++Builder; 46

– оголошення (інтерфейсна частина) компонентного класу обов’язково описується окремо (розширення .h) від реалізації(розширення .cpp). 46

Форма – це також компонент, і тому з кожною формою пов’язані файл оголошення та файл реалізації. Скелети обох файлів автоматично генеруються середовищем C++Builder при візуальному створенні нової форми, а програміст доповнює ці файли власним кодом. При додаванні у форму будь-якого компонента з палітри компонентів C++Builder автоматично формує програмний код для створення об\'єкта (змінної) даного типу. Змінна додається як член класу даної форми. 47

1.2 Візуальне програмування інтерфейсів програмного забезпечення 47

1.2 Візуальне програмування інтерфейсів програмного забезпечення 47

Візуалізація – це процес графічного відображення складних процесів на екрані комп\'ютера у вигляді графічних примітивів (фігур). Візуалізувати можна будь-які процеси: управління, побудови, малювання та інші. Приклад найпростішого варіанта візуалізації – лінійка прогресу (прямокутник, відсоток заповнення якого прямо пропорційний об\'єму виконання якої-небудь операції). Дивлячись на лінійку, можна оцінити об\'єм невиконаних операцій, який залишився. 47

Візуалізовувати можна інтерфейси програмного забезпечення. Це дозволяє спростити взаємодію програмного продукту з користувачем. Зображення на елементах інтерфейсу (зовнішнього вигляду програмного забезпечення) дозволяють користувачу інтуїтивно розбиратися в призначенні цих елементів. 47

Для візуалізації інтерфейсів програмного забезпечення існує цілий ряд спеціально розроблених елементів інтерфейсу – візуальних компонентів, що дозволяють відображати різну інформацію й здійснювати керування програмою в цілому. Найпростіший приклад – візуальна кнопка на екрані комп\'ютера. Візуальна кнопка імітує поведінку звичайної кнопки на пульті керування будь-якого приладу. Її можна "натискати" як справжню. 47

Саме наявність візуальних засобів побудови інтерфейсів для Windows в C++Builder, а також створюване ними візуальне програмне забезпечення закріпили за ним термін "візуальне програмування". 47

Визначальними елементом процесу візуалізації є візуалізована модель, тобто модель, що піддається відображенню з метою можливості зміни її структури або її параметрів (або параметрів її окремих частин). Візуалізованою моделлю в C++Builder є вікно (форма, діалог) Windows, а не код програми. У C++Builder прийнято візуалізовувати тільки роботу з елементами інтерфейсу, коли об\'єкти візуалізації розглядаються як візуальні компоненти, з яких складаються форми (вікна й діалоги) інтерфейсу програми. 48

Інструменти візуальної розробки в середовище C++Builder включають в себе дизайнер форм, інспектор об\'єктів, палітру компонентів (вікно, що містить набір компонентів, з яких будується візуальна модель), менеджер проектів і редактор коду. 48

Ці інструменти включені в інтегроване середовище системи (Integrated Development Environment, IDE), яке забезпечує продуктивність багаторазового використання візуальних компонентів у поєднанні з удосконаленими інструментами й засобами доступу до баз даних. 48

Конструювання способом “перетягування” (drag-and-drop) дозволяє створювати додаток простим перетаскуванням захоплених мишею візуальних компонентів з палітри на форму додатка. 48

Механізми дво напрямної розробки (Two-Way-Tools) забезпечують контроль коду за допомогою гнучкої, інтегрованої й синхронізованої взаємодії між інструментами візуального проектування й редактором коду. 48

Інспектор об\'єктів надає можливість оперувати властивостями (вікно властивостей – вікно, у якому відображаються параметри обраного елемента візуальної моделі) й подіями компонентів. 48

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

Візуальне програмування дозволяє звести проектування користувацького інтерфейсу до простих і наочних процедур. Але переваги візуального програмування не зводяться лише до цього. 49

Саме головне полягає в тому, що під час проектування форми й розміщення на ній компонентів C++Builder автоматично формує коди програми, включаючи в неї відповідні фрагменти, що описують даний компонент. А потім у відповідних діалогових вікнах користувач може змінити задані за замовчуванням значення властивостей цих компонентів і, при необхідності, написати обробники потрібних подій. Тобто проектування зводиться, фактично, до розміщення компонентів на формі, завдання деяких їхніх властивостей і написання, при необхідності, обробників подій. Результатом візуального проектування є скелет майбутньої програми, у яку вже внесені відповідні коди. 49

1.3 Технологія швидкої розробки додатків (RAD) 49

1.3 Технологія швидкої розробки додатків (RAD) 49

Завдяки візуальному об’єктно-орієнтованому програмуванню (ООП) була створена технологія, що одержала назву швидка розробка додатків (RAD — Rapid Application Development). Ця технологія характерна для нового покоління систем програмування, до якого відноситься й C++Builder. 49

C++Builder – це інструмент для швидкої розробки додатків (RAD) на С++ під Windows, який підтримує можливість програмування, що ґрунтується на компонентах. 49

Компоненти – це будівельні блоки для додатків. Тобто, використовуються об’єкти-компоненти зі своїми можливостями і об’єднуються в один додаток. C++Builder сам побудований на компонентах і робота з компонентами в C++Builder проста і надійна. 50

Швидка розробка додатків (RAD) означає підтримку властивостей, методів і подій компонентів у рамках об\'єктно-орієнтовного програмування. 50

Властивості дозволяють легко встановлювати різноманітні характеристики компонентів, такі як назви, контекстні підказки або джерела даних. Методи (функції-члени) роблять певні операції над компонентним об\'єктом. Події зв\'язують впливи користувача на компоненти із кодами реакції на ці впливи. 50

Працюючи спільно, властивості, методи і події утворять середовище RAD інтуїтивного програмування надійних додатків для Windows. 50

Як було сказано вище, компонент – це спеціальний клас, властивості якого подають атрибути об\'єкту, а його методи реалізують операції над відповідними екземплярами компонентних класів. 50

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

Поняття метод звичайно використовується в контексті компонентних класів і зовнішньо не відрізняється від терміна функція-член звичайного класу. Щоб викликати метод, треба вказати ім\'я функції в контексті даного класу. Саме схований зв\'язок методу з класом виділяє його з поняття простої функції. Під час виконання методу він має доступ до всіх даних свого класу. Це забезпечується передачею кожному методу схованого параметра – вказівника this на екземпляр класу. При будь-якому звертанні методу до членів даних класу, компілятор генерує спеціальний код, що використовує вказівник this. Метод є функцією, що пов\'язана з компонентом і оголошується як частина об\'єкта. Методи можна викликати, використовуючи операцію доступу через вказівник -> для цього компонента. 50

C++ Builder дозволяє маніпулювати виглядом і функціональною поведінкою компонентів не тільки за допомогою методів (як це роблять функції-члени звичайних класів), але й за допомогою властивостей і подій, властивих тільки класам компонентів. Маніпулювати з компонентним об\'єктом можна як на стадії проектування додатка, так і під час його виконання. 51

Властивості (properties) компонентів являють собою розширення поняття членів даних і, хоча не бережуть дані як такі, проте забезпечують доступ до членів даних об\'єкта. C++Builder використовує ключове слово __property для оголошення властивостей. Властивості є атрибутами компонента, що визначають його зовнішній вигляд і поведінку. Багато властивостей компонента мають значення, за замовчуванням (наприклад, висота кнопок). Властивості компонента відображаються на сторінці властивостей (Properties). Інспектор об\'єктів відображає опубліковані (published) властивості компонентів. Крім published-властивостей, компоненти можуть і найчастіше мають загальні (public) властивості, які доступні тільки під час виконання додатка. Інспектор об\'єктів використовується для встановлення властивостей під час проектування. Список властивостей розташовується на сторінці властивостей інспектора об\'єктів. Можна визначити властивості під час проектування або написати код для видозміни властивостей компонента під час виконання додатка. 51

При визначенні властивостей компонента під час проектування потрібно вибрати компонент на формі, відкрити сторінку властивостей в інспекторі об\'єктів, вибрати потрібну властивість і змінити її за допомогою редактора властивостей (це може бути просте поле для введення тексту або числа; список, що випадає; список, що розкривається діалогова панель та інше). 51

Сторінка подій (Events) інспектора об\'єктів показує список подій, розпізнаваних компонентом. За допомогою подій (events) компонент повідомляє користувачу про те, що на нього зроблений деякий визначений вплив (програмування для операційних систем із графічним користувацьким інтерфейсом, зокрема, для Windows XP або Windows NT передбачає опис реакції додатка на ті або інші події, а сама операційна система займається постійним опитуванням комп\'ютера з метою виявлення настання якої-небудь події). Кожний компонент має свій власний набір обробників подій. У C++Builder необхідно писати функції, які називаються обробниками подій, і зв\'язувати події із цими функціями. Якщо подія відбудеться і обробник цієї події написаний, то програма виконає написану функцію. 52

Для того, щоб додати обробник подій, потрібно вибрати на формі за допомогою миші компонент, якому необхідний обробник подій, потім відкрити сторінку подій інспектора об\'єктів і двічі клацнути лівою клавішею миші на колонку значень поруч із подією, щоб C++Builder згенерував прототип обробника події і показав його в редакторі коду. При цьому автоматично генерується текст порожньої функції, і редактор відкривається в тому місці, де треба вводити код. Курсор позиціюється у середині операторних дужок { ... }. Далі потрібно ввести код, який повинен виконуватися при настанні події. Обробник подій може мати параметри, які вказуються після імені функції в круглих дужках. 52

C++Builder використовує ключове слово __closure для оголошення подій. Основна сфера застосування методів – це обробники подій (event handlers), що реалізують реакцію програми на виникнення визначених подій. Типові прості події – натискання кнопки або клавіші на клавіатурі. 52

1.4 Узагальнене програмування (generic programming) 52

1.4 Узагальнене програмування (generic programming) 52

Поряд з ООП у C++Buider широко підтримується узагальнене програмування, яке спрямоване на спрощення повторного використання коду і на абстрагування загальних концепцій. Якщо в ООП акцент програмування ставиться на дані, то в узагальненому програмування – на алгоритми. 52

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

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

У мові програмування С++ узагальнене програмування реалізується за допомогою шаблонів. Шаблон являє собою параметризоване визначення деякого елемента програми. При цьому розроблювач усього лише вказує компілятору правило для генерації (породження) одного або декількох конкретних екземплярів цього елемента програми. У C++ допускається створення шаблонів для функцій, методів і класів. При цьому як параметр шаблона можна використовувати тип (клас), звичайний параметр відомого типу, інший шаблон. У шаблона може бути кілька параметрів. 53

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

Отже, найбільш перспективним стає наступний (більш високий у порівнянні із класами) рівень абстрактного програмування – створення своїх і використання стандартних шаблонів і узагальнених алгоритмів стандартної бібліотеки, які вже розроблені й налагоджені професіоналами. 53

1.5 Огляд бібліотеки VCL 53

1.5 Огляд бібліотеки VCL 53

Бібліотека візуальних компонентів VCL (Visual Component Library) – об’єктно-орієнтована бібліотека для розробки програмного забезпечення, розроблена компанією Borland для підтримки візуального програмування. VCL входить у комплект поставки C++Builder, Delphi і Borland Developer Studio і є частиною середовища розробки, хоча розробка додатків у цих середовищах можлива й без використання VCL. VCL представляє величезну кількість (більше 360) готових до використання компонентів для роботи в самих різних областях програмування, таких, наприклад, як інтерфейс користувача (екранні форми, елементи керування та інші), робота з базами даних, взаємодія з операційною системою, програмування мережних додатків та інше. 54

Сукупність функцій, за допомогою яких здійснюється доступ до системних ресурсів, називається прикладним програмним інтерфейсом, або API (Application Programming Interface). Для взаємодії з Windows додаток використовує функції API, за допомогою яких реалізуються всі необхідні системні дії, такі як виділення пам\'яті, вивід на екран, створення вікон і т.п. Бібліотека VCL є просто оболонкою для WinAPI. Класи VCL створені тільки для того, щоб полегшувати процес програмування. Наприклад, один з найважливіших класів TForm з бібліотеки VCL можна було б створити, не використовуючи класи VCL. 54

Компонент C++Builder – це особливий вид об\'єктів – візуальний об\'єкт (візуальний для проектування, а не для відображення користувача). Створювати й редагувати такий об\'єкт можна як програмним шляхом, так і на етапі проектування. 54

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

Усі компоненти мають загального предка – клас TComponent. Усі компоненти C++Builder можуть бути доступні через палітру компонентів. Частина компонентів є елементами керування. В основному – це елементи керування Windows. 54

Елементи керування можна підрозділити на віконні й невіконні. Віконні елементи можуть одержувати фокус вводу і мають дескриптор вікна. Предком всіх віконних елементів керування є абстрактний клас TWinControl. Предком не віконних елементів керування є абстрактний клас TGraphicControl. 55

При додаванні у форму будь-якого компонента з палітри компонентів C++Builder автоматично формує програмний код для створення об\'єкта (змінної) даного типу. Змінна додається як член класу даної форми. 55

Класи бібліотеки VCL використовують механізм простого успадкування: один клас може мати тільки одного предка. Коренем ієрархії класів є клас TObject. Далі на Рис. 1. наведено ієрархію ключових базових класів бібліотеки VCL. 55

Будь-який клас VCL-бібліотеки успадковується від класу TObject. Клас TPersistent пішов безпосередньо від класу TObject. Він забезпечує своїх нащадків можливістю взаємодіяти з іншими об\'єктами і процесами на рівні даних. Його методи дозволяють передавати дані в потоки, а також забезпечують взаємодію об’єкта з інспектором об\'єктів. Клас TPersistent має метод Assign, який дозволяє передавати поля і властивості одного об’єкту іншому. 55

Клас TComponent є предком всіх компонентів VCL-бібліотеки. Всі нащадки даного класу можуть бути розташовані в палітрі компонентів. 55

Клас TComponent дозволяє визначати батьківський елемент керування й власника компонента. Батьківським елементом керування називається той, у який безпосередньо поміщений даний компонент. Власником всіх компонентів, розташованих у формі, є сама форма. Власником всіх форм є додаток. 55

Рис. 1. Ієрархія ключових базових класів бібліотеки VCL 56

Якщо компонент розташований не безпосередньо у формі, а, наприклад, у компоненті типу TPanel, то власник і батьківський елемент керування в нього будуть різні. 56

TControl – це базовий клас всіх елементів керування (включаючи й вікно форми). Ці компоненти можуть бути видимі під час виконання. Для них визначені такі властивості, як позиція, курсор, підказка, що спливає, методи для малювання або переміщення елемента керування, події для маніпуляцій за допомогою миші. 56

Клас TWinControl є базовим класом всіх віконних елементів керування. 56

Клас TApplication інкапсулює об\'єкт "windows-додаток". За допомогою цього класу визначається інтерфейс між розробником і середовищем Windows. У кожному додатку C++Builder завжди автоматично створюється один об’єкт Application як екземпляр класу додатка. Для більшості додатків цей об’єкт є екземпляром класу TApplication. Компонент TApplication не відображається в палітрі компонентів і не має властивостей, що публікуються. Для того, щоб мати можливість перехоплювати події для додатка, можна додати в будь-яку форму проекту компонент TApplicationEvents. 56

Кожний додаток C++Builder має глобальну змінну Screen типу TScreen. Компонент TScreen, так само як і компонент TApplication, недоступний з інспектора об\'єктів. Цей компонент призначений для забезпечення доступу до пристрою виводу – екрану. Його властивості містять інформацію про використовуване розширення монітора, курсорах і шрифтах, доступних для додатка, списку форм додатка й активній формі. 57

TForm є базовим класом для створення вікна форми. За замовчуванням кожна нова створювана форма реалізується як нащадок класу TForm. Форма може бути головним вікном додатка, діалоговим вікном, дочірнім або MDI-вікном. 57

Клас форми є контейнером для всіх компонентів, розташовуваних на формі. Для доступу до властивостей форми або іменам компонентів можна використовувати вказівник this. Якщо перед іменем властивості відсутній який-небудь вказівник, то за замовчуванням вважається, що це властивість форми. 57

Форма є компонентом VCL, тому формі притаманні певні загальні властивості компонентів VCL. 57

1.6 Продуктивність візуальних компонентів VCL 57

1.6 Продуктивність візуальних компонентів VCL 57

Бібліотека візуальних Компонентів VCL придбала статус нового промислового стандарту і в цей час застосовується більш ніж півмільйоном користувачів, істотно прискорюючи розробку надійних додатків будь-якого ступеня складності. VCL містить близько 100 повторно використовуваних компонентів, які реалізують всі елементи користувальницького інтерфейсу операційної системи Windows. Крім того VCL надають у розпорядження програмістів такі оригінальні об\'єкти, як записні книжки із закладками, табличні сітки для відображення вмісту баз даних і навіть органи керування пристроями мультимедіа. Перебуваючи в середовищі об‘єктно - орієнтованого Програмування C++Builder, компоненти можна використати безпосередньо, міняти їхні властивості, вигляд і поводження або породжувати похідні елементи, з потрібними відмітними характеристиками. 57

Сховище об\'єктів є інструментом нової методики зберігання й повторного використання модулів даних, об\'єктів, форм і програмної логіки. Оскільки побудова нового додатка на існуючому фундаменті значно заощаджує тимчасові витрати, сховище об\'єктів надає для повторного використання готові структури: форми та закінчені програмні модулі. Створюючи прототип нового додатка, можна успадковувати, посилатися або просто копіювати існуючу структуру - точно так само архітектор приступає до проектування нового будинку. 58

Компонента Chart забезпечує швидку побудову на формі різноманітних графіків, діаграм, таблиць і передбачає перевірку правопису на багатьох мовах. У варіанті C++Builder Standard цей компонент є єдиним представником групи Active. 58

Інтеграція компонентів Active дозволяє розширити бібліотеку візуальних компонентів, включивши компоненти стандарту Active для розробки додатків у мережі Internet. 58

1.7 Огляд стандартної бібліотеки шаблонів STL 58

1.7 Огляд стандартної бібліотеки шаблонів STL 58

Стандартна бібліотека шаблонів (Standard Template Library - STL) об\'єднує в собі контейнерні типи даних, алгоритми для їх обробки, ітератори для звернення до елементів або послідовностей в контейнері. STL також містить набір шаблонів для забезпечення стандартного введення-виведення. 58

Слово «стандартна» означає, що ця бібліотека є частиною стандарту мови С++ і повинна розглядатися, як перша альтернатива при виборі методів і засобів роботи з даними і потоками введення-виводу. 58

Слово «шаблонів» означає, що уся бібліотека побудована на шаблонах класів і функцій, що забезпечує можливість уніфікованої роботи з різними типами даних. Використання шаблонів в бібліотеці дозволяє не лише однаково обробляти вбудовані типи, але і працювати з призначеними для користувача типами даних, які не були відомі у момент розробки. 58

STL має ряд переваг: 58

Код бібліотеки написаний професійними програмістами, перевірений і відлагоджений. Вам не доведеться шукати помилки в реалізації контейнерів або алгоритмів STL. Швидше, помилки будуть пов\'язані з невірним розумінням концепцій STL, але це питання досвіду використання. 59

Код бібліотеки написаний дуже ефективно з точки зору використання оперативної пам\'яті і швидкодії для типових варіантів застосування. 59

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

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

• Бібліотека добре документована і описана в книгах. У разі розробки власних контейнерів і алгоритмів документація буде, швидше за все, значно менша, що підвищить вартість підготовки нового фахівця. 59

• Код, написаний з використанням STL легко переноситься на інші компілятори, операційні системи і платформи. 59

До недоліків STL можна віднести: 59

• Непристосованість до роботи із структурними типами даних. 59

• Низька ефективність (швидкодія, пам\'ять) при рішенні приватних завдань, де можливі цільові оптимізації коду. 59

• Неадекватний інтерфейс шаблону для роботи з рядками 59

• Складність управління пулом пам\'яті при роботі з контейнерами STL. 59

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

Тому бібліотека STL в обов\'язковому порядку має бути вивчена розробником і повинна всюди використовуватися до того часу, поки він не зможе самостійно переконливо аргументувати вибір іншої бібліотеки або розробку власних контейнерів і алгоритмів. 60

Перелічимо основні можливості стандартної бібліотеки С++, які з’явилися в ній з розвитком самої мови С++: потоки, числові методи (наприклад, операції з комплексними числами, множення масиву на константу та інші нескладні методи), рядки (класи для роботи з текстовою інформацією), множини, контейнери, алгоритми й об’єкти-функції, ітератори та інше. 60

STL – частина стандартної бібліотеки C++ SCL, що забезпечує загальноцільові стандартні класи й функції, які реалізують найбільш популярні й широко використовувані алгоритми й структури даних. 60

Бібліотека STL розроблена співробітником Hewllet-Packard Олександром Степановим. STL будується на основі шаблонів класів, і тому вхідні в неї алгоритми й структури застосовні майже до всіх типів даних. Ядро бібліотеки утворюють три складові: контейнери, алгоритми й ітератори. 60

Шаблони контейнерів, алгоритми та й взагалі вся бібліотека винесені в окремий простір імен, який одержав назву std. Існує кілька способів користуватися ключовими словами із простору імен std: 60

- після всіх файлів, що підключаються (наприклад, #include), використати директиву 60

using namespace std; 60

- підключити бажані модулі STL окремими директивами using: 60

using std::stack; 60

using std::find; 60

- вказувати оператор прив’язки std:: перед кожним STL типом даних або алгоритмом. 60

Контейнери 60

Бібліотека STL представляє ряд контейнерів для зберігання даних, які умовно можна розділити на контейнери з довільним доступом, послідовні контейнери і асоціативні контейнери Контейнерами з довільним доступом є vector і deque. Обидва контейнери забезпечують довільний доступ до елементів (як до елементів звичайних масивів C ). Основна відмінність vector і deque полягає в тому, що vector забезпечує додавання нових елементів у кінці, а deque - у кінці і на початку контейнера. 61

Приклад використання контейнера vector 61

#include 61

#include
  1   2   3   4   5   6   7   8   9   ...   18

Схожі:

Міністерство освіти І науки, молоді та спорту україни міжнародний економіко-гуманітарний університет імені академіка степана дем’янчука с. О. Карпік Сучасні системи візуалізації даних Науковий керівник iconМіністерство освіти І науки, молоді та спорту україни міжнародний економіко-гуманітарний університет імені академіка степана дем’янчука
Міжнародний економіко-гуманітарний університет імені академіка степана дем’янчука
Міністерство освіти І науки, молоді та спорту україни міжнародний економіко-гуманітарний університет імені академіка степана дем’янчука с. О. Карпік Сучасні системи візуалізації даних Науковий керівник iconІмені академіка степана дем’янчука р. М. Літнарович виклик на науковий поєдинок рівне, 2010 удк 001. 891
Міжнародний економіко-гуманітарний університет                         імені академіка степана дем’янчука
Міністерство освіти І науки, молоді та спорту україни міжнародний економіко-гуманітарний університет імені академіка степана дем’янчука с. О. Карпік Сучасні системи візуалізації даних Науковий керівник iconМіністерство освіти І науки, молоді та спорту україни міжнародний економіко-гуманітарний університет імені академіка степана дем’янчука
Лісневський М. М. Технології комп’ютерної безпеки. Монографія. Книга Науковий керівник Р. М. Літнарович. Мегу, Рівне, 2012. 100 с....
Міністерство освіти І науки, молоді та спорту україни міжнародний економіко-гуманітарний університет імені академіка степана дем’янчука с. О. Карпік Сучасні системи візуалізації даних Науковий керівник iconМіністерство освіти і науки, молоді та спорту України Міжнародний економіко-гуманітарний університет імені академіка Степана Дем’янчука Факультет кібернетики
Застосування імітаційних методів моделювання при вивченні курсу «Математичне моделювання та системний підхід до вивчення складних...
Міністерство освіти І науки, молоді та спорту україни міжнародний економіко-гуманітарний університет імені академіка степана дем’янчука с. О. Карпік Сучасні системи візуалізації даних Науковий керівник iconД. Б. Охота Методологія розробки сучасних криптографічних систем Науковий керівник: Р. М. Літнарович, доцент,к т. н. Рівне – 2012 р. Удк 004. 353. 4
Вищий приватний навчальний заклад Міжнародний економіко-гуманітарний університет імені академіка Степана Дем’янчука
Міністерство освіти І науки, молоді та спорту україни міжнародний економіко-гуманітарний університет імені академіка степана дем’янчука с. О. Карпік Сучасні системи візуалізації даних Науковий керівник iconР. М. Літнарович, Ю. Г. Лотюк
Міжнародний економіко-гуманітарний університет                    імені академіка степана дем’янчука
Міністерство освіти І науки, молоді та спорту україни міжнародний економіко-гуманітарний університет імені академіка степана дем’янчука с. О. Карпік Сучасні системи візуалізації даних Науковий керівник iconМіністерство освіти і науки, молоді та спорту України Міжнародний економіко-гуманітарний університет ім акад. Степана Дем'янчука
Теоретичні і методичні засади застосування здоров’язберігаючих технологій навчання учнів
Міністерство освіти І науки, молоді та спорту україни міжнародний економіко-гуманітарний університет імені академіка степана дем’янчука с. О. Карпік Сучасні системи візуалізації даних Науковий керівник iconМіністерство освіти І науки, молоді та спорту України
Керівник практики від університету С. Л. Карпець Науковий керівник В. А. Вакалюк
Міністерство освіти І науки, молоді та спорту україни міжнародний економіко-гуманітарний університет імені академіка степана дем’янчука с. О. Карпік Сучасні системи візуалізації даних Науковий керівник iconМіністерство освіти І науки україни міжнародний науково-технічний університет імені академіка юрія бугая

Міністерство освіти І науки, молоді та спорту україни міжнародний економіко-гуманітарний університет імені академіка степана дем’янчука с. О. Карпік Сучасні системи візуалізації даних Науковий керівник iconМіністерство освіти І науки україни міжнародний науково-технічний університет імені академіка юрія бугая

Додайте кнопку на своєму сайті:
Документи


База даних захищена авторським правом ©zavantag.com 2000-2013
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації
Документи