ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 10.09.2024

Просмотров: 31

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Об'єктно-орієнтоване програмування

ЛЕКЦІЯ 2.

СУЧАСНІ ІНТЕГРОВАНІ СЕРЕДОВИЩА. ВБУДОВАНИЙ ВІДЛАДЧИК.

БІБЛІОТЕКА ПРОГРАМ І КЛАСІВ

План

1. Сучасні інтегровані середовища.

2. Вбудований відладчик.

3. Библиотеки программ и классов.

4. Структурне програмування.

1. Сучасні інтегровані середовища

Інтегроване середовище (IDE – Integrated Development Environment) є деяким єдиним комплексом для розробки програм. Вона дозволяє легко створювати, відкривати, переглядати, редагувати, зберігати, компілювати і відлагоджувати будь-які програми. Управляє роботою IDE набір команд меню. Комплекс сучасних IDE є великим набором інструментальних засобів для побудови програм. У цьому комплексі об'єднуються транслятори, система управління роботою компіляцій, редактори, редактори ресурсів, стандартні бібліотеки, довідковий матеріал, приклади програм, система відладки програм і система управління процесом відладки, які демонструють можливості використання операторів мови. Інтегроване середовище містить опції для свого налаштування, яке відповідає вимогам користувача. Детальний опис IDE міститься в документації. Виклад всіх можливостей IDE зажадав би об'ємного посібника. І вивчити всі ці можливості IDE – складне завдання із-за великого об'єму інформації. Але принцип роботи з IDE простий, і він присутній у всіх інформаційних системах. Всі можливості управління і налаштування IDE поміщені в командах меню і їх опціях. Багато хто з можливостей IDE має автоматичні значення за умовчанням, які дозволяють середньостатистичному користувачеві легко готувати програму і запускати її. Потужні можливості IDE потрібні при розробці великих інформаційних систем. Для учбової мети немає особливої необхідності знати на перших кроках всі складні можливості IDE. Оскільки матеріал курсу освоюється не на реальних завданнях, а на невеликих за об'ємом завданнях середньої складності, то для успішного освоєння курсу треба, аби користувач умів:

  1. завантажити (запустити) IDE;

  2. користуватися редактором IDE;

  3. користуватися файловою системою IDE;

  4. користуватися системою допомоги і підказок IDE;

  5. користуватися системою компіляції і запуску програм;

  6. виходити з IDE.

Тут ми спеціально не ідентифікуємо імена команд меню, які виконують перераховані завдання. Кожне інтегроване середовище (Borland C/C++, Visual C++, Visual C++ 6, Builder C++, Delphi) ці завдання виконує своїм набором команд меню. Команди з будь-якої вищепереліченою IDE легко і швидко демонструються на комп'ютері на практичних заняттях. У міру зростання складності програм, що складаються, поступово освоюються складніші можливості конкретного інтегрованого середовища. При розробці великих програмних систем обійтися без знань глибших можливостей IDE не можна. Слабке знання IDE може привести до невиправданої трудомісткості при проектуванні програм і недоліків кінцевого продукту. Але подібні системи краще використовувати і вивчати при проектуванні великих програм. Необхідність в IDE виникла якраз при розробці великих і дуже великих програм. Тому дуже важко демонструвати можливості інтегрованого середовища на учбових прикладах. Трудність не в демонстрації, а в неефективності і громіздкості використання потужного інструментарію IDE для простих модельних завдань. Виходить стрілянина з гармати по горобцеві. І в цьому випадку важко мотивувати необхідність вивчення IDE там, де щось можна реалізувати простіше. Крім того, при розгляді модельних завдань програмування багато можливостей інтегрованого середовища просто стають незатребуваними. Тут виникає ще один методичний аспект. Детальне вивчення IDE насправді вимагає повнокровного учбового курсу зі своїм набором модельних завдань, вміст яких направлений не на складання програм для обробки структур даних, а на демонстрацію можливостей IDE. Тому (на думку авторів) найбільш ефективне вивчення інтегрованого середовища зводиться до демонстрації деяких принципових можливостей IDE на простих прикладах, залишаючи студентам право, в міру необхідності, освоювати глибші можливості самостійно. Відмітимо, що поняття вбудований відладчик, генератори коди / застосувань фактично є елементами, які формують, разом з іншими можливостями, структуру IDE.



