Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Оператор присвоювання





Перш ніж описувати формати операторів приведемо основні відомості про такі складові кожної програми, як оператори, операнди, операції.

Оператор - синтаксична конструкція мови програмування, призначена для визначення дій з певних правил, що реалізовуються при виконанні програм. Зазвичай оператори класифікуються на прості (наприклад оператор безумовного переходу Goto), включаючих прості дії, і складені (наприклад оператор циклу For…Next), включаючі як компоненти інші або такі ж оператори.

Операнд - елемент даного, який представляється вираженням і над яким виконуються операції.

Операція - обмежувач або зарезервоване слово, які використовуються для вказівки алгоритмів перетворення значень одного або двох операндів в результат деякого типу. Є шість класів операцій:

- логічні операції і форми управління з проміжною перевіркою;

- операції відношення і перевірки приналежності;

- бінарні аддитивні операції;

- унарні аддитивні операції;

- мультиплікативні операції і операції вищого пріоритету.

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

У мові Visual Basic найпростішим вважається оператор присвоювання.

Він має такий формат:

< змінна> = вираз

Оператор присвоюванняпов’язується знаком рівності з конструкцією, у якій значення виразу, що стоїть справа, присвоюється змінній, ім'я якої написано зліва. Наприклад, у результаті виконання поданої нижче пари операторів змінній z буде присвоєно значення а + b, тобто

x = а

z = x + b.

Оператор присвоюваннядопускається використовувати також для маніпуляції об'єктів. Проте якщо змінній присвоюється значення посилання на об'єкт, то до оператора присвоювання слід додати ключове слово Set, наприклад:

Set objA = objB.

Тут передбачається, що objA і objB були раніше оголошені як змінні об'єктного типу, і змінна objB у даний момент містить посилання на деякий об'єкт. Унаслідок виконання наведеного вище оператора змінній objA присвоюється значення посилання на той самий об'єкт.

 

5.2. Арифметичні оператори

У мові Visual Basic арифметичні оператори дозволяють виконувати обчислювальні арифметичні операції у повній відповідності із правилами арифметики (див. табл. 5.1).

 

Таблиця. 5.1

Знаки арифметичних операцій, використовуваних у мові Visual Вasic

Знак операції Опис
+ Додавання
Віднімання
* Множення
/ Ділення
\ Ділення без залишку
^ Піднесення до степеня
mod Залишок від ділення за модулем

 

Виконуючи арифметичні операції, потрібно враховувати такі умови:

● знак операції додавання можна використовувати при побудові арифметичних виразів з даними типу Date;

● якщо в операції додавання використовуються дані типу Integer і Long, то результат обчислення виразу матиме тип даних Long;

● якщо в операції віднімання один з операндів має тип даних Date, то результат обчислення виразу матиме тип даних Date;

● якщо обидва операнди в операції віднімання мають тип даних Date, то результат віднімання виразу матиме тип даних Double;

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

● при множенні значення змінних, що мають тип даних Variant, і містять одночасно значення типу Date, будуть перетворені в числові;

● якщо при виконанні ділення виявиться дільник, що дорівнює нулю, то буде видано повідомлення про помилку;

● для результату обчислення операції ділення чисел з плаваючою крапкою зазвичай використовується тип даних Double, а для чисел типу IntegerSingle;

● результатом операції ділення без залишку буде ціле число без округлення, при цьому дробова частина результату відкидається;

● операція піднесення до степеня (^) припускає піднесення значення першого операнда виразу до степеня, який дорівнює значенню другого операнда;

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

5.3. Логічні оператори

 

Логічні оператори в мові Visual Basic використовуються для маніпулювання логічними значеннями – True (у числовому вираженні це 1) і False (у числовому вираженні це 0). У табл. 5.2 стисло описані логічні оператори, підтримувані мовою Visual Basic.

 

Таблиця 5.2

Допустимі логічні оператори мови Visual Basic

Оператор Опис
And Кон'юнкція (логічне І)
Or Диз'юнкція (логічне АБО)
Not Заперечення(логічне НЕМАЄ)
Xor Виняток (що логічне виключає АБО)
Eqv Логічна еквівалентність
Imp Логічна імплікація

 

