Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




Вправа

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

Як Ви думаєте, який тип даних потрібно використовувати для того, щоб значенням змінної був точний результат додавання дуже великого (наприклад, 9 трильйонів) і дуже маленького (наприклад, 0.0001) чисел?

Як Ви думаєте, який тип даних (чи які, якщо їх декілька) можна використовувати для того, щоб значенням змінної цього типу був точний результат додавання двох дуже великих чисел, наприклад, 800 трильйонів і 900 трильйонів?

Як Ви думаєте, який тип даних (чи які, якщо їх декілька) можна використовувати для того, щоб значенням змінної цього типу був точний результат додавання двох дуже маленьких чисел, наприклад, 1/(800 трильйонів) і 1/(900 трильйонів)?

Які зміни потрібно внести в коди 3.1 — 3.7 для того, щоб була дотримана угода про імена (угорська нотація)?

Як потрібно змінити коди 3.1 і 3.2, щоб типи використовуваних у них змінних визначалися за допомогою суфіксів?

Як потрібно змінити коди 3.5 і 3.7, щоб типи використовуваних у них змінних визначалися за допомогою оператора оголошення типу (за допомогою інтервалів імен змінних)?

Уявіть собі, що в один прекрасний день далекого майбутнього деякий космічний мандрівник знайшов астероїд, що складається з чистого золота, масою 9111222 тонн 333 кілограма 444 грама. У той день вартість одного грама золота на Землі складала 100,01€. Напишіть програму, що обчислює вартість астероїда в день його знахідки і привласнює результат двом змінним — типу Double і типу Currency. Значення якої змінної буде найближче до точного значення? (Точне значення легко знайти вручну: 911 213 345 567 734, 44€.)

Мал. 3.7. Демонстрація відмінності значень змінних двох типів від точного значення результату обчислення

Відповідь: значення змінної типу Currency відрізняється від істинного значення на 6 центів, а змінної типу Double — на 56 центів! Ці розходження можна продемонструвати за допомогою додатка, екранна форма якого представлена на мал. 3.7.


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-23; Просмотров: 609; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.031 сек.