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

08_pz_pio

.pdf
Скачиваний:
13
Добавлен:
26.03.2015
Размер:
851.94 Кб
Скачать

11

ПРАКТИЧНЕ ЗАНЯТТЯ 2 АВТОМАТИЧНЕ СТВОРЕННЯ МАКРОСІВ В ТАБЛИЧНОМУ РЕДАКТОРІ

2.1 Мета

Вивчення створення найпростіших макросів в OpenOffice.org Calc.

2.2 Завдання

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

Хід виконання аналогічний завданню 1.

2.3 Контрольні питання

1. Яка послідовність дій для створення макросу в автоматичному режимі? 2. Опишіть структуру редактора VBA.

3. Що таке клас? Приведіть приклади.

4. Що таке метод? Приведіть приклади.

5. Що така властивість? Приведіть приклади.

2.4 Рекомендована література

[3] с. 11-24, [1] с. 164-189.

2.5 Варіанти завдань

1.Макрос, що центрує вміст комірки і змінює розмір і шрифт символів в комірки.

2.Макрос, що міняє колір і розмір символів комірки.

3.Макрос, що міняє місцями вміст двох комірок.

4.Макрос, що встановлює назву робочого аркуша.

6.Макрос, що робить автозаповнення рядка комірок місяцями року.

7.Макрос, що копіює вміст однієї комірки в іншу.

8.Макрос, що міняє місцями два заданих аркуші робочої книги.

9.Макрос, що додає новий рядок над заданим рядком.

10.Макрос, що вставляє формулу в комірку.

11.Макрос, що додає новий стовпець ліворуч від заданого стовпця.

12.Макрос, що міняє місцями задані рядки.

12

13.Макрос, що міняє місцями задані стовпці.

14.Макрос, що поєднує дві комірки.

15.Макрос, що поєднує два рядки.

16.Макрос, що привласнює комірки ім'я і центрує її зміст.

17.Макрос, що привласнює ім'я діапазону комірок.

18.Макрос, що видаляє зміст рядка.

19.Макрос, що центрує стовпець.

20.Макрос, що додає в комірку текст заданого кольору.

21.Макрос, що змінює розмір комірки.

22.Макрос, що змінює колір тла комірки і колір символів.

23.Макрос, що змінює формат введеного в комірку числа.

24.Макрос, що змінює колір тла комірки і колір символів.

25.Макрос, що видаляє весь зміст робочої книги.

13

ПРАКТИЧНЕ ЗАНЯТТЯ 3 КОРИСТУВАЛЬНИЦЬКІ ФОРМИ. ОПЕРАТОР ІF-THEN-ELSE.

3.1 Мета

Вивчення створення найпростіших програм мовою Basic з використанням користувальницьких форм (діалогів). Застосування оператора ІF-THEN-ELSE.

3.2 Завдання

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

3.3 Рекомендації до виконання

Відкрийте середовище Openoffіce.org Calc і створіть чисту книгу. Збережіть книгу, надавши їй ім’я, наприклад “pz3.ods”.

Відкрийте вікно керування діалогами Сервіс → Макроси → Керування діалогами. У розділі Мої Діалоги → Standart додайте новий діалог і призначте йому ім'я, наприклад Dіalog1. Перейдіть у режим редагування діалогів шляхом натискання на кнопку „Правка” (рис. 3.1).

Розмістить на формі елементи керування „Кнопка” (CommandButton), „Мітка” (Label), „Текстове поле” (Textfіeld). Для даних елементів змінить властивості „Текст” таким чином, як показано на рис.3.2.

14

Рисунок 3.1 – Редактор діалогу.

Рисунок 3.2 – Рекомендований інтерфейс діалогу.

Для того, щоб мати можливість відобразити діалог з вікна табличного редактору, розмістимо на його аркуші кнопку. По натисканню на неї буде

15

відображатися діалог. Для цього створіть макрос, що містить наступний програмний код:

Sub Dialog1Show DialogLibraries.LoadLibrary( "Standard" )

oDialog1=CreateUnoDialog(DialogLibraries.Standard.Dialog1)

oDialog1.Execute() End Sub

Прив'яжіть подію, що виконується при натисканні на кнопку, створеному макросу. Це досягається шляхом натискання правої кнопки миші на елементі

"Кнопка" (рис.3.3).

Рисунок 3.3 – Відкриття властивостей об’єкту.

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

Для правильної роботи діалогу необхідно створити об'єкт діалогу, це досягається шляхом додавання на початку програмного коду рядка:

Dim oDialog1 AS Object

Даний рядок описує діалог з назвою oDіalog1.

Створіть порожню процедуру (макрос) у наявному модулі з назвою Solver і прив'яжіть її до події натискання на кнопку, яка перебуває на формі (у цьому випадку кнопка "Обчислити"). Перевірте правильність прив'язки події, наприклад додавши в Solver рядок

