Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VB.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
495.1 Кб
Скачать

Синтаксичні конструкції мови vb

Алфавіт

При написанні програм можна використовувати наступні символи:

1) великі та малі букви латинського алфавіту: A, B, C,…, Y, Z; a, b, c,…,y, z;

2) цифри: 0, 1, 2,…, 9;

3) знаки арифметичні операції:

+ – додавання;

– –віднімання або зміна знаку;

/ – ділення;

* – множення;

^ – піднесення до степеня;

\ – ділення націло;

Mod – арифметичний модуль.

4) розділові, спеціальні і службові символи: (,), [,] – круглі і квадратні дужки;. – крапка; ;– крапка з комою; , – кома; : – дві крапки;  – апостроф;  – лапки; & – амперсанд; @ – комерційне at; ? – знак питання; % – процент; ! – знак оклику; $ – знак символьної змінної; # – знак номера; _ – підкреслювання.

Основні стандартні функції

У власних програмах є можливість використовувати готові функції, ар­гу­мент яких береться в круглі дужки. Найчастіше використовуються такі функції:

; ; Atn(x) – arctg x;

; Log10(x) – lg x;

Int(x) – [x]; ; ;

Rnd(x) – датчик випадкових чисел.

Арифметичні вирази

Під арифметичним виразом у VB розуміють числові константи, змін­ні ці­лого та дійсного типів, стандартні та нестандартні функції, які по­в’язані зна­ками арифметичних операцій та дужок. Послідовність виконання опе­рацій ви­значається пріоритетом операцій. Нижче наводиться список ариф­ме­тичних опе­рацій, розташованих у порядку спадання пріоритету, при цьому опе­рації “*” і “/”, а також “+” і “–“ мають одинакові пріоритети: ^, *, /, MOD, +, –. В першу чергу виконуються операції з найвищим пріоритетом. В межах од­но­го пріоритету операції виконуються зліва направо. Якщо арифметичний ви­раз містить одну із вище згаданих функцій, тоді спочатку обчислюється значен­ня цієї функції. Стандартний порядок виконання операцій може бути змінений за до­помогою круглих дужок, оскільки першими виконуються операції всере­дині круглих дужок. Одні дужки можуть вкладатися в інші. В першу чергу вико­ну­ються операції, обмежені внутрішніми дуж­ками.

Зауваження:

1) забороняється записувати два символи арифметичних операцій підряд;

2) при запису виразу знак множення пропускати не можна.

Наприклад:

Математичний запис Запис на мові VB

Операції порівняння

Операції порівняння використовуються для порівняння даних. Дані мо­жуть бути як числові так і символьні, а також об’єктні. Ці операції можна ви­ко­нувати над змінними, константами і арифметичними виразами. Результатом до­вільної операції порівняння завжди є логічне значення True(1) або False(0).

Операції порівняння можливі тільки для однотипних даних.

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

Знаки операцій порівняння:

< – менше; <= – менше або рівне;

> – більше; >= – більше або рівне;

= – рівне; <> – не рівне;

Is – ідентичність об’єктів або відповідність типу.

Керування ходом виконання програми

Умовний оператор If

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

Неблочна структура оператора If:

If <умова> Then <група операторів 1>[Else <група операторів 2> ],

де параметр, розміщений в квадратних дужках не є обов’язковим. Якщо задо­воль­няється умова, тоді виконується група операторів 1. Якщо ключове слово Else відсутнє, тоді управління передається першому оператору за If. Як­що Else входить в оператор і умова не задовольняється, тоді виконується група опе­раторів 2. Опе­ратори у групі відокремлюються один від одного символом “:”.

Наприклад:

a) If x > 5 Then y = 0

б) If x > 5 Then y = 0: c = x + 2 Else y=x^2

Блочна структура оператора IfEnd If:

1) If <умова> Then

<група операторів>

End If

Наприклад:

If x > 5 Then

y = 0

c = x + 2

End If

2) If <умова> Then

< група операторів 1>

Else

< група операторів 2>

End If

Наприклад:

If x >= 5 Then

y = x + 4

Else

y = x - 4

End If

3) If <умова 1> Then

< група операторів 1>

ElseIf <умова 2>

< група операторів 2>

Else

< група операторів 3>

End If

Після виконання оператора If керування передається оператору, що слідує за End If. Наприклад:

If x > 5 Then

y = x + 4

ElseIf x = 5 Then

y = x - 4

Else

y = 0

End If

4) If <умова 1> Then

< група операторів 1>

Else

If <умова 2> Then

< група операторів 2>

Else

< група операторів 3>

End If

End If

У даній конструкції, кожному оператору If відповідає оператор End If. Наведемо приклад застосування операторів If…End If для обчислення значення функції

If x < -1 then

z = sin(x)

Else

If x < 1 then

