Public Class Form1
Dim x() As Single
Dim y() As Single
Dim y1() As Single
Dim y2() As Single
Private y0 As Single
Private x0 As Single
Private xk As Single
Private h, N, k, Max, Min, k1, k2, k3, k4, kx, ky As Single
Private z1, z2, z3, z4, z5, z6, z7, z8 As Single
Function f(ByVal l As Single, ByVal q As Single) As Single
f = Math.Cos(l) - q
End Function
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
x0 = Val(TextBox1.Text)
xk = Val(TextBox2.Text)
y0 = Val(TextBox4.Text)
h = Val(TextBox3.Text)
N = Math.Round((xk - x0) / h)
ReDim x(N), y(N)
DataGridView1.RowCount = N + 2
DataGridView1.Columns(0, 0).Name = "X"
DataGridView1.Columns(0, 1).Name = "Ye"
DataGridView1.Columns(0, 2).Name = "Yrk"
DataGridView1.Columns(0, 3).Name = "Yt"
Max = 1
Min = 0.55
y(0) = y0
y1(0) = y0
y2(0) = y0
For i = 0 To N
x(i) = x0 + i * h
y(i + 1) = Math.Round(y(i) + f(x(i), y(i)) * h, 4)
k1 = h * f(x(i), y1(i))
k2 = h * f(x(i) + h / 2, y1(i) + k1 / 2)
k3 = h * f(x(i) + h / 2, y1(i) + k2 / 2)
k4 = h * f(x(i) + h, y1(i) + k3)
k = (k1 + 2 * k2 + 2 * k3 + k4) / 6
y1(i + 1) = y1(i) + k4
y2(i) = Math.Round(0.5 * Math.Exp(-x(i)) + ((Math.Cos(x(i)) + Math.Sin(x(i))) / 2), 4)
If y(i) > Max Then Max = y(i)
If y(i) < Min Then Min = y(i)
DataGridView.Item(i + 1, 0).Value = Str(x(i))
DataGridView.Item(i + 1, 1).Value = Str(y(i))
DataGridView.Item(i + 1, 2).Value = Str(y1(i))
DataGridView.Item(i + 1, 3).Value = Str(y2(i))
Next i
PictureBox.Cls()
kx = (PictureBox.Width - 1200) / (xk - x0)
ky = (PictureBox.Height - 1000) / (Max - Min)
Label4.Caption = Str(Min)
Label5.Caption = Str(Max)
Label6.Caption = Str(x0)
Label7.Caption = Str(xk)
For i = 0 To N - 1
z1 = Math.Round(720 + (x(i) - x0) * kx)
z2 = Math.Round(5400 - (y(i) - Min) * ky)
z3 = Math.Round(5400 - (y1(i) - Min) * ky)
z4 = Math.Round(5400 - (y2(i) - Min) * ky)
z5 = Math.Round(720 + (x(i + 1) - x0) * kx)
z6 = Math.Round(5400 - (y(i + 1) - Min) * ky)
z7 = Math.Round(5400 - (y1(i + 1) - Min) * ky)
z8 = Math.Round(5400 - (y2(i + 1) - Min) * ky)
Picturebox.Line (z1, z2)-(z5, z6), vbGreen
Picturebox.Line (z1, z3)-(z5, z7), vbRed
Picturebox.Line (z1, z4)-(z5, z8)
Next i
End Sub