Private Sub Расчёт (Byval xn As Single, Byval xk As Single, └┘–
Byval e As Single, ByRef x As Variant)
Dim N As Integer, c As Single ‘Объявление локальных переменных___
Dim mas () ‘Объявление динамического массива
If F(xn)*F(xk)>0 Then
X=”?”
MsgBox ”на данном интервале корня нет или четное кол-во корней.”└┘–
+ Chr(13) └┘ &└┘ –
”Задайте интервал, содержащий один корень”
Exit Sub
End If
N=0
c=(xn+xk)/2
Do While xk-xn>℮ And Abs(F(c))> ℮
c=(xn+xk)/2
N=N+1
ReDim Preserve mas (1 Tо N)
mas (N) =C
If F(xn)*F(c)>0 Then xn=c Else xk=c
Loop
x=c
If N=0 Then
ReDim Preserve mas(1 To 1)
mas (1)=x
End If
List1∙List=mas
End Sub
Private Sub Cmd Решение _Click( )
Dim a As Single, b As Single, eps As Single, └┘––___
Корень As Variant
a=CSng(Text1.Text)
b=CSng(Text2.Text)
eps=CSng(Text3.Text)
Расчёт a, b, eps, корень
Text4.Text = корень
End Sub
Private Sub List1_Click()
Text5.Text=F(CSng(List1))
End Sub
Пояснения.
Данный проект является реализацией одного из численных методов поиска корня нелинейного уравнения.
Проект реализован структурированной программой. В главной (командной) подпрограмме с именем “CmdРешение” выполняется считывание с полей формы (ввод) основных исходных данных, вызов вспомогательной подпрограммы с именем “Расчет” и передача в поле формы (вывод) вычисленного значения корня.
В структуре программы содержатся описания
- функции с именем “F”, лежащей в основе уравнения;
- вспомогательной подпрограммы с именем “Расчет”;
- дополнительной подпрограммы с именем “List1”, передающей в поле формы значения функции при последовательных приближениях к корню.