Оператор And позначає операцію кон'юнкції, результатом виконання якої буде значення True тоді й тільки тоді, коли обидва оператори мають це значення. У решті значень результатом виконання цієї операції буде значення False. Наприклад, вираз (3 > 2) And (4 > 3) має значення True, а вираз (3 > 6) And (4 > 3) має значення False.

Логічний оператор Or позначає операцію диз'юнкції, результатом виконання якої буде значення True, якщо принаймні один з операндів має значення True. Результат матиме значення False тоді й тільки тоді, коли обидва операнди мають це значення. Таким чином:

(3 > 5) Or (4 > 2) –значення True.

(2 > 3) Or (2 > 4) –значення False.

Логічний оператор Not позначає операцію логічного заперечення і має тільки один операнд. Результатом виконання цієї операції буде значення True, якщо операнд має значення False, і навпаки, результатом буде значення False, якщо операнд має значення True. Наприклад, вираз Not (5 > 3) має значення False, оскільки вираз в дужках має значення True.

Логічний оператор Xor позначає логічну операцію що “виключає АБО”, результатом виконання якої буде значення True (якщо операнди мають різні значення), і значення False, якщо обидва операнди мають значення True.

Логічний оператор Eqv позначає логічну операцію еквівалентності двох виразів, результатами виконання якої буде значення True, якщо обидва операнди мають значення True або обидва False, і значення False, якщо тільки один з операндів має значення False.

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

 

5.4. Оператори порівняння

 

Оператори порівняння використовуються в мові Visual Basic для порівняння числових і рядкових значень змінних величин, констант і результатів обчислення виразу. Результатом виконання операції порівняння завжди буде значення типу Boolean: або True (істина), або False (неправда). У таблиці 5.3 описано оператори порівняння, що підтримуються мовою Visual Basic.

Таблиця 5.3

Оператори порівняння в мови Visual Basic

Оператор Опис
= Дорівнює
> Більше
< Менше
> = Більше або дорівнює
< = Менше або дорівнює
< > Не дорівнює
Is Порівняння двох операндів, що містять посилання на об'єкти
Like Порівняння двох рядкових виразів

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

Знаки операції порівняння можна використовувати як для чисел, так і для рядкових значень. Порівнюючи останні, компілятор Visual Basic послідовно зчитує окремі символи зліва направо, визначаючи старшинство в алфавітному порядку, а будь-яких інших символів відповідно до двійкового значення коду ASCII. При цьому буде визнано, що один рядок дорівнює іншому, якщо вони мають однакову довжину й містять одні й ті самі символи, розташовані в однаковому порядку. Результатом такого порівняння буде значення True. У разі одна із перерахованих умов не буде виконана, то результатом порівняння рядків буде значення False.

Мова Visual Basic має у своєму розпорядженні два способи порівняння символів різних регістрів:

Порівняння рядків у двійковому режимі (метод порівняння за умовчуванням). Порівнюючи рядкові дані цим методом, використовують дійсний двійковий еквівалент коду кожного символу. Букви верхнього регістра мають менший двійковий код, ніж букви нижнього регістра. Наприклад, для букви “ А” код символу верхнього регістра (А) менший від коду символу нижнього регістра (а) тобто“ a” > “A” True.

Порівняння рядків у текстовому режимі. Згідно з цим методом порівняння рядків виконується за абеткою, але без урахування регістра букв. Одже, в текстовому режимі рядок “ ASD” дорівнює рядку “ asd”. Для того щоб перейти в текстовий режим порівняння, необхідно на початку модуля перед оголошеннями змінних або процедур помістити оператор Option Compare Text.

Для порівняння виразів, які містять посилання на об'єкти, у мові Visual Basic використовується оператор порівняння Is. Результатом виконання оператора Is є значення True, якщо обидва вирази типу Object посилаються на один і той самий об'єкт, і значення False, якщо посилання стосується інших об’єктів, тобто obj1 Is obj2.

Оператор Like дозволяє порівнювати рядок із заданим шаблоном і може розглядати тільки два рядкових вирази. Синтаксис цього оператора такий:

StrNGU1 Like StrNGU2.

Тут StrNGU1 – будь-який рядковий вираз (порівнюваний рядок, у якому виконується пошук), а StrNGU2 – комбінація спеціальних символів, що визначає шаблон для порівняння. Перелік допустимих символів шаблону з їх коротким описом наведено в табл. 5.4.

