Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

КЛ по Информатике-2008-часть2_укр

.pdf
Скачиваний:
18
Добавлен:
21.02.2016
Размер:
4 Mб
Скачать

а)

б)

Рис. 3.4. Приклад обчислення визначеного інтегралу за методом Сімпсона в Microsoft Excel: а) вид листа Microsoft Excel; б) формули, що розташовано в комірках листа Microsoft Excel

3.3. Критерії засвоєння

Після вивчення й аналізу змісту теми ВИ повинні РОЗУМІТИ наступне:

1.У багатьох випадках виникають певні труднощі пов’язані зі знаходженням первісної функції.

2.Основними чисельними методами для обчислення визначеного інтегралу при розв’язанні інженерних задач є метод трапецій і метод Сімпсона.

80

3.Точність методів обчислення визначених інтегралів залежить від кількості відрізків розбивань.

Урезультаті вивчення даної теми ВИ повинні ЗНАТИ:

-порядок обчислення визначених інтегралів за методом трапецій і методом Сімпсо-

на в MS Excel;

-чому чисельно дорівнює погрішність кожного з методів обчислення визначених інтегралів;

-основні відмінності між методом трапецій і методом Сімпсона.

Ваші знання повинні забезпечувати наступні УМІННЯ:

-правильно обчислювати визначені інтеграли за методом трапецій і методом Сімп-

сона в MS Excel;

-оцінювати погрішність обчислення визначеного інтегралу.

3.4. Рекомендована література Основна

1.Бахвалов Н.С., Жидков Н.П., Кобельков Г.М. Численные методы. – М.: БИНОМ, 2000. – 630 с.

2.Вержбицкий В.М. Численные методы (линейная алгебра и нелинейные уравнения): Учеб пособие для вузов. – М.: Высш. шк., 2000. – 266 с.

3.Демидович Б.П., Марон И.А. Основы вычислительной математики. – М.: Наука, 1970. – 664 с

4.Киреев В.И., Пантелеев А.В. Численные методы в примерах и задачах: Учебное пособие.

– М.: Изд-во МАИ, 2000. – 376 с.

5.Мэтьюз Дж.Г., Финк К.Д. Численные методы: Использование MATLAB. – М.: Издательский дом «Вильямс», 2001. – 720 с.

6.Фельдман Л.П., Петренко А.І., Дмитрієва О.А. Чисельні методи в інформатиці. – К.: Ви-

давнича група BHV, 2006. – 480с.

Додаткова

1.Бахвалов Н.С., Лапин А.В., Чижонков Е.В. Численные методы в задачах и упражнениях. Учеб. пособие./ Под ред. В.А. Садовничего. – М.: Высш. шк., 2000. – 190 с.

2.Калиткин Н.Н. Численные методы. – М.: Наука, 1978. – 512 с.

3.Поршнев С.В. Вычислительная математика. Курс лекций. – СПб.: БХВ-Петербург, 2004.

– 320 с.

4.Самарский А.А. Введение в численные методы. – М., МГУ, 2000. – 271 с.

5.Уокенбах Дж. Подробное руководство по созданию формул в Excel 2002: Пер. с англ. – М.: Издательский дом «Вильямс», 2002. – 624 с.

81

Лекція № 4 (I-П-1).

Основи програмування на VBA в Excel

I-П-1: Ключові слова й поняття: константи (4.1), змінні (4.2), масив (4.3), модуль (4.4), процедура (4.5), арифметичний вираз (4.6), логічний вираз (4.7), цикл (4.8)

4.1. Зміст теми

§1. Введення

§2. Основні елементи мови VBA

2.1.Константи

2.2.Змінні

2.3.Основні вбудовані типи змінних в VBA.

2.4.Оператор Dim - явний опис типу змінних

2.5.Масиви.

2.6.Неявний опис типів змінних.

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

3.1. Вбудовані стандартні математичні функції VBA §4. Логічні вирази

4.1.Вирази відносини

4.2.Основні логічні операції

§5. Основні оператори мови VBA

5.1.Оператор коментарю

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

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

5.4.Оператор вибору Select ... Case

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

§6. Процедури та функції

82

§1. Введення

Вбудована в Excel макромова VBA (Visual Basic for Application – Visual Basic для до-

датків) істотно розширює його можливості по автоматизації обчислень. Основу VBA становить мова програмування Visual Basic для Windows, прабатьком якої, у свою чергу, є створена в 60-і роки минулого століття мова BASIC (абревіатура від Beginner’s All-purpose Symbolic Instruction Code – багатоцільова мова символічних команд для початківців).

