Dim x() As Single
Dim y() As Single
Dim g() As Single
Dim T() As Single
Private n, i As Integer
Private xk, x0, kx, ky As Single
Private k, k1, k2, k3, k4 As Single
Private h, max, min, y0 As Single
Private shel As Single ' øèðèГ*Г* ùåëè ГЄГ*ìåðû
Private Hsum As Single 'Г*Г*ïðÿæåГ*Г*îñòü ïîëÿ ñóììГ*Г°Г*Г*Гї
Private aa, bb, hh As Single 'äëèГ*Г* øèðèГ*Г* âûñîòГ* Г*Г*ГЄГ«Г*äêè
Private dd As Single 'äèГ*ìåòð äóãè
Private Vk As Single 'ñêîðîñòü äâèæåГ*ГЁГї ГЄГ®Г*ГІГ*êòîâ
Private alpha, beta, epselo, gamma As Single 'êîýôôèöèåГ*ГІГ», Г§Г*ГўГЁГ±ГїГ№ГЁГҐ îò Г¬Г*òåðèГ*Г«Г* ГЄГ®Г*ГІ.Г*Г*ГЄГ«Г*äêè
Private tau As Single 'ïîñòîÿГ*Г*Г*Гї âðåìåГ*ГЁ Г¶ГҐГЇГЁ = L/R
Private Function f(a, b As Single) As Single
ta = 0.0005 '((alpha * (1 ^ epselo)) / ((Hsum ^ beta) * (Vk ^ gamma)))
ld1 = ta * Vk
ld3 = 3.14 * (Vk * a + hh) * 0.5
ld2 = 3.14 * Vk * a * 0.5
Vd = 0.0141 * (((Abs(b) * (Hsum ^ 2)) / ((1 + 0.1075 * (Hsum ^ 0.3)) ^ 2)) ^ (1 / 3))
Ed1 = (92 / Sqr(Abs(b)) + 0.312 * Sqr(Abs(b)) / (shel ^ 0.66666) + 0.15 * ((Vd ^ 2 * Abs(b) / (shel ^ 2)) ^ (1 / 3)))
Ed2 = 9.2 * (Vd + 10) / Sqr(Abs(b))
If Option1.Value = True Then Ed = Ed2
If Option2.Value = True Then Ed = Ed1
ld = ld1
'If Vd > 0 Then ld = 333
Vda = Vd * a
If a = ta Then ld12 = a
If a > ta Then ld = ld2
Text21.Text = ta
Ud = 25 + Ed * ld
MSFlexGrid1.TextMatrix(i + 2, 2) = Str(Ud)
MSFlexGrid1.TextMatrix(i + 2, 4) = Str(ld)
f = (2242 - Ud) * 400 / (2242 * tau) - b / tau
End Function
Private Sub Rynge_Kytt()
ReDim g(n)
Dim epe As Integer
g(0) = y0
For i = 0 To n
x(i) = x0 + h * i
Next i
For i = 0 To n - 1
k1 = h * f(x(i), g(i))
k2 = h * f(x(i) + h / 2, g(i) + k1 / 2)
k3 = h * f(x(i) + h / 2, g(i) + k2 / 2)
k4 = h * f(x(i) + h, g(i) + k3)
k = (k1 + 2 * k2 + 2 * k3 + k4) / 6
g(i + 1) = g(i) + k
MSFlexGrid1.TextMatrix(i + 2, 1) = Str(g(i + 1))
MSFlexGrid1.TextMatrix(1, 1) = Str(g(0))
ep = Val(MSFlexGrid1.TextMatrix(i + 2, 2))
pe = Val(MSFlexGrid1.TextMatrix(i + 2, 1))
MSFlexGrid1.TextMatrix(i + 2, 3) = Str(Abs(ep * pe))
Next i
End Sub
Private Sub Command1_Click()
x0 = Val(Text1.Text)
xk = Val(Text2.Text)
h = Val(Text3.Text)
y0 = Val(Text4.Text)
n = (xk - x0) / h
MSFlexGrid1.Rows = n + 2
MSFlexGrid1.TextMatrix(0, 0) = "x"
MSFlexGrid1.TextMatrix(0, 1) = "ГђГіГ*ГЈГҐ-ГЉГіГІГІ"
MSFlexGrid1.TextMatrix(0, 2) = "Ud"
MSFlexGrid1.TextMatrix(0, 3) = "Wd"
Label6.Caption = Str(x0)
Label5.Caption = Str(xk)
Rynge_Kytt
max = y0
min = y0
For i = 0 To n
If y(i) > max Then
max = y(i)
End If
If y(i) < min Then
min = y(i)
End If
If g(i) > max Then
max = g(i)
End If
If g(i) < min Then
min = g(i)
End If
If T(i) > max Then
max = T(i)
End If
If T(i) < min Then
min = T(i)
End If
ttt = g(i)
If g(i) < 0 Then g(i) = 0
Next i
Label4.Caption = Str(max)
Label7.Caption = Str(min)
kx = (6600 - 960) / (xk - x0)
ky = (5160 - 240) / (max - min)
Picture1.Cls
For i = 1 To n - 1
X1 = 960 + Round(kx * (x(i - 1) - x0))
X2 = 960 + Round(kx * (x(i) - x0))
Y1 = 5160 - Round(ky * (g(i - 1) - min))
Y2 = 5160 - Round(ky * (g(i) - min))
Picture1.Line (X1, Y1)-(X2, Y2), RGB(400, 100, 500)
Picture1.Print g(i)
Picture1.Line (0, 0)-(0, y0 + 0.1 * y0)
Picture1.PSet (0, 0)
Picture1.Line (0, 0)-(xk, 0)
Picture1.Print 1
Next i
End Sub