Таблиця 5.4

Спеціальні символи шаблону для оператора Like

Символ шаблону Чому відповідає
? Одному будь-якому символу
* Будь-якій кількості символів від 0 і більше
# Будь-якій цифрі від 0 до 9
(List) Списку (List) певних символів. Для позначення діапазону використовується знак дефіса (-)
(! List) Будь-якому символу, що не входить у список (List)

Результат порівняння в великих (верхній регістр) і малих (нижній регістр) букв в операторі Like залежить від встановленого режиму Option Compare. Якщо задано двійкове порівняння рядків, то оператор Like розрізняє букви верхнього й нижнього регістрів. Якщо встановлено режим текстового порівняння, то оператор Like не реагує на значення регістрів.

5.5. Строкові оператори

 

У мові Visual Basic для встановлення рядкових значень використовується єдиний оператор конкатенації, який виконує операцію злиття двох рядків в один. Для позначення такої операції застосовують символ “ & ”, або “+”. Результат конкатенації рядків завжди має тип даних String. Наприклад, виконуючи такий оператор:

PIB = “Іванов” & “ “ & “Іван” “ “ “ & “Іванович”,

у результаті маємо рядок “ Іванов Іван Іванович ”.

Якщо в операції конкатенації використовуються числові операнди, то перед її виконанням компілятор Visual Basic автоматично перетворить числові вирази в рядки символів, що відповідають їхньому поточному значенню.

 

5.6. Пріоритети виконання операцій

 

Якщо вираз багатоелементний і для його обчислення потрібно більше одного оператора, то цей процес регулюється правилами про пріоритет виконання операцій, що прийняті в мові Visual Basic. Пріоритети основних операторів розглянуто в табл. 5.5. Оператори, що мають однаковий пріоритет, виконуються у виразі послідовно, зліва направо. У мові Visual Basic можлива зміна стандартного порядку виконання операцій у виразах за допомогою дужок.

 

Таблиця 5.5

Пріоритети операторів Visual Basic

Оператор Назва Пріоритет
^ Піднесення до степеня  
*, / Множення, ділення  
\ Ділення без остачі  
Mod Остача  
+, - Додавання, віднімання  
& Злиття рядків  

 

Оператори, що мають менше значення пріоритету, виконуються першими. Візьмемо такий наступний приклад:

6 + 7 * 3.

Тут першою буде виконуватись операція множення, оскільки вона має вищий пріоритет, а потім операція додавання. Результат обчислення всього виразу буде дорівнювати 27. При цьому належить зауважити, що коли частини складних виразів взято в дужки, то саме вони завжди обчислюються в першу чергу незалежно від пріоритету операторів.

У прикладі " (6 + 7) * 3 " першою буде виконано операція додавання, взята в дужки, а тільки потім операція множення. Результат обчислення всього виразу, буде дорівнювати 39. У виразі можна використовувати скільки завгодно рівнів дужок, але всі вони мають бути парними, тобто відкриватись і закриватись. Якщо дужки у виразі вкладені одна в одну, то обчислення починаються із виразів, які поміщено у внутрішні дужки.

 

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

 

Для роботи із числовими значеннями у мові VB існує цілий ряд математичних функцій, які будуть корисні для розв’язування різноманітних обчислювальних задач, як простих, так і достатньо складних. Вони можуть використовуватися не тільки в арифметичних розрахунках, але й для обчислення різноманітних алгебричних і тригонометричних величин. Усі математичні функції, які має у своєму розпорядженні мова Visual Basic, наведено в табл. 5.6.

Таблиця 5.6

Убудовані математичні функції мови Visual Basic