z = cos(x)

Else

If x < 10 then

z = sin(x) + cos(x)

Else

z = Log(x)

End If

End If

End If

Оператори складного розгалуження: Select Case – End Select

Якщо програма реалізує множинний вибір (складне розгалуження) тоді до­цільно застосовувати оператор Select Case.

Select Case <вираз>

Case “Значення1”

< група операторів 1>

Case “Значення2”

< група операторів 2>

……………………

Case Else

< група операторів n>

End Select

Конструкція Select Case ”приймає рішення” на основі значень виразу пе­ремикача і передає керування одній із груп операторів. Список значень для кожного із варіантів можна задати декількома способами.

  • За допомогою символів операцій порівняння “is >”, “is <=”, “is <>”і т. п.

  • У вигляді діапазону “початкове значення” To “кінцеве значен­ня”.

  • Простим переліком: “Значення1”, “Значення2”, “Значення3”.

В залежності від значення виразу виконується одна із груп операторів, що слідує за ключовим словом Case. Після цього керування передається 1-му опе­ратору за End Select. Якщо в оператор включити опцію Case Else, тоді від­по­від­на група операторів виконується тільки в тому випадку, коли не виконалася жодна із попередніх груп операторів. Роботу оператора покажемо на на­ступ­ному прикладі обчислення функції

Наступний фрагмент програми реалізує обчислення значення z:

Select Case x

Case Is < 1

z = 1

Case 1, 2, 3

z = 2 + Cos(x)

Case 7 To 15

z = 3 + Sin(x)

Case 20

z = x ^ 2 + x + 1

Case Is >30

z = sqr(x)

Case Else

z = Sin(x) ^ 2 - Cos(x)

End Select

Одновимірні масиви

Масив – це послідовність однотипних елементів, до яких звертаються за за­гальним іменем (ім’ям масиву) та номером елемента (індексом). За до­по­могою оператора Dim задається ім’я масиву, його розмірність та тип елементів:

Dim ім’я масиву ([мінімальне значення індексу To] максимальне зна­чен­ня ін­дексу) as тип елементів.

Якщо мінімальне значення індексу не задано, воно визначається значен­ням, заданим оператором Option Base (0 або 1). Якщо цей оператор не викли­кався жодного разу, мінімальне значення індексу рівне 0. Наведемо приклади опису масивів:

Const n = 100

Dim A(n) As Single

Dim B(50) as String*10

Оператори циклу

Для реалізації в програмі арифметичного циклу як правило використовують оператор циклу For – Next. Оператор For має наступну конструкцію:

For i = початкове значення To кінцеве значення [Step k]

<група операторів 1>

[Exit For]

<група операторів 2>

Next i

де і – параметр циклу, k – крок, який може приймати як додатне так і від’ємне зна­чення. Оператори, що знаходяться між операторами For … Next утворюють тіло циклу. При виконанні циклу For … Next спочатку параметру циклу при­своюється початкове значення і виконуються рядки програми, що ут­во­рю­ють тіло циклу. Після цього параметр циклу змінюється на крок k (при k>0 – збіль­шується, при k<0 – зменшується) і порівнюється з кінцевим значеннями. Якщо параметр циклу не перевищує кінцеве значення, то знову виконуються оператори в тілі циклу, якщо ж ні, тоді керування пере­дається першому опе­ра­тору після Next і, тобто відбувається вихід із циклу. Якщо крок k рівний 1, то параметр Step 1 може бути відсутнім.

Зауваження. Якщо початкове значення більше, ніж кінцеве і k>0, то цикл ігнорується і управління передається оператору, що слідує за Next. Якщо k<0, то цикл ігнорується коли початкове значення менше, ніж кінцеве.

Наприклад:

1) Const n = 100

Dim A(n) As Single

For i = 1 To n

A(i) = i

Next i

Результат: А(1)=1, А(2)=2 ,..., А(100)=100.

2) Const n = 100

Dim A(n) As Single

For i = 2 To n Step 2

A(i) = sin( i)

Next i

Результат: A(2)=sin(2), A(4)=sin(4), …, A(100)=sin(100).

3) Const np = 80

Const nk = 100

Const k = 3

Dim A(nk) As Single

For i = nk To np Step – k

A(i) = 0

Next i

Елементам масиву А, починаючи з сотого номера і до вісімдесят другого при­своюється значення нуль, тобто A(100) =0, A(97) = 0, … A(82) =0.

4) Const np = 80

Const nh = 100

Const h = 3

S = 0

For i = nh To np Step h

S = S + i

Next i

У даному випадку тіло циклу не виконується і змінна S не змінює своє значення, тобто S=0.

Цикл Do – Loop