Передбачається, що людина, що вивчає даний матеріал, є досить досвідченим користувачем електронних таблиць Excel з Microsoft Office2003. Зокрема, він повинен уміти виконувати наступне:

створювати робочі книги, вставляти листи, зберігати файли і т.д.;

переміщуватися по робочій книзі;

користуватися меню і комбінаціями клавіш;

управляти панелями інструментів Excel;

використовувати функції робочих аркушів Excel;

застосовувати основні можливості Windows, такі, наприклад, як буфер обміну та прийоми керування файлами.

§2. Основні елементи мови VBA

2.1. Константи

Константа (4.1)– це величина, що не може змінювати своє значення в процесі обчислень. Розрізняють числові й строкові (текстові) константи. Числові константи бувають двох типів: цілі і речовинні (дійсні).

Константи (4.1)

Константа – це величина, що не може змінювати своє значення в процесі обчислень.

Цілі константи відзначаються знаком % наприкінці запису числа. Наприклад: 33%, або 4%.

ЗВЕРНІТЬ УВАГУ! NB !

Варто мати на увазі, що запис символу % наприкінці числа - це лише ознака приналежності числа до цілого типу в VBA. Ніякого відношення до процентного формату подання чисел в Excel такий запис не має.

Речовинні (дійсні) константи, як і в Excel, записуються як числа з фіксованою або плаваючою крапкою. Наприклад: 3,88; -0,66; 2,5e-3. Речовинні (дійсні) константи не відзначаються ніяким символом наприкінці запису.

Зауваження. Цілі та речовинні (дійсні) константи однакового значення (наприклад, 3% і 3,0) мають різне подання в пам’яті комп’ютера і тому мають різні властивості, які проявляються, зокрема при виконанні операції ділення.

Строкова (текстова) константа – це набір символів, укладених у лапки. Наприклад: “Студент Петров В.В.”.

2.2. Змінні

Змінна (4.2) – це величина, що може змінювати своє значення в процесі обчислень. Змінні в VB, як і в будь-якій іншій мові програмування, задаються в програмі за допомогою імені (ідентифікатора).

Змінні (4.2)

Змінна – це величина, що може змінювати своє значення в процесі обчислень.

Правила утворення імен змінних в VBA:

ім’я повинне починатися з букви;

