Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Тема 4 вирази та функції



4.1. Обчислення значення арифметичного виразу
4.2. Функції в мові Бейсік
4.3. Обробка рядкових виразів
4.4. Додаткові відомості

В операторі присвоювання, синтаксис якого був розглянутий у попередній главі, з правого боку від знака = розміщене ЗначенняЗмінної. Ним може бути конкретне значення — числове чи нечислове. А може бути і вираз — часом дуже непростий! При виконанні оператора присвоювання під час роботи програми цей вираз обчислюється. Це означає, що за визначеними правилами розраховується значення цього виразу. А потім це значення привласнюється змінній. У 2-й главі (див. розд. 2.3, код 2.1) ми вже розглядали приклад присвоювання змінній значення арифметичного виразу (при обчисленні площі стін кімнати): S = 2 * (А + В) *H. Праворуч від знака = записаний арифметичний вираз.

Вираз, значення якого привласнюється змінній при виконанні оператора присвоювання, може відноситися до різних типів. Ми розглянемо 3 типи виразів: арифметичні, рядкові та логічні (у даній главі — тільки арифметичні і рядкові вирази).

Однак, вирази можуть зустрічатися не тільки в операторах присвоювання. У наступних главах Ви познайомитеся з більш складними операторами мови Бейсік, в яких велику роль відіграють вирази логічного типу. Арифметичні та рядкові вирази можуть бути всередині логічних виразів. Прикладом може служити логічний вираз, за допомогою якого порівнюються значення двох арифметичних виразів — площі стін двох кімнат: 2 * (A1 + B1) * H1 > 2 * (A2 + B2) * H2.

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

У даній главі ми розглянемо декілька найбільш розповсюджених функцій, що є в будованими в систему Visual Basic. Крім функцій, знайомих Вам із шкільної математики (математичних функцій), будуть розглянуті і такі, про які Ви, може бути, і не чули — це, наприклад, фінансові функції, функції обробки, рядків, функції перетворення типів. Їхнє використання дає можливість створювати програми для дуже корисних і цікавих додатків.

4.1. Обчислення значення арифметичного виразу

Найчастіше в операторі присвоювання праворуч від знака = знаходиться так званий арифметичний вираз. При виконанні цього оператора змінної, що стоїть ліворуч від знака =, привласнюється значення цього арифметичного виразу.

Арифметичний вираз — це послідовність чисел, констант, змінних, функцій і арифметичних виразів, вкладених у круглі дужки, що з'єднані між собою знаками арифметичних операцій. Дане визначення є рекурсивним — арифметичний вираз може складатися з інших арифметичних виразів. Наприклад, до арифметичного виразу a/(b+ с) входить змінна а й арифметичний вираз (b+ с).

Значення арифметичних виразів обчислюються за правилами, що є загальновідомими і ми не будемо на них докладно зупинятися. Приведемо лише таблицю арифметичних операцій, що використовуються у мові Visual Basic. Таких операцій вісім (табл. 4.1).

Табл. 4.1
Операція Опис операції
А^В Зведення А в ступінь В
Зміна знака А
А* В Множення A на B
А/В Ділення A на B
А\В Цілочислове ділення А на В
A Mod В Ділення по модулю А на B
А + В Додавання A з B
А – В Віднімання В з А

Ці операції напевно добре Вам знайомі і не вимагають пояснень. Приведемо приклади:

(3 + 2)/(6 — 4); значення виразу дорівнює 2.5;

— 3 * (— 3); значення виразу дорівнює 9;

2^2 + 1; значення виразу дорівнює 5.

Можливо, що для Вас виключення складають операції цілочислового поділу і поділу по модулю: \ і Mod. Зміст цих операцій полягає в наступному.

Результатом цілочисельного ділення одного числа на інше є ціла частина їх відношення, наприклад: значення виразу 34 \ 5 дорівнює 6.

Результатом ділення по модулю одного числа на інше є дробова частина їх відношення, наприклад: значення виразу 34 Mod 5 дорівнює 4.