Для реалізації ітераційних циклів використовуються різні модифікації операторів Do…Loop. До першої групи цих операторів можна віднести опе­ра­тори Do While… Loop, а до другої Do Until … Loop. Оператори кожної групи мають дві різні модифікації: цикл з передумовою і цикл з післяумовою.

Цикл з передумовою для оператора Do While – Loop має наступну конструкцію:

Do While < логічний вираз >

[ група операторів 1]

[Exit Do]

[ група операторів 2]

Loop

Оператори, що знаходяться між операторами Do While і Loop утворюють тіло циклу. Якщо логічний вираз приймає значення True (1), тоді виконується тіло циклу і оператор Loop передає керування на початок циклу опе­ратору Do While, де знову перевіряється значення логічного виразу і т.д. Якщо ло­гічний вираз приймає значення False (0 ), тоді управління передається пер­шому опе­ра­то­ру, що слідує за оператором Loop. У випадку, коли тіло циклу містить опе­ра­тор Exit Do, тоді цей оператор, при умові його виконання, за­без­печує вихід із циклу і керування передається першому оператору після опе­ра­то­ра Loop. Дана конструкція операторів Do While … Loop реалізує ітераційний цикл поки. До­цільність використання операторів покажемо на наступному прикладі.

Приклад. Скласти програму для знаходження найбільшого спільного дільника двох натуральних чисел а і b.

Private Sub NSD_Click()

Dim a As Integer, b As Integer

a = Val(txta): b = Val(txtb)

Do While a <> b

If a > b Then

a = a - b

Else

b = b - a

End If

Loop

txtnsd = a

End Sub

При реалізації ітераційного циклу Do можна використовувати цикл з після­умо­вою. В цьому випадку цикл має наступну конструкцію:

Do

[ група операторів 1]

[Exit Do]

[ група операторів 2]

Loop While < логічний вираз >

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

Private Sub Sum_Click()

s = 0: k = 1

Do

s = s + 1 / (k ^ 3 - k + 1)

k = k + 1

Loop While 1 / (k ^ 3 - k + 1) >= 10 ^ (-5)

txtsum = s

End Sub

При реалізації ітераційних циклів можна застосовувати і другу групу операторів Do Until … Loop, що теж має дві конструкції. Цикл з передумовою має наступну конструкцію:

Do Until < логічний вираз >

[ група операторів 1]

[Exit Do]

[ група операторів 2]

Loop

Цикл з післяумовою записується так:

Do

[ група операторів 1]

[Exit Do]

[ група операторів 2]

Loop Until < логічний вираз >

Якщо ітераційний цикл в операторі Do … Loop задати за допомогою служ­бо­во­го слова Until, тоді тіло циклу виконується, якщо логічний вираз приймає зна­чення False, а в протилежному випадку керування передається першому опе­ра­тору після оператора Loop.

Приклад. З використанням операторів Do Until … Loop знайти суму цифр на­турального числа n.

Private Sub Scifr_Click()

Dim n As Integer

n = Val(txtn)

s = 0

Do Until n = 0

x = n mod 10 ‘ оператор mod повертає остачу від ділення числа n на 10

s = s + x ‘ у змінній х зберігається поточна цифра числа n

n = n\ 10 ‘ оператор \ повертає цілу частину від ділення числа n на 10

Loop

txtscifr = s

End Sub

де txtn – ім'я текстового поля для вводу натурального числа n, txtscifr – назва текстового поля, у яке виводиться результат.

Функція Int(x) повертає цілу частину числа х.

Хід роботи

Варіант 1. Дано трицифрове натуральне число n. Обчислити суму та добуток

йо­го цифр.

2. Побудувати масив за формулою:

Знайти суму додатних елементів масиву.

Форма до 1-го завдання:

Програма до 1-го завдання:

Форма до 2-го завдання

Програма до 2-го завдання

Варіант 2.

1. Почавши тренування спортсмен в перший день пробіг Х км. Кожний наступ­ний день він збільшував денну норму на р%. Який сумарний шлях пробіжить спортсмен за N днів?

2. Побудувати масив за формулою:

та знайти порядковий номер найменшого елемента.

Форма до 1-го завдання

Програма до 1-го завдання

Форма до 2-го завдання

Програма до 2-го завдання

Наведемо оптимізований код програми

Private Sub Run_Click()

Dim a(50) as Single

N = val(txtN): X = val(txtX)

a(1) = Sin(X)*Cos(x)

MinId = 1: S = 1

For i = 2 to N

S = S + i

If i mod 2 = 0 then ‘перевірка парності

a(i) = a(i–1)–Sin(i*X)*Cos(S*x) ‘задання елементів масиву

Else ‘за допомогою рекурентної

a(i) = a(i–1)+Sin(i*X)*Cos(S*x) ‘формули

If a(i) < a(MinId) then

MinId = i

End If

Next i

TxtRes = MinId

End Sub

18

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