Макросы в табличном редакторе

Автор Linda, 23 мая 2014, 15:50

0 Пользователи и 1 гость просматривают эту тему.

Linda

Помогите найти ошибку в коде. Задание Создать с помощью Basic диалог и макрос, которые позволяют рассчитывать значение сложной функции от введенного аргумента. Форма должна содержать объект ввода значения аргумента и объект вывода значения функции. С диалогом все в порядке, а вот с вычислениями что-то не получается...
Dim oDialog1 AS Object
Sub Dialog1Show
DialogLibraries.LoadLibrary( "Standard" )
oDialog1=CreateUnoDialog(DialogLibraries.Standard.Dialog1)
oDialog1.Execute()
End Sub

Sub Solver
ObjX = oDialog1.GetControl("TextField1")
X = ObjX.Text
ObjY = oDialog1.GetControl("TextField2")
ObjY.Text = Y
IF x>1 THEN
y=exp(x)^(1/2)
ELSE
IF x<=-4 THEN
y= exp(2*x)-exp(x)+x
ELSE
y=5*x
ENDIF
ENDIF 
End Sub

rami

#1
Linda,
1) Для ввода чисел есть числовое поле "NumericField"
2) Если вы вычисляете "y" в формуле, то зачем передаёте ему значение из поля ввода  ???

Sub Solver Dim x! , y!
x = oDialog1.GetControl("NumericField1").Model.Value
'y = oDialog1.GetControl("NumericField2").Model.Value  'Переменная "y" будет вычислятся в уравнениях
If x>1 Then
y=exp(x)^(1/2)
ElseIf x<=-4 Then
y= exp(2*x)-exp(x)+x
Else
y=5*x
EndIf
End Sub

Linda

Спасибо большое! Я еще плохо разбираюсь в макросах :) Но по условию лабораторной эта часть кода должна быть обязательно.
Dim oDialog1 AS Object
Sub Dialog1Show
DialogLibraries.LoadLibrary( "Standard" )
oDialog1=CreateUnoDialog(DialogLibraries.Standard.Dialog1)
oDialog1.Execute()
End Sub


Что еще можно изменить в Solver?

rami

Код открытия диалога правильный, поэтому я его опустил. А насчёт Solver не знаю какие условия должны быть.