Роздрукувати сторінку
Главная \ Методичні вказівки \ Методичні вказівки \ 1165 Теоретична довідка до лабораторної роботи №12 Мова програмування Visual Basic

Теоретична довідка до лабораторної роботи №12 Мова програмування Visual Basic

« Назад

Теоретична довідка до лабораторної роботи №12

Мова програмування Visual Basic

1. Алфавіт мови складається з таких символів:

а) Латинські літери від A до Z;

б) Літери кирилиці;

в) Цифри від 0 до 9;

г) Знаки математичних операцій (^, *, /, \, Mod, +, -);

д) Знаки відношень (<, >, <=, >=, <>, =);

е) Розділові символи (. , : ; “ ” ( ) );

ж) Спеціальні символи (!, #, $, %, & і  т.д.)

Використовуючи алфавіт, будують елементи мови: службові слова, імена констант і змінних, вирази, імена функцій і ін.

2. Основні службові слова та команди мови подано у таблиці 1 (за алфавітом).

Таблиця 1

Data

Dim

Do - Loop

End

For – to – step

Gosub

Goto

If – then – else

Input

Next

On

Print

Read

Restore

Return

Stop

While

Select Case

Дані

Розмір

Виконуй – повернення

Кінець

Для – до – крок

Перейти до підпрограми

Перейти до…

Якщо – то – інакше

Ввести

Наступний

При

Друкувати

Читати

Відновити

Повернутися

Зупинитися

Поки

вибір

3. Змінна – це іменована зарезервована область оперативної пам’яті для тимчасового зберігання даних. Кожна змінна має ім’я, яке задається з використанням таких правил:

- ім’я може складатися з букв, цифр та символу підкреслення (_), але першим символом в імені повинна бути літера (буква)

- ім’я кожної змінної повинно бути унікальним і не співпадати з зарезервованими словами;

- ім’я не може містити більше 255 символів.

Наприклад, ClassName, Dobutok_Dodatnyh – правильні імена;

1Name, Print, Suma vsih – не правильні імена змінних.

4. Константа – це величина, значення якої не змінюється в процесі виконання програми. Для оголошення констант використовується службове слово const, його формат:

const ім’я­­_константи [As тип_даних].

5. Вирази мови VB можуть містити константи, змінні, знаки математичних операцій, функції та круглі дужки.

6. Стандартні функції подано у таблицях 2 і 3.

Таблиця 2

Математичні функції

Позначення функції

Дія

В математиці

В програмі VB

|x|

Abs(Х)

Обчислює абсолютне значення виразу  Х

cosx

Cos( Х )

Обчислює косинус кута Х, вираженого в радіанах

sinx

Sin( Х )

Обчислює синус кута Х, вираженого в радіанах

tgx

Tan( Х )

Обчислює тангенс кута Х, вираженого в радіанах

ex

Exp( Х )

Обчислює константу е в степені Х

lnx

Log Х )

Обчислює логарифм  виразу  Х

Знак числа x

Sgn( Х )

Повертає – 1 , якщо Х< 0; 0, якщо Х= 0; 1 , якщо Х > 0

 

Sqr( Х )

Обчислює квадратний корінь з  виразу  Х

-

Str( Х )

Перетворює числове значення   Х  на рядкову величину

-

Val( Х )

Перетворює рядкову величину Х на числове значення

-

Rnd( Х )

Генерує випадкове число між 0 та 1

Таблиця 3

Функції для роботи з рядковими величинами

Функція

Дія

Приклад

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, "$") = $$$$

Asс

Повертає ASCII-код для вказаного символу

Asс(„R”) = 82

Chr

Повертає символ для вказаного ASCII-коду

Chr(114) =  r

Кожна змінна має тип. За замовчуванням всі дані мають тип Variant. Стандартні типи даних наведено у таблиці 4.

Таблиця 4

Тип змінної

Pозмір пам’яті, байти

Діапазон значень

Integer

2

-32768 … 32767

Long

4

-2147483648 … 2147483647

Single

4

-3.402823E38 … 3.402823E38

