Назад Содержание Далее

3. Ручное создание макросов

Задание 2:

  1. Откройте редактор OOo Basic, используя меню Сервис => Макросы => Управление макросами => OpenOffice.org Бэйсик, чтобы начать диалог макросов Macro. С левой стороны окна диалога найдите документ, который Вы только что открыли. Новый документ, вероятно, назван “untitled1” или Безымянный1. Кликните (нажмите левую клавишу мыши) справа ниже от “untitled1” на слове “standard”. Нажмите кнопку «Создать», справа, для создания нового модуля.

  2. Использование имени Module1”, вероятно, не лучшее решение. Когда у Вас открыто несколько документов, и все они имеют модуль с именем Module1”, то становится трудно работать с ними. Лучше назовем Ваш первый модуль “MyFirstModule”. Откроется среда редактирования и отладки макросов OOo Basic IDE . Введите (или скопируйте) текст, приведенный в Листинг 1.

Листинг 3.1: Ваш первый макрос, “Hello world”.

Sub Main

Print "Hello World"

End Sub

  1. Кликните на кнопке с зеленым треугольничком ("Выполнить Basic") в верхней панели для выполнения Вашего первого макроса OOo Basic.

  2. Сохраните документ.


Задание 3

OOo Basic основан на процедурах и функциях, которые задаются ключевыми словами Sub и Function – далее они будут называться процедурами или соответственно функциями. Каждая процедура может вызывать другие процедуры.

Каждый модуль (module) содержит набор процедур (функций). Библиотека (Library) содержит набор модулей. Документ (document) может содержать библиотеку или несколько библиотек. Библиотека может существовать также на уровне Приложения (application level), такого как OOo Calc.

Разница между Sub и Function в том, что функция возвращает значение, а процедура – нет. Макрос на Листинг 2 получает текстовую строку от функции с именем HellowWorldString.

  1. Создайте самостоятельно макрос состоящий из процедуры и функции (см. Листинг 3.2.).

  2. Усовершенствуйте макрос, добавив в него возможность ввода пользователем своего имени, чтобы программа приветствовала создателя.

  3. Покажите результат преподавателю.

Подсказка: используйте функцию InputBox() как в предыдущем разделе.

Листинг 3.2:Hello world” с использованием процедуры и функции.

Sub HelloWorld

Dim s As String

s = HelloWorldString()

MsgBox s

End Sub



Function HelloWorldString() As String

HelloWorldString = "Hello World"

End Function

Задание 4.

Написать программу на OpenOffice.org Basic для функции пользователя, которая вычисляет получаемую потребителем электроэнергию QH по количеству электроэнергии Q, которое вырабатывается производителем, и величине потерь P (%) при ее передаче: QH=Q(100-P)/100. Заполнить ячейку С2 следующей таблицы с использованием построенной функции пользователя:


Рис. 10.

Решение задания 4:

Вызовем OpenOffice.org Calc и создадим новую электронную таблицу. Воспроизведем данные, приведенные выше. Вызовем редактор OOo Basic: Сервис=> Макросы=>Управление макросами=>OpenOffice.org Бэйсик... Выберем в диалоге выбора макроса пункт соответствующий названию документа, и нажмём кнопку «Создать». В появившемся окне напишем следующий текст программы :

Листинг 3.3.

Function QH(Q, P)

QH=Q*(100-P)/100

End Function

Далее вернемся в окно Рабочего листа 1, и при помощи мыши выберем ячейку С2, в которую необходимо внести число, вычисляемое по только что созданной пользовательской функции. Для этого щёлкнем левой кнопкой мыши в поле ввода формул (которое находится выше ячеек таблицы, после кнопок обозначенных f(x) ? = ) и напишем следующую строку:

=QH(A2;B2)

где QH название только что написанной функции, A2 адрес ячейки для аргумента Q, B2 адрес ячейки для аргумента P. После этого нажмём клавишу Enter на клавиатуре. В результате в ячейку С2 запишется значение функции QH, и Лист 1 примет вид:


Рис. 11. Результат вычисления функции

Задание 5.

Написать программу на OpenOffice.org Basic для следующей функции пользователя, используя ее дополнить таблицу вычисленными значениями и построить график зависимости y=y(x):


Таблица 1

X

0,10

0,15

0,20

0,25

0,30

0,35

0,40

0,45

0,50

Y

 

 

 

 

 

 

 

 

 


Решение задания 5:

Поскольку с программу с длинными строками отлаживать неудобно, то напишем тело функции из нескольких строк:

Листинг 3.4.

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

Далее проведите расчеты с использованием данной функции пользователя и заполните таблицу. Не следует заполнять все ячейки значений аргумента x, вводя их с клавиатуры, так как это будет нерационально. Вместо этого введите два значения в ячейки B1 и С1, представляющие собой первый и второй члены арифметической прогрессии. Далее выделите диапазон ячеек B1:C1. Затем расположите указатель мыши на маркере заполнения выделенного диапазона, как показано ниже на рисунке, и протяните его вправо до получения числового ряда нужной длины:


Рис. 12

В дальнейшем в подобной стандартной ситуации, которая при работе с таблицами встречается часто, используйте этот метод автоматического заполнения ячеек числовым рядом, соседние члены которого отличаются на постоянную величину.

Вычислите значения функции самостоятельно, используя навыки, приобретенные при выполнении предыдущих заданий.

Для построения графика зависимости y=y(x) выберите Вставка>Диаграмма. Выберите тип диаграммы «Линии», «Только точки». Нажмите кнопку далее, и в поле вводу «Диапазон данных» введите диапазон

$A$1:$J$2

отметьте пункт «Ряды данных в строках» и включите пункты «Первая строка как надпись», «Первый столбец как надпись». Нажмите кнопку «Далее» два раза. В заголовке ось X введите символ X, а ось Y введите символ Y. В результате получим следующую картину:


Рис. 13.

Можете самостоятельно поработать с этим графиком с целью улучшения ее вида.

Выполните самостоятельно задания, приведенные ниже.

Составить программу на OOo Basic для определения функции пользователя y=y(x), заполнить таблицу значений функции при изменении аргумента в самостоятельно выбранном диапазоне и построить график зависимости y=y(x):

Задание 6 y=y(x)


Задание 7 y=x2+lnx+10,46 – tg x


Задание 8 y=x25+ln| x+10,46| – tg x

Задание 9


Задание 10 Постройте пользовательскую функцию для вычисления стоимости товара с НДС по его стоимости без НДС и ставки НДС. С использованием этой функции заполните таблицу, отражающую стоимость товаров без НДС и с НДС. Исходные данные выберите самостоятельно.


Назад Содержание Далее