ім’я не повинне містити пробіли, крапки, а також символи неявного опису типу (!,

83

@, &, $, #, %);

ім’я не повинне містити більше 254 символів;

ім’я не повинне збігатися з одним із зарезервованих (службових) слів в VBA. Варто мати на увазі, що VBA не розрізняє регістри (великі та маленькі букви). Тому

для VBA імена, наприклад, prima, Prima, PRIMA позначають одну змінну.

В VBA використовується досить велика кількість зарезервованих слів, які не допускається застосовувати як імена змінних і процедур. При спробі уведення у вікні редактора коду одного з таких слів у якості змінної з’являється повідомлення про помилку. Наприклад, використання службового слова Next у наступному контексті

Next = 123

генерує повідомлення про помилку Compile error: Expected variable (Помилка компіляції: очікується змінна), а запис виду

r = next + 123

- помилку Compile error: Expected expression (Помилка компіляції: очікується вираз). З появою таких повідомлень потрібно за допомогою довідкової системи переконатися в тім, що ім’я змінної не збігається з одним із зарезервованих слів VBA.

2.3. Основні вбудовані типи змінних в VBA.

Тип даних визначає, яким образом біти даних, що представляють конкретне значення зберігаються в пам’яті ПК. У кожній мові програмування є свій фіксований набір базових типів даних. В VBA є наступні основні типи даних (табл. 4.1):

Таблиця 4.1

Основні типи даних в VBA

Тип

Описання

Розмір у бай-

Можливі значення

 

 

тах

 

Integer

Ціле

2

Від -32768 до +32767

 

 

 

 

Long

Довге ціле

4

Від -2147483648 до +2147483647

Single

Число із плава-

4

Від’ємні: від -3,402823E+38 до -1,401298 E-45

 

ючою крапкою

 

Додатні: від 1,401298 E-45 до -3,402823E+38

 

 

 

 

Double

Число із плава-

8

Від’ємні: від -1,79769Е+308 до -4,94Е-324

 

ючою крапкою

 

Додатні: від 4,94Е-324 до 1,79769Е+308.

 

подвійної точ-

 

 

 

ності

 

 

String

Рядок фіксова-

Довжина ря-

Від 0 до 216 символів. В описанні змінної явно вка-

 

ної довжини

дка

зується кількість символів.

String

Рядок змінної

10 байт + до-

Від 0 до 231 символів.

 

довжини

вжина рядка

 

Boolean

Логічний

2

True або False (ИСТИНА або ЛОЖЬ)

Byte

Байтовий

1

Від 0 до 255

 

 

 

 

Date

Дата

8

Дати змінюються в діапазоні від 1.01.100р. до

 

 

 

31.12.9999р.

Currency

Грошовий

8

Від -922 337 203 685 477,5808

 

 

 

до 922 337 203 685 477,5807.

 

 

 

 

Variant

Варіант (числа)

16 байт

Будь-яке числове значення аж до границь діапазо-

 

 

 

ну для типу Double.

Variant

Варіант (сим-

22 байта +

Від 0 до 231 символів.

 

воли)

довжина ря-

 

 

 

дка

 

84

Пояснимо деякі характерні для VBA типи даних.

Boolean – для зберігання логічних (булевих) значень. За замовчуванням значенням булевською змінною є False – "ложь".

Currency – для зберігання чисел із дробовою частиною до чотирьох цифр і цілою частиною до 15 цифр, тобто даних з фіксованою десятковою крапкою, зручних для грошових обчислень. Числа із плаваючою десятковою крапкою (Single, Double) мають більший діапазон значень, але можуть приводити до помилок округлення.

String – за замовчуванням дані строкового типу мають змінну довжину і можуть подовжуватися або коротшати. Однак такі рядки займають на 10 байт пам’яті більше, тому можна оголосити рядок фіксованої довжини, явно вказавши кількість символів. Якщо кількість символів буде менше за оголошену, то вільні місця заповнюються пробілами, при спробі занесення більшої кількості символів зайві відкидаються.

Variant – може бути використаний для зберігання даних всіх базових типів. Застосування даного типу дозволяє виконувати операції, не звертаючи увагу на тип даних, які вони містять. Variant зручний для оголошення змінних, тип яких заздалегідь невідомий. Дані, які зберігаються в Variant змінюють свій тип залежно від того, які операції над ними виконуються Змінні цього типу можуть містити спеціальні значення: Empty, Null, Error.

2.4. Оператор Dim - явний опис типу змінних

Оператор Dim описує змінні та виділяє для них пам’ять. Його загальний вигляд:

Dim ім’яЗмінної As тип, ім’яЗмінної As тип, . . .

Приклад 1:

Dim pop As Integer, a As Double

Зауваження: Якщо «тип» не зазначений, то за замовчуванням, змінна має тип Variant. Приклад 2:

Dim prima, vov As Long. (Змінна рrima має тип Variant.)

Зауваження: Змінні, описані за допомогою ключового слова Dim на рівні модуля (4.3), доступні для всіх процедур (4.4) у даному модулі. Змінні, описані на рівні процедури, доступні тільки в даній процедурі.

Модуль (4.3)

Модуль (Модуль VBA) – місце зберігання програми VBA. Модуль складається з процедур.

Процедура (4.4)

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

2.5. Масиви.

Масив (4.5) – це впорядкована послідовність однотипних величин, позначених одним ім’ям. Величини, що утворять масив, називаються елементами масиву.

Масив (4.5)

Масив – це впорядкована послідовність однотипних величин, позначених одним ім’ям.

Для опису масиву потрібно в операторові Dim слідом за ім’ям масиву в круглих дужках вказати максимальні значення індексів. За замовчуванням, мінімальне значення індексу дорівнює 0. Кількість індексів (розмірністей) у масиві не може перевищувати 60. Об’єм (ро-

85

змір) масиву, тобто кількість його елементів, обмежено обсягом наявної оперативної пам’яті. Приклад 3:

Dim imas (10) As Integer. Dim dmas(3,3) As Double

У цьому випадку imas - одномірний масив (вектор), призначений для зберігання в пам’яті 11 чисел цілого типу, а dmas - двовимірний масив (матриця), призначений для зберігання в пам’яті 16 чисел речовинного типу подвійної точності (4 рядки і 4 стовпці).

Оператор Option Base 1 дозволяє встановити нижню границю індексів, яка дорівнює 1.

ЗВЕРНІТЬ

Оскільки за замовчуванням використовується значення 0,

УВАГУ!

інструкція Option Base не є обов’язковою. Однак якщо вона

NB !

використовується, ця інструкція повинна з’являтися в моду-

лі перед будь-якою процедурою.

 

Інструкція Option Base може задаватися в модулі тільки один раз і повинна передувати описам масивів, що включають розмірності.

Приклад 4:

Option Base 1

Dim imas(10) As Integer Dim dmas(3,3) As Double

Оператори визначають вектор imas з 10-ти елементів цілого типу і матрицю dmas, що складається з 3-х рядків і 3-х стовпців чисел речовинного типу подвійної точності.

За допомогою оператора To існує можливість явно вказати границі зміни індексів. Приклад 5:

Dim A(2 To 5) – одномірний масив, що містить елементи A(2), A(3), A(4), A(5). Dim(1 To 2, 1 To 3) – двовимірний масив, що містить елементи B(1,1), B(1,2), B(1,3),

B(2,1), B(2,2), B(2,3).

2.6. Неявний опис типів змінних.

У програмі можна використовувати імена змінних, які не описані явно за допомогою оператора Dim. За замовчуванням, такі змінні мають тип Variant.

Без використання оператора Dim тип змінної можна задати за допомогою символу типу змінної, приписаного останнім до її ім’я. Типи даних і відповідні символи оголошення типу наведені в таблиці (табл. 4.2).

Таблиця 4.2

 

Символи оголошення типу даних

 

Тип даних

Символ оголошення типу

 

Integer

%

 

Long

&

 

Single

!

 

Double

#

 

String

$

 

Currency

@

Приклад 6: alfa%

– змінна цілого типу;

alfa&

– змінна цілого типу подвійної точності

alfa!

– дійсна змінна одинарної точності

alfa#

– дійсна змінна подвійної точності

alfa$

– строкова змінна

alfa@

– змінна грошового формату

86

Зауваження: Для того, щоб забезпечити обов’язкове оголошення всіх використовуваних змінних, необхідно як перший оператор у модулі VBA записати оператор Option Explicit. У цьому випадку спроба використовувати неоголошену змінну викличе повідомлення про помилку.

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

Арифметичний вираз (4.6) являє собою константи, змінні, елементи масивів і функції, з’єднані знаками арифметичних операцій.

Арифметичний вираз (4.6)

Арифметичний вираз являє собою константи, змінні, елементи масивів і функції, з’єднані знаками арифметичних операцій

Кожна арифметична операція має певне старшинство (пріоритет). Найбільш пріоритетна операція виконується в першу чергу. (Для VBA пріоритет операторів співпадає з описаним для MS Excel, за деякими відмінностями) Нижче перераховані знаки арифметичних операцій VBA в порядку зменшення пріоритету.

1)^ – зведення в ступінь;