Функція Призначення
Abs(число) Обчислює абсолютне значення числа (модуль числа)
Atn(число) Обчислює арктангенс числа (кут, вимірюваний у радіанах)
Cos(число) Обчислює косинус числа, що розуміється як кут, виміряний у радіанах
Exp(число) Обчислює константу е в степені, який дорівнює заданому числу (е, приблизно дорівнює 2, 718282)
Fix(число) Обчислює цілу частку числа. Для від’ємного числа обчислює найближче більше від’ємне ціле число, або рівніше вказаному
Int(число) Обчислює цілу частина числа. Для від’ємного числа обчислює найближче менше від’ємне ціле число, або рівніше вказаному
Log(число) Обчислює натуральний логарифм числа, значення з плаваючою точкою, подвійній точності
Rnd(число) Генерує випадкове число, значення з плаваючою точкою, одинарній точності
Закінчення табл. 5.6
Sgn(число) Обчислює знак числа: 1 – число позитивне; 0 – дорівнює нулю; –1 – число від’ємне
Sin(число) Обчислює синус числа, що розуміється як кут, виміряний у радіанах
Sqr(число) Обчислює квадратний корінь з числа
Tan(число) Обчислює тангенс числа, що розуміється як кут, виміряний у радіанах

5.8. Програмування за допомогою процедур і функцій

 

5.8.1. Характеристика процедур

 

У практиці програмування часто виникає потреба у виконанні одних і тих самих обчислень, але з використанням різних початкових даних. Щоб уникнути повторення однакових записів і зробити тим самим програму простішою та зрозумілішою, можна виділити повторювані обчислення, в самостійну частину програми, яка при потребі може бути використана багато. Така автономна частина програми, що реалізовує певний алгоритм і допускає звернення до нього з різних частин загальної програми, називається процедурою. Будь-яка процедура містить заголовок і розділ операторів з відомостями про послідовність їх застосування. По суті, процедура дуже схожа на програму. Синтаксис оголошення процедури такий

Sub MyProc(A1, A2, A3,..., AN)

[Оператори]

End Sub,

Де MyProc – ім'я створюваної процедури;

Оператори – оператори, використовувані в процедурі.

Присвоєння процедурі певного імені повинне відбуватися за певними правилами. У дужках після ім'я процедури роблять перелік формальних параметрів A1, A2, A3,..., AN, від яких залежатиме результат виконання процедури.

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

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

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

MyProc A1, A2, AЗ..., AN

або

Сall MyProc (A1, A2, AЗ..., AN)

При цьому список фактичних параметрів може бути відсутнім.

Одночасно діють такі правила зв’язку між фактичними і формальними параметрами процедури:

● кількість фактичних параметрів має дорівнювати кількості формальних параметрів;

● порядок проходження і процедурі й тип фактичних та формальних параметрів мають бути однаковими, але не обов'язково однаково позначені (тобто формальний і фактичний параметри можуть мати різні імена).

Виконання оператора виклику процедури відбувається таким чином:

● усі формальні параметри замінюються відповідними фактичними;

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

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

Приклад використання процедури в програмі (без врахування параметрів).

Завдання. Вивести на форму значення такого виразу: (4 + 5 + 6) * 200 / 2, використовуючи процедуру Res.

Текст програми:

Sub Res

Print ((4+5+6)*200/2)

End Sub

Результат обчислення: 1500.

Оголошувати процедуру можна в будь-якій частині програми (на початку, у середині чи в кінці).

Приклад використання процедури в програмі (з урахуванням параметрів).

Завдання. Увести значення трьох змінних за допомогою процедури vvod і роздрукувати їх значення.

Текст програми:

option explicit

dim а, b, с 'опис глобальних змінних

Sub Vvod(x) 'процедура введення значень змінних, х – формальний

' параметр

x=InputBox (" Уведіть значення змінної: ")

End Sub

Vvod а→ 'Звернення до процедури vvod, а – фактичний параметр

Vvod b→ 'Звернення до процедури vvod, b – фактичний параметр

Vvod з→ 'Звернення до процедури vvod, с – фактичний параметр

 

5.8.2. Характеристика функцій

 

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

Для процедури типу Function характерний такий синтаксис:

Function Ім'я (аргументи) As тип

(оператори)

Ім'я = повертане_значення

End Function

Тут ключове слово Function визначає процедуру однойменного типу, після нього йде унікальне Ім'я процедури-функції, складене за правилами мови Visual Basic. Після імені функції подається перелік її аргументів аргументи, який містить передані цей функції дані. Тип визначає тип даних величини повертане значення, обчислювано функцією в точку виклику за допомогою приміщення її в змінну з ім'ям Ім'я. Значення яке повертається функцією, може мати будь-який тип даних, що існує в мові Visual Basic. Коли тип даних цього значення при оголошенні опущений, то передбачають, що це Variant.