На конкретних числах, що входять до арифметичного виразу, докладно зупинятися не будемо (Це значення різних числових типів, розглянутих у гл. 3, наприклад: 25 (тип Integer), 150000 (тип Long), 3.1416 (тип Single), 9.87654321E+300 (тип Double) і т.д.).

Змінні, що входять до виразів, повинні мати чисельні значення.

Функції, що входять до виразів, також повинні мати чисельні значення. Говорять, що функції повертають визначені чисельні значення. (Про те, що таке функція і які функції має мова програмування Visual Basic, ми поговоримо пізніше.)

Константи — це величини, значення яких не можуть мінятися. Як і змінні, константи з'являються на початку тексту програмного коду. Синтаксис оголошення константи:

ConstІм’яКонстанти [As Тип] = ЗначеннняКонстанти

Ім’яКонстанти і ЗначенняКонстанти задаються так само, як і ім'я та значення змінної. Тип задавати не обов’язково (за замовчуванням буде заданий тип Variant).

Крім оголошуваних констант у програмі на мові Visual Basic можуть використовуватися системні, вбудовані константи, наприклад, значення кольору: vbRed — значення червоного кольору, vbWhite — значення білого кольору і т.д. Значення кольору — це число типу Long. У мові Visual Basic будь-який колір (чи колірний відтінок) кодується числом. Наприклад, значення червоного кольору (константи vbRed) 255, значення білого кольору (константи vbWhite) 16777215. Докладніше про це йтиметься у 5-й главі. Імена системних констант — ключові слова Visual Basic.

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

30 + 10 * 2^5 -80/2.

Насамперед 2 зводиться в 5-й ступінь, потім 10 збільшується на отриманий результат, після чого 80 ділиться на 2, і тільки потім додавання і віднімання. (Результат дорівнює 310). Правило старшинства операцій дозволяє уникати зайвих дужок при записі арифметичних виразів. Якби цього правила не було, вищенаведений вираз довелося б записати так: ((30 + (10 * (2^5))) - (80/2)).

У табл. 4.1 арифметичні операції перераховані в порядку убування їхнього старшинства з одним виключенням: дві пари операцій мають однакове старшинство — це множення з ділення (* і /) і додавання з віднімання (+ і -).

Приклад 4.1. Розглянемо фрагмент програми, що складається з операторів оголошення змінних і констант та декількох операторів присвоювання:

Код 4.1

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

Зверніть увагу і на те, що у даній програмі присутні коментарі — довільні рядки, що знаходяться справа від символу 'апострофа. Вони ніяк не впливають на хід виконання програми (цілком ігноруються в процесі її виконання) і потрібні тільки для того, щоб людині, що читає програму, була легше в ній розібратися. При записі програми у Вікно програмного коду системи Visual Basic коментарі автоматично виділяються особливим (зеленим) кольором.

Неважко здогадатися, що за допомогою цієї програми ми обчислюємо площі двох кіл з радіусами 10 і 20 одиниць. (S — площа, Pi — число пі, R — радіус кола.)

Після виконання першого оператора присвоювання змінна R одержує значення 10, після другого — змінна S одержує значення 314.15927, після третього — змінна R одержує значення 20, після четвертого — змінна S одержує значення 1256.63708.

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

Hові поняття:

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

Питання для роздумів

Чи зможете Ви визначити нескінченно довгий арифметичний вираз?

У якому випадку значення виразу X / У дорівнює значенню виразу X\ У? (Відповідь: — у тому випадку, коли залишок від поділу X на Y дорівнює 0).

Як Ви думаєте, чи можна в програмуванні мовою Бейсік обійтися без констант? (Відповідь: Можна.)

Для чого потрібні дужки в арифметичному виразі (2 + а) * (3 — b)? Чи можна обійтися без дужок? У даному випадку і взагалі? (Відповідь: Не можна.)





Дата публикования: 2014-12-28; Прочитано: 919 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...