Читайте также:
|
|
Константи мають фіксоване значення. Вони визначаються в програмі тільки раз і не можуть бути перевизначені пізніше.
CONST ConstName = Expression
Бібліотеки
Бібліотеки слугують інструментом організації модулів і можуть приєднуватися до документа або шаблону. При збереженні документа або шаблону всі модулі, що містяться в бібліотеці, також автоматично зберігаються.
Бібліотека може включати до 16000 модулів.
Модулі
Поряд з оголошенням змінних модуль містить процедури та функції. Довжина програми, яку можна зберегти в модулі, обмежена 64 КБ. Якщо вимагають пам'яті більшого обсягу, можна розділити проект OpenOffice.org Basic між декількома модулями і потім зберегти їх в одній бібліотеці.
Модулі діалогових вікон
Модулі діалогових вікон можуть містити визначення діалогових вікон, у тому числі властивості діалогового вікна, властивості кожного елемента діалогового вікна і призначені події.
Підпрограма
Sub - коротка форма слова subroutine (підпрограма). Підпрограма використовується для керування конкретним завданням у програмі. Підпрограми служать для розбиття задачі на окремі процедури. Розбиття програми на процедури і підпроцедури покращує читаність і зменшує можливість виникнення помилок. Підпрограма по можливості використовує деякі параметри як аргументи, але не повертає значення викликаної підпрограмі або функції, наприклад:
DoSomethingWithTheValues (MyFirstValue, MySecondValue)
Функція
Функція, по суті, є підпрограмою, що повертає значення. Функцію можна використовувати в правій частині опису змінної або в інших місцях, де зазвичай використовуються значення, наприклад:
MySecondValue = myFunction (MyFirstValue)
Операція розгалудження
Інструкція If... Then використовується для виконання ділянок програми в залежності від заданих умов. Коли OpenOffice.org Basic зустрічає інструкцію If, то перевіряється логічна умова. Якщо її значення дорівнює True, то виконуються всі подальші інструкції аж до наступної інструкції Else або ElseIf. Якщо значення умови дрівнює False і зустрічається інструкція ElseIf, то OpenOffice.org Basic перевіряє наступну умову і якщо її значення True виконує подальші інструкції. Якщо воно дорівнює False, програма переходить до наступної інструкції ElseIf або Else. Інструкції після Else виконуються тільки в тому випадку, якщо жодна з попередніх умов не дорівнювало True. Після того, як всі умови перевірені і відповідні інструкції виконані, програма переходить до інструкції, наступної за EndIf.
Інструкції If... Then можна вкладати одну в іншу.
Else і ElseIf - необов'язкові інструкції.
Наприклад:
If a> 0 Then
MsgBox "a> 0"
End If
Інструкція Do... Loop [час виконання]
Повторює інструкції між інструкцією Do і Loop, поки умова дорівнює True або поки умова не стане True.
Синтаксис
Do [(While | Until) Умова = True]
Ділянка_програми
[Exit Do]
Ділянка_програми
Loop
або
Do
Ділянка_програми
[Exit Do]
Ділянка_програми
Loop [(While | Until) Умова = True]
Параметри / Елементи
Умова. Порівняння, числове або рядковий вираз, який обчислюється або як True, або як False.
Ділянка_программи. Інструкції, які потрібно повторювати, доти поки умова дорівнює True або поки умова не стане дорівнювати True.
Інструкція Do... Loop виконує цикл, доки певна умова дорівнює True або поки вона не стане дорівнювати True. Умова для виходу з циклу має бути введена після інструкції Do або Loop. У наступних прикладах представлені допустимі комбінації:
Синтаксис
Do While Умова = True
Ділянка_програми
Loop
Ділянка програми між інструкціями Do While і Loop повторюється, доти поки умова істинна.
Do Until Умова = True
Ділянка_програми
Loop
Ділянка програми між інструкціями Do Until і Loop повторюється, доти поки умова помилкова.
Do
Ділянка_програми
Loop While Умова = True
Ділянка програми між інструкціями Do і Loop повторюється, доки умова правдива.
Do
Ділянка_програми
Loop Until Умова = True
Ділянка програми між інструкціями Do і Loop повторюється, доки умова не стане істинною.
Інструкція Exit Do використовується для безумовного завершення циклу. Цю інструкцію можна додавати в будь-якому місці інструкції Do... Loop. Також можна визначити умову виходу, використовуючи структуру If... Then наступним чином:
Do...
інструкції
If Умова = True Then Exit Do
інструкції
Loop...
Інструкція For... Next [час виконання]
Повторює інструкції між For і Next вказане число разів
Синтаксис:
For Лічильник = Початок To Кінець [Step Крок]
Ділянка_програми
[Exit For]
Ділянка_програми
Next [Лічильник]
Змінні:
Лічильник. Лічильнику циклів спочатку присвоюється значення праворуч від знаку рівності (Початок). Допустимі тільки числові змінні. Лічильник циклів збільшується або зменшується залежно від значення змінної Крок до досягнення значення Кінець.
Початок. Числова змінна, яка визначає початкове значення лічильника на початку циклу.
Кінець. Числова змінна, яка визначає останнє значення лічильника в кінці циклу.
Крок. Визначає значення, на яке збільшується або зменшується лічильник циклу. Якщо параметр Крок не вказаний і параметр Кінець більше, ніж параметр Початок, то лічильник циклу збільшується на 1. Якщо потрібно зменшувати параметр Лічильник, параметр Кінець повинен бути менше параметра Початок, а параметру Крок необхідно присвоїти від'ємне значення.
Цикл For... Next повторює всі дії в циклі число разів, яке визначається параметрами.
У міру зміни змінної лічильника OpenOffice.org Basic перевіряє, чи досягнуто значення Кінець. Після проходження лічильником кінцевого значення цикл автоматично завершується.
Інструкції For... Next можуть бути вкладеними. Якщо змінна, наступна за інструкцією Next, не вказана, інструкція Next автоматично посилається на саму останню інструкцію For.
Якщо задається приріст 0, інструкції між For і Next повторюються безперервно.
При відліку змінної лічильника OpenOffice.org Basic перевіряє переповнення або втрату значимості. Цикл завершується, якщо значення Лічильник перевищує значення Кінець (позитивне значення Крок) або стає менше значення Кінець (від'ємне значення Крок).
Інструкція Exit For використовується для безумовного завершення циклу. Ця інструкція повинна знаходитися всередині циклу For... Next. Використовуйте інструкцію If... Then для перевірки умови виходу в такий спосіб:
For...
інструкції
If Умова = True Then Exit For
інструкції
Next
Примітка. У вкладених інструкціях For... Next, якщо проводиться безумовний вихід з циклу за допомогою інструкції Exit For, відбувається вихід тільки з одного циклу.
Хід роботи
1) Автоматичне створення макросів
·Створіть нову робочу книгу, дайте їй назву „Лабораторна робота 7”
· На Листі1 створіть таблицю та отформатуйте її згідно зразку:
Примітка: Оскільки функція Автозаповнення у OpenOffice Calc не підтримує українську мову, будемо заповнювати таблицю використовуючи російські назви
·Виконайте команду Сервис => Макросы => Записать макрос
·За допомогою автозаповнення заповніть першу колонку до 10
·Натисніть кнопку «Завершить запись»
·З'явиться діалогове вікно Макрос, в якому можна зберегти і виконати макрос
Щоб зберегти макрос у файлі лабораторної роботи, спочатку у списку Сохранить макрос в виберіть об'єкт Лабораторна робота 7. У бібліотеці Standart створіть новий модуль натисканням на кнопку Новый модуль. Дайте йому назву MyModule. Дайте макросу назву Zadanie1 та натисніть кнопку Записать.
·Очистіть в першій колонці клітинки до початкового вигляду, тобто залиште заповнення тільки у перший і другий клітинці колонки
·Встановіть курсор у клітинку A1 і виконайте команду Сервис – Макросы – Выполнить макрос
·У вікні «Выбор макроса» знайдіть ваш макрос та натисніть кнопку «Выполнить»
·Збережіть документ
Як ви бачите, в результаті виконання вправи макрос вийшов дуже обмежений. Він виконує автозаповнення тільки в колонці A і тільки до десяти. Для того, щоб зробити макрос універсальним, необхідно скористатися вбудованим редактором розробки макросів і вручну додати йому необхідні можливості. У OpenOffice.org є можливість розробляти макроси на різних мовах програмування, але в даній роботі ми скористаємося OpenOffice.org Basic (Бейсік).
·Виконайте команди меню Сервис – Макросы - Управление макросами - OpenOffice.org Basic
·У діалоговому вікні Макрос виберіть макрос «Zadanie1» та натисніть кнопку Редактировать
·У вікні редактора знайдіть процедуру Sub Zadanie1. Саме ця процедура запускається на виконання, коли ви запускаєте макрос
·Відредагуйте процедуру приблизно як в лістингу (коментарі писати не обов'язково):
Універсальний макрос автозаповнення
sub Zadanie1
rem ----------------------------------------------------------------------
rem Блок оголошення змінних
dim document as object ' Посилання на об'єкт документ
dim dispatcher as object ' посилання на об'єкт сервіс UNO
dim Selection As object ' Посилання на виділену область у документі
dim CurRowNumber as Long ' Номер рядка на якому стоїть курсор
dim EndRowNumber as Long ' Змінна в яку записується введене значення
dim StartCell As String ' Текстове посилання на поточну клітинку
dim EndCell As String ' Текстове посилання на останню клітинку
rem ----------------------------------------------------------------------
rem Тут визначаємо змінні для доступу до документу
document = ThisComponent.CurrentController.Frame ' Поточний документ
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
Selection = document.Controller.Selection ' Виділення
' Номер поточного рядка (рахунок з нуля)
CurRowNumber= Selection.CellAddress.Row
' Ім’я поточного стовпця
CurColumnName= Selection.Columns.ElementNames(0)
' Методом конкатенації формуємо адреси клітинок
StartCell= "$" & CurColumnName & "$" & CStr(CurRowNumber+1) ' Початкова клітинка
' Просимо користувача ввести число рядків і
' додаємо це число до номера поточного рядка
EndRowNumber= CurRowNumber+CLng(InputBox("Введите число:"," Введення кількості рядків (Max 65536)","10"))
' адреса останньої клітинки
EndCell= "$" & CurColumnName & "$" & CStr(EndRowNumber)
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
' Закоментуємо значення, яке введене автоматично
' і замінимо значення змінної для початкової клітинки
args1(0).Value = StartCell '"$A$1:$A$2"
' Завдання стартовій позиції
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "EndCell"
' Замінюємо значення на змінну кінцевої клітинки
args2(0).Value = EndCell '"$A$10"
' Запускаємо функцію автозаповнення
dispatcher.executeDispatch(document, ".uno:AutoFill", "", 0, args2())
rem Закоментуємо зайві інструкції ----------------------------------
'rem dim args3(0) as new com.sun.star.beans.PropertyValue
'args3(0).Name = "ToPoint"
'args3(0).Value = "$A$1:$A$10"
'dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())
end sub
·Збережіть отриманий макрос командою Файл - Сохранить, в редакторі OpenOffice Basic
·Для призначення макросу комбінації клавіш виконайте команду Сервис - Настройка та відкрийте вкладку Клавиатура
·У діалоговому вікні у полі Категория виділіть модуль, в якому розташований макрос «Zadanie1», в полі Функция виділіть макрос, після чого в полі Комбинация клавиш виберіть вільну комбінацію і натисніть кнопку «Заменить»
·Натисніть кнопку ОК
·Використовуючи комбінацію клавіш, яка призначена на макрос, заповніть список днів тижня і місяців року
·Самостійно розгляньте діалог налаштування (Сервис - Настройки), назначте макрос «Zadanie1» на панель інструментів і створіть нове меню Макросы, до якого також назначте макрос.
Примітка: Використовуйте довідку OpenOffice.org. для виконання завдання
·Збережіть документ
2) Ручне створення макросів
·Відкрийте редактор OOo Basic, використовуючи меню Сервис - Макросы – Управление макросами - OpenOffice.org Бейсик, щоб почати діалог макросів Macro. З лівого боку вікна діалогу знайдіть модуль MyModule. Введіть назву макросу Helloworld та натисніть кнопку Создать.
·У відчинену середу редагування та налагодження макросів OOo Basic IDE введіть текст, наведений у наступному лістингу:
Sub Main
Print "Hello World"
End Sub
·Клацніть на кнопці із зеленим трикутником ("Выполнить BASIC") у верхній панелі для виконання макросу OOo Basic.
·Створіть самостійно макрос, що складається з процедури і функції за допомогою листингу:
Sub HelloWorld
Dim s As String
s = HelloWorldString()
MsgBox s
End Sub
Function HelloWorldString() As String
HelloWorldString = "Hello World"
End Function
·Самостійно вдоскональте макрос, додавши в нього можливість введення користувачем свого імені, щоб програма вітала творця. Продемонструйте результат викладачу.
Підказка: використовуйте функцію InputBox ()
·Виконайте наступне завдання:
Написати програму на OpenOffice.org Basic для функції користувача, яка обчислює отриману споживачем електроенергію QH використовуючи кількість електроенергії Q, яка виробляється виробником, і величину втрат P (%) при її передачі: QH = Q (100-P) / 100. Заповнити клітинку С2 такої таблиці з використанням побудованої функції користувача
·Перейдіть на Лист2 та створіть наступну таблицю
Викличте редактор OOo Basic. Виберіть в діалозі вибору макросу пункт відповідний назві документу, і натисніть кнопку «Создать». У вікні, що з'явилося, напишіть наступний текст програми:
Function QH(Q, P)
QH=Q*(100-P)/100
End Function
Поверніться у вікно Робочого листа 2, і за допомогою миші виберіть клітинку С2, в яку необхідно внести число, що обчислюється по щойно створеній для користувача функції. Для цього клацніть лівою кнопкою миші в полі введення формул і напишіть такий рядок:
= QH (A2; B2)
де QH назва щойно написаної функції, A2 адресу клітинки для аргументу Q, B2 адресу комірки для аргументу P. Після цього натисніть клавішу Enter на клавіатурі. У результаті в клітинку С2 запишеться значення функції QH.
·X | ·0,10 | ·0,15 | ·0,20 | ·0,25 | ·0,30 | ·0,35 | ·0,40 | ·0,45 | ·0,50 |
·Y | · | · | · | · | · | · | · | · | · |
·Виконайте наступне завдання:
Написати програму на OpenOffice.org Basic для наступної функції користувача, використовуючи її доповнити таблицю вичисленими значеннями і побудувати графік залежності y = y (x):
Оскільки з програму з довгими рядками налагоджувати незручно, то напишемо тіло функції з кількох рядків:
Function FY(x)
a=1+Abs(0.2-x)
b=1+x+x*x
FY=a/b+Sin(x)
FY=FY+Log(x+2)
FY=FY-Tan(x^3+1)
FY=FY+Exp(-x)-Tan(x^3.13)
FY=FY+Sqr(x)+Cos(x+1)
End Function
Далі проведіть розрахунки з використанням даної функції користувача і заповніть таблицю.
Для побудови графіка залежності y = y (x) виберіть Вставка - Диаграмма. Виберіть тип діаграми «Лінії», «Тільки точки». Натисніть кнопку далі, і в полі вводу «Діапазон даних» введіть діапазон
$A$1:$J$2
відзначте пункт «Ряди данных в строках» і включіть пункти «Первая строка как подпись», «Первуй столбец как подпись». Натисніть кнопку «Далее» два рази. У заголовку вісь X введіть символ X, а вісь Y введіть символ Y.
Самостійно попрацюйте з цим графіком з метою поліпшення його вигляду.
·Самостійно виконайте наступні завдання:
Скласти програму на OOo Basic для визначення функції користувача y = f(x), заповнити таблицю значеннями функції при зміні аргументу в самостійно обраному діапазоні і побудувати графік залежності
y = f (x):
·y=x2+lnx+10,46 – tg x
·y=x25+ln| x+10,46| – tg x
·
·Побудуйте функцію користувача для обчислення вартості товару з ПДВ за його вартості без ПДВ і ставки ПДВ. З використанням цієї функції заповніть таблицю, що відображає вартість товарів без ПДВ і з ПДВ. Вхідні дані виберіть самостійно.
Контрольні запитання
·Для чого призначені макроси?
·Який найпростіший спосіб записати макрос?
·На яких мовах програмування можна створювати макроси?
·Як призначити макрос на панель інструментів?
·Як призначити макросу гарячі клавіші?
·Що таке процедура?
·Що таке функція?
·Що таке модуль?
·Як відкрити макрос для редагування?
·Для чого призначаються змінні?
·Яка різниця між процедурою і функцією?
·На які події можна призначити макрос?
·Які види циклів ви знаєте?
·Що таке операція розгалуження?
·Перелічіть основні об'єкти електронної таблиці?
·Чи можливо створити свою функцію?
·Які основні типи змінних існують в OOo Basic?
Література
1.Стоцкий Ю. Самоучитель по Office 2000. - СПб: Питер, 1997. – 576 с.
2. С. Коупстейк. MS Office 97. – М.: Бином, 1997. – 224 с.
3. Н. Николь, Р. Альбрехт. Excel 5.0. Электронные таблицы. М., "Эком", 1994.
Ковригина Е.В. Создание и редактирование электронных таблиц в среде OpenOffice.org: Учебное пособие. – Москва: 2008.— 85 с.
4.Козодаев Р., Маджугин А. OpenOffice.org 3. Полное руководство пользователя. — СПб.: БХВ-Петербург, 2009. — С. 704.
5. Костромин В.А. Самоучитель Linux для пользователя. — СПб.: БХВ–Петербург, 2003. — 672 с.
6. Костромин В.А. OpenOffice.org – открытый офис для Linux и Windows. — СПб.: БХВ–Петербург, 2002. — 546 с.
7. Основы работы в OpenOffice. — М.: «Открытые Системы», 2007.
8. Руководство OpenOffice.org
9. Костромин В.А. OpenOffice.org - открытый офис для Linux и Windows. — СПб.: БХВ-Петербург, 2005. — С. 272.
10. Харламенков А.Е. Философия OpenOffice.org. — М.: 2009.
11. Руководство пользователя OpenOffice.org 2. — СПб.: БХВ-Петербург, 2007. — С. 320.
12. OpenOffice.org pro для профессионала. — второе, исправленное и дополненное. — М: ДМК Пресс, 2008. — С. 448.
13. Питоньяк Э. OpenOffice.org pro Автоматизация работы. — М.: ДМК Пресс, 2008. — С. 512.
114. Хахаев И. А., Машков В. В., Губкина Г. Е. и др. OpenOffice.org: Теория и практика. — М.: ALT Linux, Бином. Лаборатория знаний, 2008. — С. 318.
Дата добавления: 2015-09-07; просмотров: 87 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
СТАВКА(КП; ПВ; СП; КЗ; Т; початкове наближення) | | | Противотанковый гранатомет Panzerfaust 3 |