Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Visual2.doc
Скачиваний:
5
Добавлен:
07.03.2016
Размер:
3.31 Mб
Скачать

Контрольні питання

1. Призначення програми ActiveX Control Test Container.

2. Яким чином створюються елементи ActiveX?

3. Розкрийте методику тестування елементу ActiveX.

4. Яким чином відобразити елементи ActiveX?

5. Розкрийте сутність створення елементу ActiveX на базі стандартних елементів.

6. Який клас є базовим для створення елементу ActiveX?

Розділ 13. Налагодження програм

Налагодження програм є одним з важливих питань при розробці програмного забезпечення на Visual C++.

Приклад знаходиться у папці DISK\Naladka\buggy.

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

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

Створимо програму buggy та налагодимо її.

13.1. Робота у відладчику Visual C++

Програма buggy, яку ми розглядаємо в цьому уроці, визначає середнє арифметичне перших п'яти додатних цілих чисел: 1-5. Як неважко здогадатися, відповідь має бути 3, однак до повного завершення налагодження ми отримаємо кілька інших варіантів.

За допомогою АррWizard створимо однодокументну (SDI) програму:

1. Для зберігання п'яти цілих чисел ми скористаємося масивом data. Почнемо зі включення цього масиву в заголовний файл документа:

// buggyDoc.h : інтерфейс класа CBuggyDoc

.............................................................

public:

Int data[5];

.............................................................

2. Вихідні числа будуть заноситися в масив у конструкторі документа:

CBuggyDoc::CBuggyDoc()

{

data[0] = 1;

data[1] = 2;

data[2] = 3;

data[3] = 4;

data[4] = 5;

}

3. Можна приступати до обчислень. За допомогою редактора меню додайте нове меню Calculate (вставте його між File і Edit) з єдиною командою – Calculate Average.

4. Скористайтеся Class Wizard і створіть у програмі обробник для цієї команди:

void CBuggyView::OnCalculateCalculateaverage()

{

}

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

void CBuggyView::OnCalculateCalculateaverage()

{

CBuggyDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

.............................................................

}

6. Далі ми створимо робочі змінні. Щоб знайти середнє арифметичне, слід підсумовувати числа і розділити суму на кількість чисел. Нам знадобляться дві змінні, Sum та Average:

void CBuggyView::OnCalculateCalculateaverage()

{

CBuggyDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

float Sum;

float Average;

.............................................................

}

7. Обчислення суми п'яти чисел буде відбуватися в наступному циклі:

void CBuggyView::OnCalculateCalculateaverage()

{

CBuggyDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

float Sum;

float Average;

for(int loop_index = 1; loop_index < 5; loop_index++)

{

Sum += pDoc->data[loop_index];

}

.............................................................

}

8. Щоб обчислити середнє арифметичне, розділимо суму на 5:

void CBuggyView::OnCalculateCalculateaverage()

{

CBuggyDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

float Sum;

float Average;

for(int loop_index = 1; loop_index < 5; loop_index++)

{

Sum += pDoc->data[loop_index];

}

Average = Sum / (float) 5.0;

.............................................................

}

9. Нарешті, ми поміщаємо результат в рядок OutputString і виводимо його на екран:

void CBuggyView::OnCalculateCalculateaverage()

{

CBuggyDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

float Sum;

float Average;

for(int loop_index = 1; loop_index < 5; loop_index++)

{

Sum += pDoc->data[loop_index];

}

Average = Sum / (float) 5.0;

OutputString.Format(

"Среднее арифметическое пяти чисел равно: %.3f",

Average);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]