2)* / – множення і ділення;

3)\ Mod – цілочислове ділення і залишок від ділення (ділення за модулем);

4)+ – – додавання і віднімання.

Зауваження:

1)Знак мінус “-“, що розташований на початку виразу перед змінною (унарний мінус)

іпозначає зміну знаку змінної, має найвищий пріоритет серед арифметичних операцій.

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

3)Операції одного пріоритету виконуються зліва направо.

Приклад 7: Нехай дійсна змінна A1 має значення 5, а дійсна змінна B1 – значення 10. Обчислити наступні вирази:

A1+B1/ 5-1

-A1+B1/ 5-1 (A1+B1)/ 5-1 (A1+B1)/( 5-1)

Обчислені значення виразів будуть, відповідно, дорівнювати 6, -4, 2 і 3,75.

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

Приклад 8:

 

8\3

– результат – ціле число 2;

11,7\3,6

– результат – ціле число 3;

11,7\3,3

– результат – ціле число 4.

Операція Mod (знаходження залишку від ділення) записується в наступному вигляді:

вираз1 Mod вираз2

Результатом операції Mod є залишок від ділення значення “вираз1” на значення “вираз2”. Значення обох виразів попередньо округляються до цілих.

Приклад 9: Арифметичний вираз

19 Mod 6,7

приймає значення 5.

87

3.1. Вбудовані стандартні математичні функції VBA

В арифметичному виразі можуть бути використані як стандартні математичні функції, вбудовані в мову VBA, так і числові функції, створені програмістом (користувальницькі функції). У таблиці 4.3 наведено деякі стандартні математичні функції VBA.

 

 

 

 

 

 

Таблиця 4.3

 

 

 

 

Деякі стандартні математичні функції VBA

Математич-

Ім’я функ-

 

Опис

ний запис

ції в VBA

 

 

sin x

Sin(число)

 

Повертає значення типу Double, що містить синус кута.

 

 

 

 

 

 

 

cos x

Cos(число)

 

Повертає значення типу Double, що містить косинус кута.

tg x

Tan(число)

 

Повертає значення типу Double, що містить тангенс кута.

arctg x

Atn(число)

 

