Страница: 1 |
Страница: 1 |
Вопрос: Найти функцию через ВБА
Добавлено: 04.03.09 19:28
Автор вопроса: Incognito
F(x)=ctgx+ 1
Есть пример, как делали F(x)=1/2 sin x/4 +1
Public Sub prog2()
Dim a As Single, b As Single, c As Single, e As Single
Dim x As Single
a = Cells(4, 3).Value
b = Cells(4, 4).Value
x = Cells(4, 2).Value
If F(a) * F(b) >= 0 Then
MsgBox "Между этими значениями нет корня"
Exit Sub
End If
Do
c = (a + b) / 2
If F(c) * F(b) < 0 Then a = c Else b = c
Loop Until b - a < e
Cells(4, 1).Value = c
End Sub
Private Function F(x As Single) As Single
F = 1 / 2 * Sin(x / 4) + 1
End Function
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
AngryBadger
Вопросов: 33
Ответов: 245
Профиль | | #1
Добавлено: 05.03.09 00:50
Слушай, а ты пробовал когда-нибудь, что-нибудь сам сделать??
Номер ответа: 2
Автор ответа:
Incognito
Вопросов: 5
Ответов: 25
Профиль | | #2
Добавлено: 05.03.09 00:56
честно да но мозгов не хватает ))))))
Номер ответа: 3
Автор ответа:
Incognito
Вопросов: 5
Ответов: 25
Профиль | | #3
Добавлено: 09.03.09 12:30
Public Sub prog2()
Dim a As Single, b As Single, c As Single, e As Single
Dim x As Single
a = Cells(4, 3).Value
b = Cells(4, 4).Value
x = Cells(4, 2).Value
If F * F(b) >= 0 Then
MsgBox "Между этими значениями нет корня"
Exit Sub
End If
Do
c = (a + b) / 2
If F(c) * F(b) < 0 Then a = c Else b = c
Loop Until b - a < e
Cells(4, 1).Value = c
End Sub
Private Function F(x As Single) As Single
F = -1 / (Sin(x)) ^ 2
End Function
Мне кажется это же не нормально, что при любом раскладе оно должно выбивать нет корня...или всё правильно скажите...пожалуйста