Написать программу, рисующую график функции y(x)=sinx/(1+x^2) - VB
Формулировка задачи:
Добрый день!
Подскажите, пожалуйста, мне нужно сделать программу, в которой вводится начальное значение X, затем конечное значение X и потом шаг. Рядом выводится список всех значений X и значений Y при каждом из этих X. Также должен быть нарисован график. Функция: y(x)=sinx/(1+x^2). Подскажите, пожалуйста, как это реализовать
Решение задачи: «Написать программу, рисующую график функции y(x)=sinx/(1+x^2)»
textual
Листинг программы
Option Explicit
Dim x As Double, y As Double, i As Double, P As PictureBox
Dim xn As Double, xk As Double, stp As Double
Private Sub Command1_Click()
xn = Val(Replace(InputBox("Введите начальное значение X", , -10), ",", "."))
xk = Val(Replace(InputBox("Введите конечное значение X", , 10), ",", "."))
stp = Val(Replace(InputBox("Введите шаг", , 0.01), ",", "."))
List1.Clear
Call Scal(xn, xk)
Call Coord(xn, xk)
Call Graf(xn, xk)
End Sub
Private Sub Graf(sn, sk)
For x = sn To sk Step stp
'y = (Sin(3 * x)) ^ 2
y = Sin(x / (1 + x ^ 2))
List1.AddItem "x = " & Round(x, Len(stp)) & Space(10) & vbTab & "y = " & Round(y, 5)
' P.Circle (x, y), 0.01, RGB(255, 0, 0)
P.PSet (x, y), 255
Next x
End Sub
Private Sub Scal(sn, sk)
Set P = Picture1
P.Cls
P.DrawStyle = 0: P.AutoRedraw = True
P.Scale (sn, 1)-(sk, -1)
P.DrawWidth = 2
P.Line (sn, 0)-(sk, 0), RGB(0, 0, 255) 'ocb X
P.Line (0, -1)-(0, 1), RGB(0, 0, 255) 'ocb Y
End Sub
Private Sub Coord(sn, sk)
'Kоординатная сетка
P.DrawWidth = 1
P.DrawStyle = 2 ' Пунктирная линия
For i = -1 To 1 Step 0.2
P.CurrentX = 0 ' оцифровка
P.CurrentY = i
P.Print Format$(i, "0.0")
P.Line (-0.05, i)-(0.05, i) ' засечка
P.Line (sn, i)-(sk, i)
Next i
For i = sn To sk 'Step 0.5
P.CurrentX = i ' оцифровка
P.CurrentY = 0
P.Print Format$(i, "0.0")
P.Line (i, -0.05)-(i, 0.05) ' засечка
P.Line (i, -1)-(i, 1)
Next i
P.DrawStyle = 0 '
P.DrawWidth = 3
P.FillStyle = 0
P.FillColor = 255
End Sub