Повертає значення типу Double, що містить арктангенс числа.

 

 

 

 

 

 

 

 

ex

Exp(число)

 

Повертає значення типу Double, що містить результат зве-

 

 

 

 

 

 

дення числа e (основа натуральних логарифмів) у зазначе-

 

 

 

 

 

 

ний ступінь.

ln x

Log(число)

 

Повертає значення типу Double, що містить натуральний

 

 

 

 

 

 

логарифм числа.

 

x

Sqr(число)

 

Повертає значення типу Double, що містить квадратний ко-

 

 

 

 

 

 

рінь із заданого числа.

 

x

 

 

Abs(число)

 

Повертає значення, тип якого збігається з типом передано-

 

 

 

 

 

 

 

 

 

го аргументу, рівне абсолютному значенню зазначеного

 

 

 

 

 

 

 

 

 

 

 

 

числа.

 

 

 

 

sign x

Sgn(число)

 

Повертає значення типу Variant (Integer), що відповідає

 

 

 

 

 

 

знаку зазначеного числа.

rand x

Rnd(число)

 

Повертає значення типу Single, що містить випадкове чис-

 

 

 

 

 

 

ло в інтервалі від 0 до 1. Аргумент не обов’язковий.

]x[

Int(число)

 

Повертає значення типу, що збігає з типом аргументу, що

 

 

 

 

Fix(число)

 

містить цілу частину числа.

Аргумент "число" зазначених у таблиці функцій може представляти будь-який припустимий в VBA арифметичний вираз.

Як видно з таблиці, в VBA немає функцій ctg(x), arcsin(x), arccos(x), arcctg(x), lg(x).

Для обчислення цих функцій можна скористатися відомими формулами:

ctg (x)=

1

 

 

x

 

 

 

1 x2

 

 

;

arcsin(x)= arctg

 

 

;

arccos (x)= arctg

 

;

tg (x)

 

 

 

 

 

1 x2

 

 

 

x

 

arcctg (x)= arctg (x)+ 2 arctg (1)

Логарифм по будь-якій основі N обчислюється за формулою logN (x)=

ln(x)

.

 

 

ln(N )

В арифметичних виразах VBA можна використовувати функції, вбудовані в Excel. Для цього в достатньо записати конструкцію наступного виду:

Application.WorksheetFunction.функція_Excel(аргументи)

88

Наявність крапки між службовими словами Application, WorksheetFunction і ім’ям функції Excel є обов’язковою.

Наприклад, для обчислення функції arcsin(x) можна скористатися відповідною функ-

цією Excel у такий спосіб: Application.WorksheetFunction.asin(x).

З урахуванням функцій, арифметичні вирази VBA обчислюється в наступному порядку (по убуванню пріоритету):

1)унарний мінус;

2)вирази в круглих дужках;

3)функції;

4)зведення в ступінь;

5)множення та ділення;

6)цілочислове ділення і ділення за модулем;

7)додавання і віднімання.

Приклад 10. Записати наступні математичні формули у вигляді арифметичних виразів VBA

5 x + sin3 (x + a)

ea sin x + 1 + ln( x + 2)

У вигляді арифметичних виразів VBA математичні формули будуть мати вид:

5 x + sin( x + a )^ 3

Exp(a sin(x))+ Sqr (1 + Log (Abs (x) + 2))

§4. Логічні вирази

Логічний вираз (4.7) – це вираз, що приймає одне із двох логічних значень: True («ИСТИНА») або False («ЛОЖЬ»).

Логічний вираз (4.7)

Логічний вираз – вираз, що приймає одне із двох логічних значень: True («ИСТИНА») або

False («ЛОЖЬ»)

4.1. Вирази відносини

Найпростішим логічним виразом є вираз відносини. Вираз відносини (порівняння) – це два арифметичних вирази, з’єднані знаком операції відносини. Нижче наведені знаки операцій відносини в VBA

<менше,

>більше,

<=

менше або дорівнює,

>=

більше або дорівнює,

=

дорівнює,

<>

не дорівнює.

Приклад 11:

 

a > b - c; sin(x) <= 0,5

При значеннях a = b = c = 1, перший з наведених виразів приймає значення True (1 > 0 – "ИСТИНА"), а при значеннях a = 1, b = 2, c = 1 приймає значення False ( 1 > 1 – "ЛОЖЬ").

4.2. Основні логічні операції

Логічні операції виконуються тільки над операндами логічного типу. Нижче наведена таблиця (табл. 4.4) основних логічних операцій VBA із зазначенням можливих значень і в порядку зменшення пріоритету.

89