Условный оператор if

Автор Linda, 27 мая 2014, 17:03

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

Linda

Нужно вычислить значение у в зависимости от х. Значение х вводится в TextField1, а у выводится в TextField2. Почему при х>1 значение у вычисляется правильно, а в других случаях выдает ошибку???


Sub Solver
Dim x,y AS double
ObjX = oDialog1.GetControl("TextField1")
X = ObjX.Text
IF x>1 THEN
y=sin(log(x))
ELSE
if x<=-1 THEN
y= 3*x/((x^3)-11)
ELSE
y=(3*exp(2*(x^2)))^(1/5)
END IF
END IF
ObjY = oDialog1.GetControl("TextField2") 
ObjY.Text =Y
End Sub

rami

Число меньше 1 начинается на 0 и это сразу вызывает ошебку.
Вставьте под     Sub Solver
                        On Error Resume Next      это предотвратит ошибку

JohnSUN

Лучше найдите в Справке раздел Функция Val [время выполнения] и используйте её в виде
X = Val(ObjX.Text)
Заодно посмотрите Функция Format [время выполнения] и используйте её для полученного значения Y
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

Linda

Спасибо! Я воспользовалась вашими советами, но теперь вместо ошибки выдает значение у=0(при х<=0)...  ??? Правильные ли у меня формулы, по которым вычисляют у? Что еще нужно изменить?

rami

Если вы сделали как написал JohnSUN: X = Val(ObjX.Text) , то должно всё работать правильно

Linda