Double

8

-1.79769313486232E308…1.79769313486232E308

Currency

8

-922337203685477.5808…922337203685477.5808

Boolean

2

True або False

Date

8

01.01.100 … 31.12.319999

String

До 255 символів (1 байт на 1 символ)

 

Variant

не менше 16 байт

 

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

Таблиця 5

Суфікс

Тип змінної

Приклади

%

Integer

x%

&

Long

a&

!

Single

b!

#

Double

t#

@

Currency

Suma@

$

String

Name$

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

Службові слова мають такий формат:

Dim ім’я_змінної [As тип_даних]- для оголошення локальної змінної – видимої тільки у цій процедурі, при виході з процедури її значення буде втрачено.

Private ім’я_змінної [As тип_даних]- для оголошення локальної змінної - видимої у всіх процедурах одного модуля, до якого належать ці  процедури, але опис такої змінної потрібно зробити у розділі Declarations.

Static ім’я_змінної [As тип_даних]- для оголошення локальної змінної – видимої тільки у цій процедурі, але після виходу з цієї процедури її значення не втратиться.

Public ім’я_змінної [As тип_даних]- для оголошення глобальної змінної – видимої у всіх процедурах усіх модулів. Вона може бути оголошена у стандартному модулі.

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

Приклади: Dim Сost As Currency;

Public a, b, KrokZm As Single

Явне оголошення змінних з використання суфіксів наведено у таблиці 6.

Таблиця 6

Суфікс

Тип змінної

Приклади

%

Integer

Dim x%

&

Long

Public   a&

!

Single

Static b!

#

Double

 Private t#

@

Currency

Dim  Suma@

$

String

Public Name$

За допомогою одного оператора можна оголошувати декілька змінних одного типу, розділяючи їх комами.

5. Приклад лінійної програми (процедури), записаної мовою Visual Basic :

Private Sub Prog1

a@ = Val(Text2.Text)

b! = Val(Text4.Text)

c! = Val(Text3.Text)

d@ = a@ * (1 + b! / 100) ^ c!

Print  d@

End Sub

У коді процедури використана стандартна функція Val, яка перетворює текст (символьний рядок) у текстовому вікні у числове значення.

6.  При написанні програми  можна використовувати коментарі для роз’яснення тексту програми. Коментар може міститись як окремим рядком так і у рядку команди після символа .

Наприклад: 

a@ = Val(Text2.Text) ‘ змінній а присвоєно числове значення

‘символьного рядка текстового поля Text2 форми

7.  При перенесенні довгих команд у наступний рядок потрібно натиснути  пропуск, а далі символ підкреслення. Наприклад:

d@ = a@ * (1 + b! / 100)  _

^ c!

8. Приклад програми розгалуженої структури з використанням вказівки if - then:

Private Sub Prog2 ’Квадратне рівняння

Dim a, b, c, D, x1, x2 As Double

a = Val(InputBox("Введіть значення а",  a))

b = Val(InputBox("Введіть значення b",  b))

c = Val(InputBox("Введіть значення c",  c))

D = b * b - 4 * a * c

If  D < 0 Then print ("Розв'язків не існує")

If D >= 0 Then

MsgBox "Існує два розв."

x1 = (-b - Sqr(D)) / (2 * a)

x2 = (-b + Sqr(D)) / (2 * a)

Print  "x1=", x1,, "x2=", x2

End If

End Sub

9. Приклад програми розгалуженої структури з використанням вказівки Select Case:

Private Sub Prog3 ’Значення функції

Dim Y As Variant, X As Double

X = Val(Text1.Text)

Select Case X

Case 0 To 1

Y = 5 * X

Case 1 To 10

Y = X + 10

Case Is > 10

Y = Sin(3 * X)

Case Else

Y = "Не визначена"

End Select

Print "X="; X; "  Y="; Y

End Sub

10. Програмування циклічних обчислювальних процесів

Арифметичний цикл ДЛЯ

For <змінна циклу = початкове значення> То <кінцеве значення> [Step<крок циклу>]

Тіло циклу

