Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1332231791

.pdf
Скачиваний:
27
Добавлен:
12.02.2016
Размер:
20.05 Mб
Скачать

— Так, ти говорив, що операція конкатенації автоматично не додає пробілів, — відповіла Даринка.

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

TextBox1.Visible = True

TextBox2.Visible = Not (TextBox1.Visible)

— Ми вже стільки часу про­ вели в цій кімнаті, — зауважив якось ВВ. — Що ви можете про неї сказати?

— Ну, — зніяковіло почала Даринка, — ми можемо розповісти, як розташовано деякі речі та на чому сидимо.

— А також про розміри кімнати, — додав Михась.

У мене виникла ідея! — вигукнув ВВ. — А давайте обчислимо її периметр і площу!

І об’єм! — захоплено додала Даринка.

Я думаю, що саме час виконати вправу, — задоволено по­ сміхнувся ВВ.

Вправа 7.1. Параметри кімнати

Розробіть програму, за допомогою якої можна обчислити пери­ метр, площу та об’єм кімнати:

1.Створіть форму. Додайте до неї такі елементи:

три текстових поля для введення вхідних значень:

довжини;

ширини;

висоти;

Програма—набіроперацій

121

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

периметра;

площі;

об’єму;

шість написів — по одному для кожного текстового поля;

кнопку з написом, після клацання якої здійснюватимуться обчислення.

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

3.Створивши форму, побудуйте проект. Якщо під час компіляції не виникло помилок, виберіть команду Debug Start Debugging, щоб запустити програму.

Додаткове завдання

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

Налагодження програми

ВВ, як ти вважаєш, ми все правильно робимо? — запитав Михась.

Ви чудово працюєте! — відповів ВВ, побачивши, як старан­ но Михась із Даринкою виконують завдання. — Написали багато коду, розробили та запустили чимало проектів. Можливо, не всі проекти вам удалося відкомпілювати відразу, але ви вже починаєте краще розуміти, як це робиться. Зараз я дам вам кілька підказок, за допомогою яких ви зможете швидко усувати будь-які помилки. Процес усунення помилок називають налагодженням коду. Він необхідний для того, щоб ваша програма виконувалася і давала правильні результати. Спочатку я покажу, як Visual Studio допомагає налагоджувати код під час його написання.

122

День 7

1.Створіть нову Windows-програму і назвіть її DebugView.

Додайте одну кнопку та одне текстове поле до форми Form1. Двічі клацніть кнопку Button1 та введіть код:

MyName = "Михась"

TextBox1.Text = MyName

2.Зауважте, що перед тим, як ви створите проект, у Visual

Studio .NET відобразиться хвиляста синя лінія під словом MyName в першому та другому рядках коду. До чого все це? Середовище Visual Studio .NET досить «розумне»,

щоб «усвідомити» (навіть ще до розробки проекту), що ви не оголосили змінну MyName. Вас попереджують про те, що із кодом щось негаразд.

3.Побудуйте та запустіть проект. У вікні Error List (Cписок помилок) відобразиться повідомлення про те, що побудова не вдалася. У списку помилок пояснюється, чому це тра­

пилося: два повідомлення про помилки вказують на те, що ім’я MyName не було оголошене (Name 'MyName' is not declared).

4.Двічі клацніть рядок Name ‘MyName’ is not declared у списку помилок. Буде виділено фрагмент коду з помилкою.

Програма—набіроперацій

123

5.Зауважте, що виділено змінну MyName. З нею і пов’язана

проблема, яку потрібно усунути. А саме, в обробнику події клацання кнопки Button1 перед операторами, які використовують змінну MyName, слід записати такий рядок коду:

Dim MyName As String

Хвиляста синя лінія зникне.

6.Побудуйте проект і запустіть його на виконання. Проект буде скомпільовано успішно — отже, ви завершили налагодження програми.

Виконання програми в покроковому режимі

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

Для усунення цих помилок необхідно виконати програму в по­ кроковому режимі, рядок за рядком. Це дає змогу відстежити, які саме оператори коду виконуються та як модифікуються значення змінних. Зазвичай ви задаєте в коді точку перери­ вання, а потім запускаєте програму в покроковому режимі. Точка переривання діє як знак зупинки: на рядку коду, що позначений такою точкою, виконання програми переривається. Коли програма зупиниться, натисніть клавішу F11, щоб виконати наступний рядок коду. Зараз я покажу вам, як працює ця технологія.

1.Знайдіть у коді обробника події клацання кнопки But-­ ton1 рядок

MyName = "Михась"

Установіть курсор де-небудь на цьому рядку коду. Клацніть правою кнопкою миші та виберіть із контекстного меню команду Insert Breakpoint (Вставити точку переривання).

124

День 7

2.Зауважте, що рядок коду було виділено червоним кольо­ ром, а ліворуч від цього рядка відобразилося червоне коло. Побудуйте й запустіть проект, а після появи форми клацніть кнопку.