16

MsgBox “Hello World!”

Після даної дії необхідно перейти до написання процедури Solver, яка буде обчислювати функцію f(x) залежно від введеного значення х. Для звертання до елементів на формі треба використовувати наступне. По-перше необхідно створити об’єкт елементу таким чином:

Об'єкт1 = НазваДіалогу.GetControl(“Назва_елементу_на_формі”)

Далі, для одержання значення введеного тексту треба використовувати наступний запис:

Змінна1 = Об'єкт1.Text

Наприклад, для одержання значення, що було введено у елемент TextField1 та збереження його у змінній A, треба використовувати наступний код:

ObjA = oDialog1.GetControl("TextField1")

A = ObjA.Text

Для виводу значення змінної A у елемент TextField1 використовується запис:

ObjA.Text = A

При програмуванні обчислення складної функції, використовується умовний оператор ІF-THEN-ELSE, який має наступний синтаксис:

IF умова

THEN блок_операторів_1

ELSE блок_операторів_2

END IF

Наприклад, для функції

6 +

ex

 

x >1

 

 

 

 

 

4 < x 1 ,

f (x) = 2x

e

 

+ x

e

2 x

x

x ≤ −4

 

 

 

 

 

 

 

 

 

 

умовний оператор буде наступний:

IF x>1 THEN y=exp(x)^(1/2) ELSE

17

IF x<=-4 THEN

y= exp(2*x)-exp(x)+x ELSE

y=5*x

ENDIF ENDIF

Створіть макрос, зробіть його налагодження, тестування, перевірку на правильність розрахунків.

3.4 Контрольні питання

1. Запишіть загальний синтаксис оператора ІF-THEN-ELSE. 2. Які типи даних використаються у Basic?

3. Що таке функція? У чому її відмінність від процедури? 4. Запишіть загальний синтаксис опису процедури.

5. Як створити користувальницьку форму?

3.5 Рекомендована література

[3] с. 25-49, [1] с. 189-216.

3.6 Варіанти завдань

 

 

2

(ln x +1)

3

2

ln(x +1) x >1

 

 

 

 

 

3

 

1.

 

 

 

 

4 < x 1

 

 

 

 

f (x) = tgx ctgx 2x

 

e2 x ex + x

 

 

x ≤ −4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

lg ln x

 

 

 

 

x 3

2.

 

 

e

x

1

2arctg

e

x

0

< x < 3

f (x) = 2

 

 

 

 

хe

x

(sin x cos x)

 

 

 

x 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

sin ln x

 

x >1

 

 

 

3.

 

3e2 x

2

 

1 x 1

f (x) = 5

 

 

 

 

 

 

3x

 

 

 

 

 

 

 

 

 

 

 

x ≤ −1

 

 

x3 11

 

 

 

 

 

 

 

 

x2 34 2x2 +4

x > 0

5.

 

 

 

x

sin x

3

1

x 0

f (x) = 2e

 

 

 

 

 

2x

 

 

 

x < −1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2 34 2x2 +4 x > 0

4.

 

 

 

x

sin x

3

1 x 0

f (x) = 2e

 

 

 

 

 

2x

 

 

 

 

 

 

x < −1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

1)

0 x 1

 