Після створення функції слід зберегти її в спеціальному модулі для подальшого використання.

Виклик функції відбувається таким чином:

● без присвоєння:

Ім'я аргумент1, аргумент2..., аргумент n

● із присвоєнням:

x=Ім’я (аргумент1, аргумент2..., аргумент n)

Усередині тіла процедури або функції можна оголошувати нові змінні за допомогою ключового слова Dim.

 

Приклад суспільного використання функції та процедури.

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

Dim v, t, а

Function Rasst(х, у, z)

Rasst =x*y+z*y*y/2

End Function

Sub Vvod(param, x)

x = InputBox(" Введіть значення параметра param: ")

End Sub

Private Sub Commandl_Click()

Print " Завдання: "

Print " Визначити відстань, пройдену _ фізичним тілом"

" за час t, зі швидкістю v і прискоренням а"

Vvod " швидкість", v

Vvod " час", t

Vvod " прискорення", а

Print " Тіло пройшла відстань"; Rasst(v, t, а)

End Sub

При використанні у фунциях рекурсій використовується стекова пам'ять. (стек).

СТЕК - це послідовна організація пам'яті для структурного даного з доступом до елементу даного, що внесен до структури останнім.

Стек є як би протилежністю черги, оскільки він працює за принципом " останнім прийшов - першим вийшов".

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

Стек - це робоча область пам'яті, яка динамічно збільшується або зменшується залежно від потреб виконуваної програми. Щоб попередити переповнювання стека необхідно виконати наступні умови:

- переконаєтеся, що функції або процедури не є глибоко вкладеними;

- якщо для локальних змінних недостатньо місця, спробуйте оголосити деякі змінні на рівні модуля. Крім того, усі змінні в процедурі або функції можна оголосити статичними, поставивши попереду ключового слова Property, Sub або Function ключове слово Static. Оператор Static можна також використовувати для оголошення в процедурах або фунциях окремих статичних змінних;

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

- перевірте число вкладених викликів функції DoEvents за допомогою діалогового вікна Calls, в якому можна проглянути, які процедури використовують стек;

- переконаєтеся, що не був запущений " каскад подій", який є результатом включення події, що викликає процедуру події, яка вже знаходиться в стеку. Каскад подій схожий на виклик незавершеної рекурсивної процедури, проте він не настільки помітний, оскільки виклик виконується системою Visual Basic і явним чином не визначений в коді. Для перегляду процедур, діючих в стеку, використовуйте діалогове вікно Calls.

 

6. ПРОЕКТУВАННЯ РОЗГАЛУЖЕНИХ АЛГОРИТМІВ

У СЕРЕДОВИЩІ VISUAL BASIC







Дата добавления: 2014-11-10; просмотров: 2218. Нарушение авторских прав; Мы поможем в написании вашей работы!




Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...


ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...


Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...


Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

Методы анализа финансово-хозяйственной деятельности предприятия   Содержанием анализа финансово-хозяйственной деятельности предприятия является глубокое и всестороннее изучение экономической информации о функционировании анализируемого субъекта хозяйствования с целью принятия оптимальных управленческих...

Образование соседних чисел Фрагмент: Программная задача: показать образование числа 4 и числа 3 друг из друга...

Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

Условия приобретения статуса индивидуального предпринимателя. В соответствии с п. 1 ст. 23 ГК РФ гражданин вправе заниматься предпринимательской деятельностью без образования юридического лица с момента государственной регистрации в качестве индивидуального предпринимателя. Каковы же условия такой регистрации и...

Седалищно-прямокишечная ямка Седалищно-прямокишечная (анальная) ямка, fossa ischiorectalis (ischioanalis) – это парное углубление в области промежности, находящееся по бокам от конечного отдела прямой кишки и седалищных бугров, заполненное жировой клетчаткой, сосудами, нервами и...

Основные структурные физиотерапевтические подразделения Физиотерапевтическое подразделение является одним из структурных подразделений лечебно-профилактического учреждения, которое предназначено для оказания физиотерапевтической помощи...

Studopedia.info - Студопедия - 2014-2024 год . (0.015 сек.) русская версия | украинская версия