
- •Работа со встроенным языком макросов офисного пакета OpenOffice.Org visual basic application (vba)
- •Лабораторная работа № 1 Автоматическое создание макросов
- •1. Запись макроса
- •Лабораторная работа № 2 Создание макросов
- •Задание 1
- •Задание 2
- •Лабораторная работа № 3 Создание функций
- •Задание 1
- •Задание 2
- •Лабораторная работа № 4 Условные операторы
- •Задание 1
- •Задание 2 Написать функцию OpenOffice.Org Basic для вычисления корней квадратного уравнения , где коэффициенты a, b и с задаются пользователем.
- •Лабораторная работа № 5 Циклические операторы
- •Задание 1
- •Список литературы
Задание 2 Написать функцию OpenOffice.Org Basic для вычисления корней квадратного уравнения , где коэффициенты a, b и с задаются пользователем.
Откройте новый документ Calc и сохраните его под именем «Лабораторная работа_4_2».
Откройте новый модуль Бэйсика с помощью команды Сервис-> Макросы->Управление макросами->OpenOffice.org Бэйсик, в открывшемся окне выберите свой файл «Лабораторная работа_4_2», в нем выберите пункт «Standart» и нажмите кнопку «Создать», находящуюся на панели справа.
Стираем все, что есть в окне редактора и набираем код:
Function KorenX1(a, b, c)
d=b*b-4*a*c
if D>0 then
KorenX1=(-b+sqr(d))/(2*a)
else
if D=0 then
KorenX1=-b/(2*a)
else
KorenX1= val("Корней нет")
endif
endif
End Function
Function KorenX2(a, b, c)
d=b*b-4*a*c
if D>0 then
KorenX2=(-b-sqr(d))/(2*a)
else
if D=0 then
KorenX2=-b/(2*a)
else
KorenX2= val("Корней нет")
endif
endif
End Function
4. Сохранить файл программы.
5. Закрыть окно редактора.
6. На листе Calc в столбцах A, B, C ввести значения коэффициентов a =1, b=2, c=1.
7. В столбце D рассчитать по функции KorenX1 значение корня X1 квадратного уравнения вида ax2+bx+c=0. Для этого введите «=KorenX1(A2;B2;C2)».
8. В столбце E рассчитать по функции KorenX2 значение корня X2 квадратного уравнения вида ax2+bx+c=0. Для этого введите «=KorenX2(A2;B2;C2)».
9. Сохранить файл.
10. Поменяйте значения коэффициентов и рассчитайте снова.
Самостоятельно
Написать функцию, рассчитывающую значение функции
Лабораторная работа № 5 Циклические операторы
Циклические операторы используются тогда, когда необходимо выполнить определенный набор действий несколько раз. Причем сам набор действий называется телом цикла.
Если изначально известно сколько раз нужно выполнить тело цикла, то используется цикл со счетчиком:
For счетчик = начальное значение to конечное значение step шаг цикла
Тело цикла
Next i
Если выполнение тела цикла зависит от конкретного условия, то используются другие типы цикла: Do while …Loop и Do Until … Loop. Первая конструкция используется, если тело цикла должно выполняться при выполнении условия:
Do while условие
Тело цикла
Loop
Вторая конструкция используется, если тело цикла выполняется при невыполнении условия цикла:
Do Until условие
Тело цикла
Loop
Бывают ситуации, когда тело цикла должно быть выполнено хотя бы один раз, тогда применяется конструкция Do..Loop While :
Do
Тело цикла
Loop while условие
Задание 1
Создать процедуру расчета факториала числа, введенного пользователем.
Откройте новый документ Calc и сохраните его под именем «Лабораторная работа_5».
Откройте новый модуль Бэйсика с помощью команды Сервис-> Макросы->Управление макросами->OpenOffice.org Бэйсик, в открывшемся окне выберите свой файл «Лабораторная работа_5», в нем выберите пункт «Standart» и нажмите кнопку «Создать», находящуюся на панели справа.
В открывшемся окне редактора набираем код:
Sub Main
s=InputBox(«Введите число»)
n=val(s)
f=1
for i=1 to n
f=f*i
next i
MsgBox(«Факториал введенного числа равен » & f)
End Sub
В этом коде до начала цикла со счетчиком в переменную f записывается 1. Далее в теле цикла со счетчиком в переменной f накапливается произведение чисел от 1 до введенного пользователем числа. Так на первом шаге цикла в f записывается 1*1, на втором шаге цикла 1*2, на третьем – берем то, что было в f на втором шаге 1*2 и * на значение счетчика 3, получается 1*2*3 и так далее.
Запускаем код на выполнение.
Проверяем работу программы, задав 5 (факториал 5 равен 120).
Сохраняем файл.
Самостоятельно
Измените предыдущую процедуру так, чтобы рассчитывалась сумма чисел от 1 до введенного пользователем числа.