
- •5.05150104 "Дизайн друкованої продукції"
- •Робота з модулями і класами
- •Модулі і класи
- •Створення програмної бібліотеки
- •Створення модулів
- •Мал. 4.1. Діалогове вікно Add Procedure.
- •Прискорений спосіб додавання процедур
- •Процедури
- •Функції
- •Мал. 4.2. Вікно програми з функцією для обчислення кубічного кореня.
- •Мал. 4.3. Код виклику функції CubeRoot.
- •Мал. 4.4. Функція повертає кубічний корінь 3.
- •Мал. 4.5. Змінене вікно програми і форма.
- •Мал. 4.6. Новий варіант додатка. Тестування у вікні відпадки
- •Оновлення програмної бібліотеки
- •Передача параметрів
- •Мал. 4.7. Вікно додатка-прикладу.
- •Мал. 4.8. Зміна властивості Caption в програмі.
- •Ключове слово Optional
- •Ключове слово ByRef
- •Ключове слово ByVal
- •Ключове слово ParamArray
- •Ключові слова Public і Private
- •Закриті процедури (Private)
- •Мал. 4.9. Сім форм у вікні проекту.
- •Відкриті процедури (Public)
- •Робота з модулями класів
- •Властивості
- •Створення класу SmartForm
- •Використання Class Builder
- •Мал. 4.10. Утиліта Class Builder.
- •Мал. 4.12. Діалогове вікно Property Builder.
- •Мал. 4.13. Діалогове вікно Event Builder.
- •Мал. 4.14. Клас Person з властивостями, подіями і методами.
- •Що нового ми дізналися?
- •5. Створення і використання меню і панелей інструментів
- •Для чого потрібні меню і панелі інструментів
- •Мал. 5.1. Меню і панелі інструментів Visual Basic.
- •Об'єкт меню
- •Мал. 5.2. Редактор меню.
- •Властивості меню
- •Методи меню
- •Створення меню в редакторові меню
- •Мал. 5.3 Створення меню в редакторові меню.
- •Мал. 5.4. Працююче меню.
- •Проектування меню
- •Створення панелей інструментів
- •Мал. 5.5. Завдання властивості Style. Створення кнопок на панелі інструментів
- •Мал. 5.6. Форма із панеллю інструментів. Створення малюнків на кнопках
- •Мал. 5.7. Вставка растрових зображень в список зображень.
- •Мал. 5.8. Зв'язування панелі інструментів із списком зображень.
- •Мал. 5.9. Панель інструментів зі значками.
- •Використання вдосконаленої панелі
- •Мал. 5.11. Вкладка General в сторінках властивостей вдосконаленої панелі.
- •5.12. Вкладка Bands в сторінках властивостей вдосконаленої панелі.
- •Мал. 5.14. Вдосконалена панель у дії.
- •Що нового ми дізналися?
- •Урок 6. Логіка і послідовність виконання програми
- •Як "думає" комп'ютер?
- •Логічні оператори
- •Логічний оператор and
- •Логічний оператор eqv
- •Логічний оператор or
- •Логічний оператор xor
- •Логічний оператор not
- •Порівняння
- •Перевірка умови "рівно"
- •Мал. 6.1. Гра із вгадуванням числа
- •Перевірка умови "більше"
- •Мал. 6.2. Назване число більше за загадане.
- •Перевірка умови "менше"
- •Мал. 6.3. Назване число менше за загадане. Перевірка умови "не рівно"
- •Перевірка умови "більше або рівно"
- •Мал. 6.5. Перевищення граничної швидкості. Перевірка умови "менше або рівно"
- •Ухвалення рішень в програмі
- •Оператор If..Then..Else
- •Функція iIf
- •Оператор Select Case..End Select
- •Виконання дій, що повторюються
- •Цикл For..Next
- •Цикл Do..Loop
- •Цикл While..Wend
- •Перебір колекцій
- •Приклад використання циклів
- •Мал. 6.7. Створення команди меню.
- •Мал. 6.8. Створення масиву елементів.
- •Мал. 6.9. Форма з масивом текстових полів.
- •Мал. 6.10. Приклад роботи з циклами. Що нового ми дізналися?
- •Урок 7. Змінні
- •Перше знайомство із змінними
- •Що таке пам'ять?
- •Типи змінних
- •Байтові змінні
- •Строкові змінні
- •Puc. 7.3. Діалогове вікно Options.
- •Мал. 7.4. Вікно програми для прикладу.
- •Мал. 7.5. Вікно додатка-прикладу.
- •Універсальні змінні
- •Зона видимості змінних
- •Мал. 7.6. Зона видимості змінних.
- •Мал. 7.7. Форма для реєстрації користувачів.
- •Ключове слово Static
- •Мал. 7.8. Використання циклу For..Next.
- •Динамічні масиви
- •Константи
- •Мал. 7.10. Результат обчислення площі круга.
- •Що нового ми дізналися?
Функції
Функції багато в чому схожі на процедури. Існує лише одна принципова відмінність - при виклику вони повертають значення. Функція отримує один або декілька об'єктів даних, званих аргументами, і виконує з ними деякі дії. Їх результат повертається функцією. Можливо, це звучить декілька туманно, але насправді у функціях немає нічого складного. Краще всього розглянути роботу функцій на конкретному прикладі. Давайте напишемо функцію для обчислення кубічного кореня:
1. Створіть новий проект командою File > New Project.
2. Якщо модуль My Libгагу відсутній в проекті, додайте його - для цього слід клацнути правою кнопкою миші у вікні проекту і виконати команду Add > Module з контекстного меню.
3. Коли з'явиться діалогове вікно Add Module, перейдіть на вкладку Existing. Потім знайдіть файл MyLibrary.Bas і натисніть кнопку Open, щоб включити модуль в проект.
4. Двічі клацніть на файлі MyLibrary.Bas у вікні проекту. Відкривається вікно програми. Вставте наступний фрагмент в секцію(Declarations):
Public Function CubeRoot
Visual Basic автоматично створює шаблон наступного виду:
Public Function CubeRoot()
End Function
5. Вставте в шаблон наступний фрагмент (мал. 4.2):
Public Function CubeRoot(x as Double) As Double
If x = 0 Then
CubeRoot = 0
Exit Function
End If
CubeRoot = 10 ^ ((Log(Abs(x)) / Log(10)) / 3)
If x < 0 Then
CubeRoot = - CubeRoot
End If
End Function
Мал. 4.2. Вікно програми з функцією для обчислення кубічного кореня.
6. Виконайте команду File > Save MyLibrary.
Перш ніж розглядати цей приклад, давайте коротко розглянемо приведений вище код. Функція отримує аргумент х і намагається вичислити його кубічний корінь. Тип значення, який повертається функцією (у нашому прикладі Double - числовой тип, який може працювати з дуже великими і дуже малими, а також дробовими числами), вказується в заголовку функції після ключового слова As. Текст функції закінчується командою End Function, а не End Sub. Зверніть увагу на три рядки, в яких привласнюється значення змінної CubeRoot. Значення функції повертається у вигляді змінної, ім'я якої співпадає з ім'ям функції (у нашому прикладі - CubeRoot). Якби наша функція називалася TimesTwo(), то і значення поверталося б в змінній TimesTwo (наприклад, TimesTwo = х*2).
Перш ніж приступати до обробки аргументу, бажано перевірити отримані дані. Спочатку ми перевіряємо, чи рівний аргумент 0 - як відомо, кубічний корінь з 0 дорівнює 0, тому ми можемо відразу присвоїти змінній CubeRoot, яка повертає значення та вийти із функції, не виконуючи подальших обчислень. Для виходу з функції застосовується команда Exit Function.
Математичне обґрунтування нас зараз не цікавить. Команда CubeRoot = 10 ^ ((Log(Abs(x)) / Log(10)) / 3) повертає кубічний корінь аргументу х.
Нарешті, ми перевіряємо, чи не являється аргумент функції негативним числом. Приведена вище формула завжди повертає позитивний результат, тому для негативного аргументу необхідно змінити знак значення на протилежний. У Visual Basic це робиться командою
CubeRoot = - CubeRoot
Отримавши загальне уявлення про функції, давайте продовжимо наш приклад і використаємо нашу функцію на практиці.
7. Двічі клацніть на формі Form1 у вікні проекту - форма з'являється у вікні конструктора.
8. Задайте властивості Caption значення Робота з програмною бібліотекою.
9. Створіть на формі кнопку. Задайте її властивості Name значення cmdCubeRoot, а властивості Caption - значення Кубічний корінь.
10. Двічі клацніть на кнопці cmdCubeRoot - відкривається вікно програми з процедурою події cmdCubeRoot_Click().
11. Вставте в процедуру наступний фрагмент:
Dim Y As Double
Y = CubeRoot(27)
Print Y
Зразковий вид вікна програми показаний на мал. 4.3.