...
Гений
(84865)
9 лет назад
Сказали бы именно в какой строке - было бы проще.
Лучше писать тип, который возвращает функция (не ошибка, но ...)
Function f(x as ...) as ...
Переменные тоже лучше описывать
Dim a as ...
=) Разобрались. Проблема была в "." у b (по нашему стандарту должна быть запятая) и что операция шла со строками уже (т. к. типы переменных не определены), а не с числами.
Function f(x)
f = Sqr(1 - x) - Cos(Sqr(1 - x))
End Function
Private Sub btn_K_Click()
a = txt_a
b = txt_b
txt_faK = f(a)
Do
c = (a + b) / 2
If f(a) * f(c) > 0 Then a = c Else b = c
Loop While b - a > 0.001
txt_xK = Round((b + a) / 2, 7)
End Sub
Private Sub txt_a_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0
End Sub
Private Sub txt_b_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0
End Sub
Private Sub txt_fa_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0
End Sub