Посібник_Лутай АП
.pdfThis document is created with trial version of Document2PDF Pilot 2.16.100.
У табл. 5.4.3.5 наведено функції для роботи з рядковими змінними.
Таблиця 5.4.3.5 - |
Функції для роботи з рядковими змінними |
|
Функція |
Дія |
Приклад |
Ucase |
Переводить усі символи |
Ucase ("Ivanenko") — |
|
рядка у верхній регістр |
IVANENKO |
|
|
|
Lease |
Переводить усі символи |
Lease ("Ivanenko") — |
|
рядка в нижній регістр |
ivanenko |
|
|
|
Len |
Визначає довжину рядка |
Len ("Ivanenko") — 8 |
|
|
|
Right |
Повертає задане число си- |
Right ("Ivanenko", 2) — |
|
мволів, починаючи від кін- |
"ko" |
|
ця рядка |
|
Left |
Повертає задане число си- |
Left ("Ivanenko", 4) — |
|
мволів, починаючи від по- |
"Ivan" |
|
|
|
Mid |
Повертає задане число си- |
Mid ("Ivanenko", 2, 3) — |
|
мволів, починаючи від ука- |
"van" |
|
заної позиції |
|
|
|
|
String |
Повторює вказаний сим- |
String (4, "$") — $$$$ |
|
вол установлену кількість |
|
|
разів |
|
|
|
|
Asc |
Повертає ACSII-код для |
Asc ("R") — 82 |
|
вказаного символу |
|
|
|
|
Chr |
Повертає символ для вка- |
Chr (114) —г |
|
заного ACSII-коду |
|
Створення стандартного модуля
При створенні складних програм деякі змінні можуть бути використані в інших процедурах програми. Такі змінні називаються загальними, або глобальни-
ми.
Модуль — окрема функціонально незалежна частина програми, що виконує певну функцію, результати виконання якої можуть бути використані іншими частинами програми або іншими програмами.
Спочатку створюють стандартний модуль проекту за допомогою команд Project, Add Module, в результаті чого на екрані дисплея з'являється вікно (рис у- нок 5.4.3.8), в якому активізують вкладку New і кнопку Открыть.
Створюється модуль із ста ндартним іменем Modulel (ім'я можна змінити у властивості Name). Далі оголошують змінні за допомогою оператора
Public <ім'я змінної> [As <тип змінної>]
281
This document is created with trial version of Document2PDF Pilot 2.16.100.
Рисунок 5.4.3.8 - Створення стандартного модуля
Після введення операторів модуль зб ерігають за допомогою команд File, Save <ім'я модуля>. Розширення модуля —.Bas.
Крім змінних, у стандартних модулях також можуть міститися процедури типу Function та Sub, які можна використовувати в будь -якій процедурі прогр а- ми.
Умовні оператори
Умовні оператори застосовуються в програмах для керування виконанням дій залежно від результату перевірки заданої умови. Результатом перевірки умови може бути значення True (істина) або False (хибність). Відповідно ці значення можуть бути збережені в змінних типу Variant або Boolean.
В умовних виразах використовуються такі оператори: таблиця 5.4.3.6 Таблиця 5.4.3.6 - Оператори
Оператор |
Значення |
< |
Менше |
|
|
> |
Більше |
|
|
<= |
Менше або дорів- |
|
нює |
>= |
Більше або дорів- |
|
нює |
= |
Дорівнює |
|
|
≠ |
Не дорівнює |
|
|
Оператор If для створення умов
Існує простий тип умовного оператора
If <умова> Then <дія>
282
This document is created with trial version of Document2PDF Pilot 2.16.100.
У такому операторі <дія> виконується лише тоді, коли значенням <умова> є True (істина).
Наприклад, при правильному паролі завантажується форма
If passw="121" Then Load Forml
Оператор може також складатися з кількох рядків, тоді після слова Then відбувається перехід на наступний рядок і кінцевим є оператор End If. Наприклад:
If passw="121" Then Load Forml Forml.Show End If
Якщо умова має значення False (хибність), то виконується о ператор, розташований після умовного оператора (або блоку операторів).
Увипадку, коли дія має виконуватися при значенні умови False, використовують оператор Not.
Наприклад, при будь-якому неправильному паролі на екрані дисплея з'явл я- ється повідомлення і програма закінчує свою роботу:
If Not passw="121" Then MsgBox"Пароль — неправильний" End If End
Умовний оператор може мати кілька умов для перевірки значень, тоді він є складним умовним оператором і має такий вигляд:
If <умова 1> Then
<дія 1> — виконується, коли значення умови 1 — True; Else lf <умова 2> Then
<дія 2> — виконується, коли значення умови 2 — True; Else <дія 3> — виконується, коли значення умови 1 та умови 2 — False, тобто в усіх інших випадках; End If
Унаведеному нижче прикладі залежно від значення змінної Pay виконуються такі дії (змінні Pay та Sum оголошені як Integer):
If Pay < 0 Then
Sum = Sum — Abs(Pay) Elself Pay > 0 Then Sum = Sum + Pay Else
MsgBox "Сума не змінюється" End If MsgBox (Sum)
В умовних операторах для пов'язування кількох умов використовуються т а- кі ключові слова: таблиця 5.4.3.7.
Таблиця 5.4.3.7 - Ключові слова
Ключове слово |
Дія |
|
|
And |
Якщо обидві умови мають значення True, |
|
то й результат перевірки умов має значення True |
Or |
Якщо одна з умов має значення True, |
|
то й результат перевірки умов має значення True |
|
|
283
This document is created with trial version of Document2PDF Pilot 2.16.100.
Побудова умовних виразів за допомогою операторів Select Case
Більш наочною і зручною є структура Select Case. Ці вирази дають змогу виконувати вибір із кількох фрагментів програми залежно від значення умовного виразу або змінної. Загальний вигляд структури Select Case такий:
Select Case <змінна>Case оначення 1> програмні оператори 1 Case оначення 2> програмні оператори 2
Case Else програмні оператори З
End Select
У такій структурі завжди виконується лише одна група програмних опер а- торів, причому параметри Змінна та Значення повинні мати однаковий тип. Пар а- метр Значення може бути:
•оператором порівняння, наприклад Case X < 2;
•числом (змінною) — Case 3;
•списком значень — Case 2,4,6;
•діапазоном значень — Case 5 То 10.
Нехай, наприклад, залежно від значення X розраховується Y. Тоді маємо таку структуру Select Case:
Select Case X Case 5 то 10 ' значення X від 5 до 10
Y |
= X*2 |
Case Is = 100' значення X дорівнює 100 |
|
Y |
= X/2 |
Case Is > 500 ' значення X більше 500 |
|
Y |
= XA(l/2) |
Case Else ' в інших випадках |
|
Y |
= X |
End Select
Оператор Case Else передає керування групі операторів тоді, коли жодна умова у створеній структурі Select Case не може бути виконана.
Додавання інших форм у проект
При створенні складного проекту іноді потрібно утворювати не одну, а кілька форм. Кожна форма при цьому має свої властивості, власне ім'я, набір об'є к- тів і процедур, а також одна форма може завантажувати іншу.
Для додавання іншої форми використовують команди Project, Add Form. У результаті на екрані дисплея з'являється вікно Add Form (рисунок 5.4.3.9), в якому активізують вкладку New. тип Form і кнопку Открыть.
284
This document is created with trial version of Document2PDF Pilot 2.16.100.
Рисунок 5.4.3.9 - Додавання іншої форми до створеної Далі створюють нову форму (або додають існуючу), в яку вводять потрібні
об'єкти і встановлюють властивості.
Для завантаження форми при виконанні програми використовують команду
Load <ім'я форми> |
|
Наприклад, Load Forml — завантаження форми Forml. |
|
Для відображення форми на екрані дисплея застосовується команда |
|
<ім'я 0opMM>.Show |
|
Наприклад, Forml.Show. |
|
Приклад. Створення проекту з двох форм із використанням умов |
них |
операторів. Нехай, наприклад, треба створити форму (Name — Form2), яка після перевірки введеного пароля та імені користувача завантажує іншу форму для проведення розрахунку. Для цього у формі створюють такі об'єкти й установлюють відповідні властивості:
CommandButton — Commandl (Name), Введіть свій пароль (Caption) —
кнопка, після активізації якої в текстовому блоці (Textl) вводиться пароль.
CommandButton — Command2 (Name), Введіть ім'я (Caption) — кнопка, пі-
сля активізації якої виводиться діалогове вікно для введення імені користувача.
CommandButton — Command3 (Name), Перевірка (Caption) — кнопка, піс-
ля активізації якої виконується перевірка введених значень пароля та імені. TextBox — Textl (Name), (Text — порожньо), * (PasswordChar), False (Visi-
ble).
Після цього створюють стандартний модуль для оголошення змінних
PassW, User (рисунок 5.4.3.10).
Рисунок 5.4.3.10 - Оголошення змінних у стандартному модулі
285
This document is created with trial version of Document2PDF Pilot 2.16.100.
У вікні Code для форми Form2 створюють такі програмні оператори: Private Sub Commandl_Click() Textl.Visible = True ' текстове поле для введен-
ня пароля стає видимим PassW = Textl.Text' введення користувачем пароля в текстове поле End Sub
Private Sub Command2_Click() Textl.Visible = False' текстове поле для введення пароля стає невидимим User = InputBox ("введіть ім'я")' введення користувачем імені за допомогою функції InputBox End Sub
Private Sub Command3_Click() If PassW = "ABC And User = "grl" Then ' пере-
вірка введених значень MsgBox ("пароль та імена — правильні") Load Forml' завантаження форми розрахунків Forml.Show ' виведення на екран форми розрахунків
Else
MsgBox ("Інформація — неправильна") End If End Sub
Оператори Load Form та Forml.Show при правильності введених значень завантажують іншу форму, в якій виконується розрахунок.
Використання циклів
Цикл — програмна структура керування потоком виконання програмних операторів, яка має початок і кінець типу Do While ... Loop, For ... Next. Сукупність операторів, які вміщені між поча тком і кінцем циклу, виконується доти, д о- ки не буде виконана умова виходу із циклу або завершена певна дія.
Цикли типу For... Next
Такий тип циклів має у своїй конструкції змінну -лічильник, для якої зад а- ють її початкове значення, дані для зміни цього значе ння у процесі виконання ци-
клу, кінцеве значення. Цикл виконується доти, доки поточне значення змінної |
- |
лічильника не дорівнюватиме кінцевому; далі буде виконуватися оператор, ро |
з- |
ташований після опису циклу. При створенні циклу типу For ... Next можна також додавати крок приросту (або зменшення) значення змінної -лічильника, але він не є обов'язковим.
Загальний вигляд операторів циклу такий:
For <змінна = початкове значення> То <кінцеве значення> [Step<число>] група операторів, що виконуються в циклі Next [змінна]
Наприклад, програма друкування у формі номера рядка і символів * з кроком 3 після активізації командної кнопки має такі оператори:
Private Sub Commandl_Click() CIs
For і = 1 To 15 Step 3 Print і & " .******" If і = 10 Then Exit For Next End Sub
Символ & використовується для з'єднання двох рядкових змінних. У цій програмі також є оператор дострокового виходу з циклу Exit For, який при досягненні змінною-лічильником значення 10 припиняє роботу циклу.
Сама форма після виконання програми має вигляд, показа ний на рис унку
5.4.3.11.
При створенні форми змінюються такі властивості у вікні Properties:
286
This document is created with trial version of Document2PDF Pilot 2.16.100.
Рисунок 5.4.3.11 - Програма виконання циклу типу For... Next
• для форми
Caption — Цикл For... Next Font — розмір шрифту 14;
• для командної кнопки Caption — Виконання
У наведеному прикладі початкове значення змінної -лічильника дорівнює 1, крок приросту — 3, кінцеве значення змінної-лічильника — 15. Після виконання чергового кроку циклу до змінної-лічильника додається значення З, а розраховане значення порівнюється з кінцевим (15). Якщо останнє ще не досягнуто, то друк у- ється черговий рядок, інакше цикл закінчує свою роботу і керування передається оператору, розташованому після оператора Next (у програмі — це команда на з а- кінчення процедури оброблення події актив ізації кнопки Виконання (рисунок
5.4.3.11).
Цикли типу Do
У циклах такого типу група операторів виконується доти, доки істинною є умова, якою може бути логічний вираз (наприклад, PassW = «121») або функція, що повертає логічне значення (наприклад, EOF). Такі цикли використовуються тоді, коли кількість повторень циклу невідома. Існує два види цього оператора:
Do While <умова> — виконується доти, доки умова є істинною; Do Until <умова> — виконується доти, доки умова є хибною.
Загальний вигляд циклу типу Do такий:
Do While <умова>
група операторів, що виконуються Loop Do
група операторів, що виконуються Loop While <умова>
Різниця між такими циклічними блоками полягає в місці перевірки значення умовного виразу (на початку циклу або в кінці). Відповідно змінюєтьс я також розташування змінної (або кількох змінних), значення якої аналізується в умові.
У кожному новому кроці циклу перевіряється умова; тому важливо при створенні програми стежити за тим, щоб у тілі циклу значення змінної в умові ц и- клу могло бути змінено так, аби умова стала хибною, тобто цикл закінчився.
Нехай, наприклад, треба розрахувати значення Y залежно від уведеного значення X. Тоді фрагмент програми матиме такий вигляд:
X = InputBox ("Значення X") DoWhileX>0
287
This document is created with trial version of Document2PDF Pilot 2.16.100.
У = ХЛ(2/3)
X = InputBox ("Значення X") Print X; Y Loop
Наступний блок циклічних операторів працює доти, доки не буде виконана умова:
Do Until <умова>
група операторів, що виконуються Loop
Наприклад, розрахунок Y відбувається доти, доки X не перевищує 15:
...Х = 2
Do Until X > 15 Y = Y + X
X = InputBox ("Значення X") Loop
Процедури типів Function і Sub
Функції створюються тоді, коли деякі дії у програмі потрібно виконувати кілька разів. Для створення власної процедури типу Function необхідно використати такі оператори:
Fuction <ім'я функції> ([аргументи функції]) [As <тип>] оператори функції End Function
Де:
•ім'я функції — значення, яке повертається у процедуру виклику після в и- конання процедури;
•аргументи — імена змінних, значення яких використовуються функцією;
•тип — тип значень, які повертає функція.
Для активізації цієї процедури треба ввести в програму ім'я процедури з т і- єю кількістю аргументів, які використовувалися при її оголошенні.
Наприклад, процедура Sq розраховує площу ромба при відомих діагоналях dl та d2:
Fuction Sq (dl, 62) As Double
Sq = (dl*d2)/2 End Function
Після створення такої функції у програмі досить лише її активізувати з в і- домими аргументами. Наприклад: Sq(10, 15).
Процедура типу Sub, на відміну від процедури типу Function, після її вик о- нання повертає значення в аргументах процедури або виконує певні дії (напр и- клад, друкування інформації).
Для створення такої процедури використовують оператори
Sub -сім'я > ([аргументи]) [As <тип>]
оператори процедури End Sub Де:
•ім'я — ім'я процедури, що створюється;
•аргументи — імена змінних, значення яких використовуються функцією і повертаються у процедуру виклику;
•тип — тип значень, які повертає функція.
Процедура, що виконує друкування значень, має вигляд
288
This document is created with trial version of Document2PDF Pilot 2.16.100.
Sub PR (X,Y) Printer.FontName = "Arial"' установлення шрифту Printer.FontSize = 16 ' установлення розміру шрифту Print X;Y
End Sub
Статичні процедури використовуються для збереження значень змінних процедури Sub у разі її повторного виклику. Для створення таких процедур застосовується оператор
Sub <ім'я процедури> Static <аргументи> [<тип>] оператори процедури End Sub
Щоб припинити роботу процедури, використовується оператор
Exit Sub
Створення завантажувального файла
Програмний файл може виконуватися поза середовищем Visual Basic, якщо
він має розширення Ехе. Для створення такого файла |
активізують команди File, |
Make Projectl.exe. |
Make Project (рисунок |
У результаті на екрані дисплея з'являється вікно |
5.4.3.12), в якому у полі Имя файла вводять ім'я файла (наприклад, PrMenu) й натискають на кнопку ОК. Після цього для виконання програми досить активізувати створений файл.
Рисунок 5.4.3.12 - Створення завантажувального файла
Робота з об'єктом Timer
На панелі інструментів General є елемент Timer, за допомогою якого у програмі можна виконувати дії через певний проміжок часу, встановлювати обмеження часу для виконання дії тощо.
При створенні форми такий елемент відображається у вигляді значка, ро з- міри якого встановлюються автоматично. Під час виконання програми цей значок невидимий.
Властивість Interval містить числові значення від 1 до 65 535, які визначають у мілісекундах проміжок часу роботи таймера. Властивість Enabled може ма-
289
This document is created with trial version of Document2PDF Pilot 2.16.100.
ти значення True або False, які відповідно означають активізацію або припинення відліку часу таймером.
Після активізації таймера у програмі виникає процедура обробле ння події
Timerl_Timer ().
Наприклад, для виведення поточного часу у формі створюють такі об'єкти з відповідними значеннями властивостей:
Label: Font — MS Sans Serif, розмір шрифту — 18, напівжирний курсив; Caption — (порожньо)
Timer:Interval — 1000
У вікні Code після активізації об'єкта Timer виникає процедура оброблення події Timerl_Timer (), в яку додають оператор присвоєння значення поточного часу об'єкту типу Label:
Labell. Caption = Time
Після активізації кнопки Start панелі інструментів Standard форма має вигляд, показаний на рисунку 5.4.3.13.
Рисунок 5.4.3.13 - Виведення поточного часу за допомогою об'єкта Timer
Створення власного меню
Visual Basic надає можливість створити власне меню з переліком команд, в якому деякі команди можуть містити діа логові вікна для додаткової інформації (тоді така команда закінчується трьома крапками).
Такі меню створюються за допомогою редактора меню Menu Editor, який дає змогу коригувати, вилучати наявні меню, додавати «гарячі» клавіші для вик о-
нання команд тощо. |
File, |
З цією метою спочатку активізують вікно нового проекту (команди |
|
New Project). Далі клацають мишею |
|
на кнопці Цу (New Project) стандартної панелі інструментів. У результаті на екрані дисплея з'являється вікно, показане на рисунку 5.4.3.14.
290
