Даний курс призначений для тих, хто: ніколи не програмував, але хоче навчитися
Вид материала | Урок |
Урок № 11. Вирази Отже, розглянемо кожен випадок докладно А можна так If виконає рядок #1 тоді і тільки тоді, коли c Оператори бувають різні Eqv оператор логічної еквівалентності Imp |
- Кредитно-модульний курс рекомендовано Міністерством освіти І науки України як навчальний, 6238.72kb.
- Українська мова та література, 155.36kb.
- Обласна бібліотека для дітей ім. А. П. Гайдара Відділ у справах розвитку дитячих бібліотек, 135.91kb.
- Лотыш В. А., Шалимов С. А. Украинские блюда. К. Техніка, 1975., 208.37kb.
- М. М. Семенов Хімія вивчає речовини, їх перетворення, явища, що супроводжують ці перетворення,, 291.95kb.
- Методичні рекомендації щодо проведення заходів, пов’язаних з 25-ю річницею Чорнобильської, 38.67kb.
- "Психологія сучасної людини", 67.26kb.
- Історичний портрет Олекси Довбуша, 51.16kb.
- І найбільш ґрунтовних наук, 234.54kb.
- Донецький Обласний Інститут Післядипломної Педагогічної Освіти Відділ Природничих Дисциплін, 364.19kb.
Урок № 11. Вирази
Отже, зі змінними ми розібралися. Тепер займемося виразами.
Вирази
Для початку розберемося з поняттям “вирази”. У будь-якій мові програмування вирази є основними цеглинками, з яких будується програма. Відповідно до самого точного визначення, що мені приходилось бачити, “вирази” - це “щось, що містить певне значення”. За прикладом далеко ходити не потрібно, візьмемо приклад з попереднього уроку:
b = 234
Тут ми привласнюємо змінній b значення 234. Іншими словами “234” - це вираз зі значенням 234. А тепер, для прикладу розглянемо рядок:
c = b
Тут змінній c привласнюється вираження b. Значення цього виразу -
b = 234. Тобто іншими словами b - вираз, зі значенням 234. Розглянемо більш складний приклад вираз-функцію. Оголосимо функцію MyFunc, яка повертає байт 234:
Public Function MyFunc() As Byte
 MyFunc = 234
End Function
А тепер запишемо рядок:
c = MyFunc()
Як Ви вже напевно здогадалися, вираз тут - MyFunc(), зі значенням 234. Тобто після присвоєння змінній c виразом MyFunc(), вона буде містити значення 234. А от ще приклад:
c = 5 + 5 * 2
Тут вираз це 5 + 5 * 2. Значення цього виразу не важко порахувати, воно дорівнює 15 (не 20!). Можна було б написати і так:
c = MyFunc() - 219
Тут значення виразу таке ж, як і в попередньому випадку, але от самі вирази різні. Це важливо розуміти.
Також необхідно відзначити значення дужок у виразах. Пам’ятаєте дужки в школі? Отож у Visual Basic дужки виконують ту ж функцію, що й у школі, а саме - задають пріоритет операції. Приміром, модифікуємо вираження 5 + 5 * 2 на:
c = (5 + 5) * 2
Тепер значення цього виразу не 15, а 20! Запам’ятаєте це.
Йдемо далі. Розглянемо інші, дуже розповсюджені вирази - вирази порівняння. Такі вирази повертають True або False, у залежності від значення виразу, яке отримали. До таких виразів відносяться:
Dim bRes As Boolean ' змінна для збереження результату
Dim a As Long
Dim b As Byte
Dim c As Long
a = 234 ' змінні для тесту
b = 5
c = 1000
bRes = c > b ' 1
bRes = c < b ' 2
bRes = a >= c ' 3
bRes = b <= 4 ' 4
bRes = b <= 5 ' 5
bRes = a <> b ' 6
bRes = Not (a = b) ' 7
bRes = c = MyFunc() ' 8
' і їм подібні...
Отже, розглянемо кожен випадок докладно:
- Змінній типу Boolean - bRes привласнюється значення виразу (c > b). Тобто Visual Basic порівнює ці змінні, і дивиться, c > b? Якщо так, то значення цього виразу порівняння - True. Якщо ж ні, то False.
- Те ж саме, тільки bRes буде містити значення False, тому що c більше b, а не менше, як зазначено у виразі.
- Відбувається порівняння значень змінних a і c. Тобто a більше або дорівнює c? У нашому випадку a = 234, c = 1000, значить не більше і не дорівнює (менше). bRes буде містити False.
b порівнюється з числом 4. Згадайте, адже 4 - це також вираз, зі значенням 4! Тобто b > 4, то bRes = False.
- Також відбувається порівняння змінної b з числом, 5. Але цього разу одна з умов виконання, а саме b = 5! Значить bRes = True.
- Очевидно, що b <> a. Отже bRes повинне дорівнює True!? Так, так воно і є... ;)
Зверніть увагу на цей приклад. Після виконання цього рядка, bRes буде дорівнює True! Тут вираз Not (a = b) обчислюється в такий спосіб: спочатку Visual Basic порівнює значення a і b. Після того, як VB переконається в тому, що a <> b (тобто False), він обчислює вираз:
Not (False). Оператор Not - це булів оператор заперечення. Він інвертує значення. У даному випадку з False виходить True (на більш низькому рівні, можу додати, що оператор Not інвертує всі біти операнда, у даному випадку, тому що False у VB - це 0, а True - FFFF, то значення виразу - True).
- В даному випадку нічого особливо не відбувається. bRes = False. Чому? Нехай це буде вашим домашнім завданням :).
Ну й останній приклад, що ілюструє застосування виразів порівняння. Зробимо так, щоб змінній a присвласнилось значення 234, якщо
c = b, і 100, якщо c <> b:
If c = b Then a = 234
If c <> b Then a = 100
А можна так:
If c = b Then
 a = 234