ch(x

 

6.

 

1

 

 

 

 

 

 

x >1

 

 

 

 

 

 

 

 

 

f (x) = e3x + x

 

 

 

 

 

|

x |

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x < 0

 

 

 

 

 

 

 

 

 

 

 

arctg3x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

18

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ln e3x +1 + x

x >1

 

 

cos3x sin 5x

 

2 x 2

 

 

 

2

 

 

x

 

 

 

 

 

 

 

x

 

 

 

 

 

7.

 

x

+2

1

x 1

8.

 

 

 

+3

 

 

x > 2

f (x) =

 

 

f (x) = arctge

 

 

 

 

 

sh2x

 

 

x < −1

 

 

 

x

 

 

 

 

x < −2

 

 

 

 

 

 

x 4 3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cos3x sin 5x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 x 2

 

 

 

| cos x |sin x

 

2 < x < 3

9.

 

arctgex

+3

x > 2

 

10.

 

 

 

 

 

 

 

 

 

x 3

f (x) =

 

f (x) = shx arctg(chx)

 

 

x 4 3 x

 

x < −2

 

 

 

 

 

11x

 

 

 

 

 

 

 

 

 

 

 

 

 

x ≤ −2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x +11

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

(ln x +1)

3

2ln(x +1) x >1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

sh sin x ch cos x 3 < x < 3

 

3

 

 

11.

 

 

 

 

0,1x

 

 

 

 

 

(x ctgx)2x

4 < x 1

f (x) = 1e

 

 

 

x 3 12. f (x) = tg

 

 

 

 

 

1

 

 

 

 

 

 

2 x ex 1 + x

 

x ≤ −4

 

 

 

 

 

x

 

 

x ≤ −3

 

e

 

 

1+e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3x +1

+ x

x >1

 

ln e

 

 

 

13.

 

 

x

2

+

2

x

 

1 x 1

f (x) =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x < −1

 

sh2x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2sin x cos x

 

 

2 x 2

15.

 

| cos x |1/ x

 

x < −2

f (x) =

 

 

shx

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x > 2

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ln lg x

 

 

 

x 3

17.

 

 

 

 

 

 

 

e

x

0 < x < 3

f (x) = 2arctg

 

 

 

 

хe

x

(sin x cos x) x 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2 34 2x2 +4

x > 0

14.

 

2e

x

sin(x

3

)

1 x 0

f (x) =

 

 

 

 

 

2x

 

 

 

 

 

x < −1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

sin ln x

 

 

x >1

 

 

 

 

 

16.

 

5

3e

2 x2 +sin x

 

1 x 1

f (x) =

 

 

 

 

 

 

 

 

 

 

3 3x

 

 

 

 

 

 

 

 

 

 

 

x ≤ −1

 

 

 

 

x

2

11

 

 

 

 

 

 

 

 

 

 

 

cos3x sin 5x

2 x 2

18.

 

 

x > 2

f (x) = arctgex +3

 

 

x 4 3 x

x < −2

 

 

19

 

 

 

 

 

 

 

ch(x2 1) 0 x 1

 

sh sin x ch cos x 3 < x < 3

 

 

1

 

 

19.

 

 

0,1x

x 3

20.

 

 

 

x >1

 

 

 

f (x) = 1e

 

 

f (x) = e3x + x

 

 

 

 

1

 

 

arctg3x

x < 0

 

 

1+e

x

x ≤ −3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

1)

 

 

1 x 2

 

ch(x

 

 

 

21.

 

1

 

 

 

x

 

 

 

x > 2

 

 

 

 

 

 

 

f (x) = e3x +

 

 

 

 

 

 

 

| x |

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x <1

 

 

 

 

 

 

 

 

 

 

 

 

arctg3x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cos 2x sin 4x

2 x 2

23.

 

 

 

 

 

 

 

 

 

 

x > 2

f (x) = arctgex +1 +3

 

 

 

 

 

 

 

 

 

 

 

x < −2

 

x 4 3 x

 

 

 

 

 

 

 

 

 

 

 

3x +1

 

 

 

2x ln e

+ x

x >1

 

 

 

 

25.

 

sin x

2

+

2

x

 

1 x 1

f (x) =

 

 

 

 

 

3 sh2x

 

 

 

x < −1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ln e3x +1 + x

22. f (x) = 2x

sh2x

ln ex2 +2 + x

24. f (x) = 2x x +3 2

sh2x

x > 3

1 x 3 x < −1

x > 3

1 x 3

x < −1

20

ПРАКТИЧНЕ ЗАНЯТТЯ 4 РОБОТА З ОБ'ЄКТАМИ ТАБЛИЧНОГО РЕДАКТОРУ.

ОПЕРАТОРИ ЦИКЛУ

4.1 Мета

Вивчення застосування доступу до об'єктів книги табличного редактору. Застосування операторів циклу FOR-NEXT, WHІLE-WEND, DO-LOOP.

4.2 Завдання

Створити за допомогою Basic макрос, що будує на аркуші книги OOO Calc таблицю залежності значень складної функції від аргументу. Після закінчення роботи програми користувачеві повинне видатися повідомлення "Таблиця побудована". Функція і вхідні дані обираються відповідно до варіанта.

4.3 Рекомендації до виконання

Запустіть табличний редактор OOO Calc і створіть чисту книгу. Розташуйте на аркуші кнопку, з написом "Побудувати таблицю".

Для цього файлу створіть макрос, який містить процедуру, що виводить повідомлення „Hello World”. Зв’яжіть його із подією „натискання клавіші миші” кнопки, що знаходиться на листі. Перевірте роботу процедури.

Далі треба переходити до написання програмного коду.

Опишіть змінні a, b, h для вхідних даних і привласніть їм значення відповідно до свого варіанта. Створіть функцію для обчислення значень f(x). Перед написанням макросу необхідно зробити вибір типу циклу.

Для виводу тексту у комірку або для отримання тексту із комірки листа книги, використовується конструкція:

ThisComponent.Sheets(NSheet).getCellByPosition(C,R).String

де NSheet – номер листа книги (нумерація починається з 0), С – номер стовпця (нумерація починається з 0),

R – номер строки (нумерація починається з 0).

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

ThisComponent.Sheets(NSheet).getCellByPosition(C,R).Value

Наприклад, для виводу на першому листі в комірку „А1” значення змінної N, потрібно записати код:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]