
- •Работа со встроенным языком макросов офисного пакета OpenOffice.Org visual basic application (vba)
- •Лабораторная работа № 1 Автоматическое создание макросов
- •1. Запись макроса
- •Лабораторная работа № 2 Создание макросов
- •Задание 1
- •Задание 2
- •Лабораторная работа № 3 Создание функций
- •Задание 1
- •Задание 2
- •Лабораторная работа № 4 Условные операторы
- •Задание 1
- •Задание 2 Написать функцию OpenOffice.Org Basic для вычисления корней квадратного уравнения , где коэффициенты a, b и с задаются пользователем.
- •Лабораторная работа № 5 Циклические операторы
- •Задание 1
- •Список литературы
Задание 1
Откройте новый документ Calc и сохранить его под именем «Лабораторная работа_3».
Откройте новый модуль Бэйсика с помощью команды меню Сервис-> Макросы->Управление макросами->OpenOffice.org Бэйсик, в открывшемся окне выбрать свой файл «Лабораторная работа_3», в нем выберите пункт «Standart» и нажмите кнопку «Создать», находящуюся на панели справа.
В открывшемся окне редактора сотрите все, что есть и наберите следующий код:
Function QH(Q, P)
QH=Q*(100-P)/100
End Function
Закройте окно редактора.
Заполните следующую таблицу на листе Calc (рис. 16).
Рис. 16. Таблица данных
В ячейке «С2» наберите «=QH(A2,B2)» и нажмите «Enter» (в ячейке «А2» – значение параметра Q, в ячейке «В2» – значение параметра P)
Сохраните файл.
Самостоятельно
Написать функцию, рассчитывающую сумму налога НДС с выручки, и использовать ее.
Задание 2
Написать функцию OpenOffice.org Basic для следующей функции пользователя, используя ее дополнить таблицу вычисленными значениями и построить график зависимости y=y(x):
Откройте новый документ Calc и сохраните его под именем «Лабораторная работа_3».
Откройте новый модуль Бэйсика с помощью команды Сервис-> Макросы->Управление макросами->OpenOffice.org Бэйсик, в открывшемся окне выберите свой файл «Лабораторная работа_3», в нем выберите пункт «Standart» и нажмите кнопку «Создать», находящуюся на панели справа.
Поскольку программу с длинными строками отлаживать неудобно, то напишем тело функции из нескольких строк. В открывшемся окне редактора сотрите все, что есть и наберите следующий код:
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-Atn(x^3+1)
FY=FY+Exp(-x)-Tan(x^3.13)
FY=FY+Sqr(x)+Cos(x+1)
End Function
Сохраните файл программы.
Закройте окно редактора.
На листе Calc заполните столбец А значениями х от -10 до 10.
В столбце В рассчитайте по функции FY значение заданного выражения. Для этого в ячейке В1 введите «=FY(A1)».
Постройте график зависимости y(x).
Сохраните файл.
Самостоятельно
Написать функцию, рассчитывающую значения y=x2+lnx+10,46 – tg x для x от 1 до 20.
Лабораторная работа № 4 Условные операторы
Программа может выполняться не только последовательно, но и, встретив условие, изменить свой ход. Например, при расчете корней квадратного уравнения на первом шаге рассчитывается дискриминант, затем в зависимости от его значения могут быть варианты расчета, либо рассчитываются два корня, либо один, либо уравнение не имеет корней.
Для этого используется оператор if ..then:
If условие then
Команды1
Else
Команды2
End If
Если условие истинно, то выполняются команды1, если ложно, то команды2.
Задание 1
Расчет квадратного
уравнения вида
,
где коэффициенты a,
b
и с задаются пользователем.
Откройте новый документ Calc и сохраните его под именем «Лабораторная работа_4_1».
Откройте новый модуль Бэйсика с помощью команды Сервис-> Макросы->Управление макросами->OpenOffice.org Бэйсик, в открывшемся окне выберите свой файл «Лабораторная работа_4_1», в нем выберите пункт «Standart» и нажмите кнопку «Создать», находящуюся на панели справа.
В открывшемся окне редактора набрать следующий код между Sub Main и End Sub:
Dim s as String
Dim a, b, c, d, x1, x2, x as double
S=InputBox(«Введите значение коэффициента а»)
A = val(s)
S=InputBox(«Введите значение коэффициента b»)
b = val(s)
S=InputBox(«Введите значение коэффициента c»)
c = val(s)
d=b*b-4*a*c
if D>0 then
x1=(-b+sqr(d))/(2*a)
x2=(-b-sqr(d))/(2*a)
MsgBox («X1=» & str(x1) & « X2=» & str(x2))
else
if D=0 then
x=-b/(2*a)
MsgBox(«x=» & str(x))
else
MsgBox(«Корней нет»)
endif
endif
4. Запустите программу, нажав на зеленую стрелку.
5. Сохраните файл.
Самостоятельно
Написать
процедуру, рассчитывающую значение
функции
.