3.Код виконується та добігає рядка, який ви позначили точкою переривання (MyName = "Михась"). Цей рядок коду досі не виконувався. Його виділено жовтим, а в червоному колі біля нього тепер міститься жовта стрілка.

4.У вікні коду перемістіть курсор до змінної MyName. Буде

відображено підказку, з якої ви дізнаєтеся значення цієї змінної. Зараз MyName = Nothing, оскільки змінну було

Програма—набіроперацій

125

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

5.У вікні коду перемістіть курсор до атрибута Text текстового поля TextBox1. З’явиться підказка зі значенням атрибута Text. Зараз Text = "" (пустий рядок).

6.Натисніть клавішу F11. Буде виконано поточний рядок коду (MyName = "Михась") і виділено жовтим кольором

наступний рядок. Знову перемістіть курсор до змінної MyName. З’явиться підказка, яка покаже, що MyName = "Михась", оскільки змінній було тільки-но надано це значення.

126

День 7

7.У вікні коду перемістіть курсор до атрибута Text тек­ стового поля TextBox1. Значення цього атрибута не змінилося: TextBox1.Text = "". Знову натисніть клавішу F11. Так буде виконано поточний рядок (TextBox1.Text = MyName) та виділено жовтим наступний рядок.

8.У вікні коду перемістіть курсор до змінної MyName. Підказкою буде MyName = "Михась", оскільки значення цієї змінної не було змінене.

9.У вікні коду перемістіть курсор до атрибута Text поля TextBox1. Підказка покаже, що Text = "Михась", ос-

кільки ми щойно надали цьому атрибуту значення змінної MyName. Натисніть клавішу F11. Знову з’явиться форма, адже виконання обробника події клацання кнопки було завершено. Щоб закрити форму, клацніть кнопку в її правому верхньому куті.

10.У вікні коду клацніть правою кнопкою миші рядок із точкою переривання та виберіть команду Disable Breakpoint (Відключити точку переривання) з контекстного меню.

Програма—набіроперацій

127

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

Чим складніший код, тим імовірніше виникне потреба в налагодженні. Налагодження складного коду потребує більших витрат часу. Згодом ви дізнаєтесь, як контролювати порядок виконання операторів if та циклів. Стежити за виконанням цих операторів за допомогою інструментів налагодження надзвичайно цікаво.

— Щоб закріпити вивчений матеріал, — підсумував ВВ, — давайте розглянемо ще одну вправу та виконаємо завдання.

Вправа 7.2. Налагоджувач

У папці Вправа_7.2 ви знайдете повноцінну програму. Вам не доведеться нічого до неї дописувати. Просто відшукайте файл DebugMe.sln та двічі клацніть його.

128

День 7

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

1.Яке значення ви ввели до текстового поля форми?

2.Яким є кінцеве значення змінної AnswerOne?

3.Яким є кінцеве значення змінної AnswerTwo?

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

Налагодження — найцінніший навик, який ви можете застосовувати в усіх своїх майбутніх проектах.

Пам’ятаєте кришталеві прес-пап’є, які ми бачили вчора в магазині подарунків? Яку форму вони мали? — спитав Михась.

Так, одне було кубічної, а інше сферичної форми, — відповів ВВ.

Мені хотілося б знати, яке з них важче, — пояснив Михась причину своєї зацікавленості.

Оскільки вони обидва зроблені з однакового матеріалу, важчим буде те, що має більший об’єм, — спробував ВВ дати пояснення Михасеві, а потім додав: — А щоб краще в цьому розібратися, давайте розробимо програму, що обчислюватиме об’єм куба та сфери.

Завдання 7. Об’єм куба та сфери

Обчисліть об’єм куба та сфери. Файли, необхідні для виконан­ ня цього завдання, містяться в папці Завдання_7.

Створіть таку форму, як показано далі на рисунку.

Довжину грані куба потрібно записати в перше поле, а радіус сфери — у друге.

Програма—набіроперацій

129

Якщо ви були не дуже уважними на уроках геометрії, нагадую вам деякі формули:

Об’єм куба дорівнює довжині грані, піднесеній до третьо­ го степеня (тобто тричі помноженій на саму себе).

Об’єм сфери становить чотири третіх числа π, помноженого

на радіус в третьому степені. Ви можете використати 3,14 як значення числа π або застосувати функцію Math.PI.

Додаткове завдання

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

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

Усе. На сьогодні досить, — вимовив ВВ, побачивши, що його учні вже не здатні більше нічого сприймати, а потім додав: — Ну, чого ви такі... ніякі? Що з вами?

Та то вчорашні польоти, — відповів Михась. — Не звикли ми до такого способу пересування.

Це моя провина, — сказав ВВ. — Не потрібно було вам дозволяти стільки часу кататися на аероциклах. То чим ми займемося сьогодні?

130

День 7