2. Вбудований відладчик

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

  1. виконувати іншу програму по одній команді;

  2. зупиняти виконувану програму на заданій команді, яка називається точкою останову (або контрольною крапкою);

  3. переглядати значення змінних в пам'яті.

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

встановити курсор на ім'я змінної;

натискувати Ctrl+F7;

натискувати Enter.

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

Якщо програма велика і містить багато рядків, то покрокове виконання програми трудомістке за часом. В цьому випадку можна використовувати точки останову. Аби задати точку останову в інтегрованому середовищі Borland треба:


  1. встановити курсор на рядок останову;

  2. натискувати клавішу F2 або в команді меню DEBUG вибрати варіант Breakpoints.

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

3. Бібліотеки програм і класів

Складаючи програми, ми постійно використовуватимемо деякі функції. Ці функції (наприклад, clrscr(), getch(), cout, printf() і т. д.) входять до складу стандартної бібліотеки. Сучасні завдання настільки складні, що з ними неможливо впоратися, якщо не залучати додаткові

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

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

Контейнери – це об'єкти, які містять інші об'єкти. Наприклад, елементами контейнера є такі АТД (абстрактний тип даних) як вектори, черги, списки, стеки. Кожен контейнерний клас визначає набір функцій, які можна використовувати в даному контейнері, і безліч алгоритмів роботи над змінними.

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

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


Для плідного і успішного використання бібліотеки класів треба, перш за все, освоїти елементи об'єктно-орієнтованого програмування (ООП) і добре орієнтуватися в шаблонах. Повний опис бібліотеки STL може зайняти цілу книгу. Можливості засобів даної бібліотеки такі, що можна говорити про STL-программировании. Формат код, які використовують функції STL, природно, багато в чому збігається з синтаксисом ООП і вимагає певних навиків для коректного запису цих код в процесі програмування. У навчальних посібниках опис бібліотеки STL, демонстрація її можливостей і способи вживання, як правило, даються після повного викладу курсу ООП.

Стандартна бібліотека має бути в кожній реалізації мови, аби всі програмісти могли її використовувати. Стандартна бібліотека C++:

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

Надає інформацію про залежні від реалізації аспекти мови (наприклад, про діапазон представлення змінних).

Надає функції (наприклад, sin(), log() і т. д.), які не можуть бути написані оптимально для всіх систем на мові C++.

Надає нетривіальні засоби, такі як потоки ввода/ виводу.

Надає засоби для розширення можливостей, такі як, підтримка нових типів даних. Забезпечує ввод/вывод для визначуваних їм нових типів в стилі ввода/вывода для вбудованих типів.

Служить загальним фундаментом для інших бібліотек.

Пропоновані бібліотекою C++ засобу повинні задовольняти наступним вимогам:

  1. Бути доступними для кожного користувача, у тому числі для творців інших бібліотек.

  2. Бути досить ефективними.

  3. Бути незалежними від алгоритмів, які використовуються при програмуванні.

  4. Бути зручними і досить безпечними в більшості ситуацій.

  5. Бути завершеними в тому, що роблять.

  6. Бути безпечними за умовчанням з точки зору типів.

  7. Добре доповнювати вбудованих типів і операції.

  8. Підтримувати загальноприйняті стилі програмування.

  9. Бути здібними до розширення, аби працювати з типами, яких визначає користувач.

Засоби стандартної бібліотеки розподілені по файлах, а вони згруповані по виконуваних функціях.