Метод половинного деления, ошибка кода - VBA
Формулировка задачи:
Добрый день, сломал всю голову - но не работает код, выдает ошибку - деление на ноль, все переменные указал.
Ткните пальцем - где ошибка.
Код:
Листинг программы
- Sub lab6()
- Dim x1, x2, f, E As Double
- Pa = Range("C7").Value
- Pb = Range("C8").Value
- Tt = Range("C9").Value
- Ra = Range("C10").Value
- Rb = Range("C11").Value
- E = Range("C12").Value
- x1 = Ra: x2 = Rb
- If Fun(x1) * Fun(x2) > 0 Then
- MsgBox "Функция в интревале (" & x1 & " - " & x2 & ") знака не меняет"
- Exit Sub
- End If
- Metka:
- Rc = (x1 + x2) / 2
- f = Fun(Rc)
- If Abs(f) <= E Then
- Range("B15").Value = Rc
- Range("B16").Value = f
- Exit Sub
- End If
- If f * Fun(x1) < 0 Then x2 = Rc Else x1 = Rc
- GoTo Metka
- End Sub
- Function Fun(Rc) As Double
- Fun = (Pa - Pb) / Tt - 2 * Log(Rc / x1) - 1 + (Rc / x2) ^ 2
- End Function
Решение задачи: «Метод половинного деления, ошибка кода»
textual
Листинг программы
- Option Explicit
- Dim x1 As Double, x2 As Double, f As Double, E As Double
- Dim pa As Double, pb As Double, tt As Double
- Dim ra As Double, rb As Double, RC As Double
- Sub lab6()
- pa = Range("C7").Value
- pb = Range("C8").Value
- tt = Range("C9").Value
- ra = Range("C10").Value
- rb = Range("C11").Value
- E = Range("C12").Value
- x1 = ra: x2 = rb
- If Fun(x1) * Fun(x2) > 0 Then
- MsgBox "Функция в интревале (" & x1 & " - " & x2 & ") знака не меняет"
- Exit Sub
- End If
- Metka:
- RC = (x1 + x2) / 2
- f = Fun(RC)
- If Abs(f) <= E Then
- Range("B15").Value = RC
- Range("B16").Value = f
- Exit Sub
- End If
- If f * Fun(x1) < 0 Then x2 = RC Else x1 = RC
- GoTo Metka
- End Sub
- Function Fun(RC) As Double
- Fun = (pa - pb) / tt - 2 * Log(RC / x1) - 1 + (RC / x2) ^ 2
- End Function
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д