option explicit Dim i As Double Dim eps As Double Function F(x As Double) As Double F = 'функция End Function Function F1(x As Double) As Double F1 = 'производная функции End Function Private Sub Command1_Click() 'метод деления отрезка пополам Dim a As Double Dim b As Double Dim c As Double eps = InputBox("Введите погрешность") For i = -10 To 10 Print i; F(i) Next i a = InputBox("a", "Введите левую границу") b = InputBox("b", "Введите правую границу") If F(a) * F(b) > 0 Then MsgBox ("На указанном отрезке нет корня") Exit Sub End If i = 0 Do c = (a + b) / 2 i = i + 1 If F(a) * F(c) < 0 Then b = c Else a = c End If Loop While Abs(b - a) >= eps Print c = (a + b) / 2 a = F1(c) * eps Print "Искомый корень : ", c, "найден с погрешностью ", eps Print "Проверка", F(c), "с погрешностью ", a Print "найдено за ", i, " итераций" End Sub Private Sub Command2_Click() 'метод Ньютона Dim c2 As Double Dim c1 As Double eps = InputBox("Введите погрешность") c2 = InputBox("C", "Введите начальную точку") i = 0 Do c1 = c2 c2 = c1 - F(c1) / F1(c1) i = i + 1 If i = 1000000 Then Exit Do Loop While Abs(c2 - c1) >= eps a = F1(c2) * eps Print "Искомый корень : "; c2, " с погрешностью ", eps Print "Проверка : ", F(c2), "с погрешностью ", a Print "найдено за ", i, " итераций" End Sub