Next [змінна циклу]

Приклад

Private Sub Prog4 ‘ Арифметичний цикл

Dim i As Integer

For і = 1 To 15 Step 3

Print i

Next

End Sub

Ітераційний цикл ПОКИ

1. Оператор циклу Do While ... Loop

Цикл, що задається цією конструкцією, виконується доти, поки умова, що задається в циклі істина (дотримується).

Формат вказівки:

DoWhileумова

конструкції

Loop

2. Оператор циклу Do ... Loop While

Цей  варіант відрізняється від розглянутого вище розташуванням умови. У другому варіанті конструкції умова розташовується наприкінці циклу:

Do

конструкції

LoopWhileумова

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

Ітераційний цикл ДО

3. Оператор циклу Do Until ... Loop

Тут цикл виконується доти, поки умова хибна (не дотримується), а не істинна. У такій конструкції можлива ситуація, за якої тіло циклу не виконається жодного разу, якщо при першій перевірці умова не дотримується.

Формат вказівки:

DoUntilумова

конструкції

Loop

4. Оператор циклу Do... LoopUntil

У даному операторі циклу, як і у попередньому,цикл виконується доти, поки умова хибна (не дотримується). За такого варіанту конструкції оператора циклу тіло циклу виконається принаймні один раз, після чого здійсниться перевірка умови виконання циклу, навіть якщо умова дотримувалася.

Формат вказівки:

Do

конструкції

LoopUntil умова

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

Нехай, наприклад, треба розрахувати значення Y за­лежно від введеного значення X. Тоді фрагмент програ­ми матиме такий вигляд:

А) У даному прикладі цикл виконується тоді, коли  введені значення Х задовольняють умову Х>0:
X = Input ("Значення X", Х)

Do While Х> 0
Y=sqr(3*Х+7)

Print X;Y
Loop

Б) У наведеному нижче прикладі  цикл виконується тоді, коли X <5:
X = InputBox ("Значення X")
Do Until X>5
Y=sqr(15-3*Х)
 Print X;Y
 Loop

Процедура типу Function і процедура типу Sub

Процедури обробки подій є локальними процедурами, пов’язаними з певною формою. Для того, щоб зробити певні процедури загальнодоступними, їх потрібно оголосити в одному чи декількох стандартних модулях.  Стандартний модуль, або модуль програми, являє собою особливий файл з розширенням bas, який зберігає змінні і процедури,  які можуть бути використані у будь-якому місці програми. Стандартний модуль входить до складу проекту, він, як і форми, може   бути збережений у зовнішній пам’яті: меню File, команда Save Module1 , вказати місце збереження і ім’я модуля. Стандартних модулів, як і форм, у проекті може бути декілька. На відміну від форм, стандартний модуль не містить об’єктів і встановлюваних властивостей об’єктів, а тільки текст програми, який може бути відображеним і відредагованим у вікні редактору коду. В процедурах обробки подій користувач може використовувати власноруч розроблені  процедури, оголошені у стандартному модулі даного проекту. Існують такі різновиди процедур стандартного модуля: процедура типу Function (функції) і процедура типу Sub (підпрограми).

Функції створюються тоді, коли деякі обчислення потрібно виконувати кілька разів у програмі з різними значеннями параметрів. Для створення власної процедури типу Function необхідно використати такі оператори:

Function <ім'я функції> ([аргументи функції]) [As <тип>]

Конструкції тіла  функції

EndFunction

де:

  • ім'я функції — значення, яке повертається у про­цедуру виклику після виконання процедури;

  • аргументи  функції —імена змінних, значення яких ви­користовуються функцією (якщо аргументи потрібні);

  • тип  — це тип значень, які повертає функція, якщо цей опис відсутній, то за замовчуванням тип Variant.

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

Останній оператор у тілі функції зазвичай -  оператор присвоєння імені функції обчисленого значення.

Приклад

Function TotalTax(Cost)

StateTax=Cost*0.05  ‘Податки штату 5%

CityTax= Cost*0.015  ‘Міські податки 1,5 %

