Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
О.О.П / 3_кол / Лекції / лекция_C++ (2)_у.doc
Скачиваний:
16
Добавлен:
30.05.2020
Размер:
94.21 Кб
Скачать

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. Бути здібними до розширення, аби працювати з типами, яких визначає користувач.

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

Соседние файлы в папке Лекції