Написать программу, рисующую график функции 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.8 из 5
Похожие ответы