End If
If c <> b Then
 a = 100
End If
Обидва цих варінта абсолютно еквівалентні, але втрачається наочність. Краще використовувати наступний варіант:
If c = b Then
 a = 234 ' рядок #1
Else
 a = 100 ' рядок #2
End If
В даному випадку конструкція If виконає рядок #1 тоді і тільки тоді, коли c буде дорівнювати b. Якщо ж вони не будуть рівні, то буде виконуватися рядок #2. Докладніше все це ми розглянемо далі.
Отже, з виразами, я думаю, ми остаточно розібралися. Тепер, якщо Ви запам’ятали, що таке константа, змінна і вирази, то можна їхати далі. До уроку №12.
Урок № 12. Оператори
Що таке вирази - ми довідалися. Прийшов час згадати, що ж таке оператор?
Оператори
Тут знову згадаємо школу. Пам’ятаєте прості арифметичні оператори? Такі як додавання, ділення, віднімання та множення. У Visual Basic вони також є. І їх з легкістю можна використовувати. Давайте розглянемо приклад з попереднього уроку:
c = 5 + 5 * 2
У виразі 5 + 5 * 2 використовуються 2 оператора: + і *. Їхні дії очевидні - додавання і множення. Так само, як і в алгебрі, тут діє принцип пріоритетів. Він полягає в тому, що кожний оператор має свій пріоритет. Наприклад, множення має більший пріоритет, чим, скажемо, додавання. Тому результат такого виразу не 20, а 15. Пріоритет можна вказати явно, поставивши в потрібній частині виразу круглі дужки:
c = (5 + 5) * 2
Тепер результат виразу - 20, тому що спочатку виконається оператор додавання і тільки потім множення.
Пам’ятаєте на попередньому уроці ми використовували Not, для заперечення . Отож - Not - це теж оператор, тільки не арифметичний, а логічний.
Оператори бувають різні:
У Visual Basic оператори бувають наступних типів:
Арифметичні:
оператор піднесення в степінь.
* оператор множення.
/ оператор ділення
\ оператор цілочисленого ділення
Mod оператор обчислення залишку від ділення
+ оператор додавання
- оператор віднімання
Порівняння:
< менше
> більше
<= менше або дорівнює
>= більше або дорівнює
= дорівнює
<> не дорівнює
Конкатенації:
+ оператор конкатенації
& оператор конкатенації
Логічні:
And оператор логічного множення
Eqv оператор логічної еквівалентності
Imp оператор логічної імплікації
Not оператор логічного заперечення
Or оператор логічного додавання
Xor оператор логічного додавання, що виключає
Як я вже говорив, кожний оператор має свій пріоритет, і кожний вираз обчислюється з урахуванням цих пріоритетів. Для довідки я хочу привести дуже цікаву таблицю пріоритетів:
Арифметичні | Порівняння | Логічні |
Піднесення в степінь () | Рівно (=) | Not |
Заперечення (-) | Нерівно (<>) | And |
Множення та ділення (*,/) | Меньше чим (<) | Or |
Цілочислене ділення (\) | Більше чим (>) | Xor |
Залишок від ділення (Mod) | Менше або рівно (<=) | Eqv |
Додавання та віднімання (+,-) | Більше або рівно (>=) | Imp |
Конкатенація (&) | Відповідність масці (Like) | |
| Приналежність до типу (Is) | |
В цій таблиці зверху вниз показаний порядок проходження пріоритетів операторів Visual Basic. Зверху вниз пріоритет зменшується. Оператори (* і /) мають однаковий пріоритет, і у виразі обчислюються зліва на право. Це ж саме відноситься до операторів додавання та віднімання. Якщо ж у виразі зустрічаються оператори з різних категорій, то обчислюються вони в порядку стовпчиків зліва на право. Тобто спершу арифметичні, потім оператори порівняння і лише потім логічні оператори.
Отже, йдемо далі. Нас чекають керуючі структури мови Visual Basic.