TotalTax= StateTax + CityTax

End Function

Для активізації процедури типу Function треба ввести в про­граму ім'я процедури з тією кількістю аргументів, які використовувалися при її оголошенні. Зазвичай процедури типу Function (функція) розробляють з метою виконання певних обчислень. Використовуються за тими ж правилами як і стандартні функції: значення функції зазвичай присвоюється змінній чи властивості об’єкта.Функції, оголошені у стандартних модулях, за замовчуванням є загальнодоступними.

Процедура типу Sub, на відміну від процедури типу Function, після її виконання повертає значення в аргу­ментах процедури або виконує певні дії (наприклад, дру­кування даних). Для створення такої процедури використовують опе­ратори:

Sub <ім'я > ([аргументи]) [As <тип>]

Конструкції тіла процедури

EndSub

де:

•  ім'я  — це ім'я процедури, що створюється;

• аргументи — імена змінних, значення яких використовуються функцією і повертаються у процедуру виклику;

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

Приклад .

Процедура, що виконує друкування значень, має вигляд

Sub PR (X,Y)

Printer.FontName = "Arial" ' установлення шрифту

 Printer.FontSize = 16 ' установлення розміру шрифту

 Print X; Y

End Sub

Оператор вводу InputBox.  Цей оператор використовується для введення і збереження вхідних даних. Результатом роботи цього оператора буде виведення на екрані діалогового вікна із запитом для введення значень. Синтаксис:

InputBox (< повідомлення > [, < заголовок > ] [,< значення > ] [, < x, y > ])

Де < повідомлення > та < заголовок > - довільні, які беруться у лапки (“), < значення > - значення змінної, а < x, y >  - координати лівого верхнього кута вікна на екрані. Якщо будь-який елемент оператора замовчується , ставляться коми. Приклад: х = InputBox (“х =” , “ Проект ” , , 400, 400).

У виведеному діалоговому вікні в поле вводу внести значення змінної і натиснути ОК. Введене значення присвоюється змінній і управління передається наступному оператору в програмі. При натисканні Cancel, дія відміняється.

Оператор присвоювання. Використовується в арифметичних виразах. Синтаксис:  < змінна > =  < арифметичний вираз >

Оператор виведення MsgBox. Цей оператор використовується для одержання від користувача відповідей (“Так” або “Ні”) на короткі повідомлення. Синтаксис:

MsgBox <повідомлення > [, число ] [, < заголовок > ]

Де <повідомлення > і < заголовок > -  довільні символи, число – цифра в залежності від якої  змінюється вигляд вікна (наприклад, 16 – повідомлення про помилку, 64 – інформаційне повідомлення, 3 – кнопки Да, Нет, Отмена). Повідомлення може включати арифметичний вираз, якій задається через функцію Str ().

Приклади:

1. MsgBox  “Процес обчислення завершено”, 1, “Проект”

2. MsgBox(“х=” + Str  (x) + “ “ + ” x+sin(x)=”+Str (x+Sin(x))), , "проект"

Результатом виконання буде виведене вікно з результатом розрахунку, передбачається що значення “х” було вказано раніше.

Оператор виведення даних Print. Дія цього оператора полягає у виведенні результатів роботи програми у вікно Immediate. Синтаксис:

Debug. Print [ список елементів виведення ]

Де до списку елементів виведення можуть входити: константи, змінні, арифметичні вирази, послідовність символів  у лапках, функції Tab, Spc, String. Елементи списку відокремлюються комою (,) або крапка з комою (;). У випадку розділення комою наступна інформація друкується з нової зони (одна зона 14 позицій),. У випадку розділення крапкою з комою наступна інформація друкується безпосередньо після попередньої.  Якщо елементом списку є вираз, то спочатку система обчислює значення виразу а друкує результат.  Функція Tab (n) –  визначає номер позиції з якої відбувається друк. Функція Spc (n) – визначаєкількість позицій, які треба пропустити. Функція String (n, “символ”) – визначає кількість символів, які друкуються.

З повагою ІЦ “KURSOVIKS”!