Создать программу График функции y=F(x) - VB

Узнай цену своей работы

Формулировка задачи:

Разработать программу предназначенную для наглядной демонстрации школьникам графика функций одного аргумента y=F(x) Разрабатываемая программа должна расчитывать таблицу значений и строить график функции на заданном отрезке, по заданной формуле менять шаг и границы отрезка, кроме этого программа должна запоминать введенные функции. Желательно готовый проект с кодом и архитектурой, чтобы можно было посмотреть как все сделано. Заранее спасибо!

Решение задачи: «Создать программу График функции y=F(x)»

textual
Листинг программы
Option Explicit
Const PI As Double = 3.14152
Dim x As Double, Y As Double
Dim i As Single, P As PictureBox
 
Private Sub Command1_Click()
    Dim St As String, PicFontSize As Integer
    Call Scal
    PicFontSize = P.FontSize: P.FontBold = True
    P.FontSize = 18: P.CurrentX = minX + maxX / 20:  P.CurrentY = maxY - maxY / 20
    P.Print "Y = " & Text1.Text
    P.FontSize = PicFontSize: P.FontBold = False
    List1.Clear
    For x = minusX.Text To plusX.Text Step CSng(Replace(stepGX.Text, ".", ","))
            Y = F(x)
            P.Circle (x, Y), 0.05, RGB(255, 0, 0)
            List1.AddItem "x = " & Round(x, 3) & vbTab & vbTab & " Y = " & Round(Y, 3)
    Next x
    Call Coord
End Sub
 
 
Function F(x As Double) As Double
    Me.ScriptControl1.ExecuteStatement ("x=" & Replace$(CStr(x), ",", "."))
    F = Me.ScriptControl1.Eval(Text1.Text)
End Function
 
Private Sub Scal()
    Set P = Picture1
    P.Cls
    P.DrawStyle = 0: P.AutoRedraw = True
    P.Scale (minX, maxY)-(maxX, minY)
    P.Line (minX, 0)-(maxX, 0), RGB(0, 0, 255) 'ocb X
    P.Line (0, minY)-(0, maxY), RGB(0, 0, 255)   'ocb Y
    P.FillStyle = 0: P.FillColor = vbRed
End Sub
 
Private Sub Coord()
'Kоординатная сетка
      P.DrawStyle = 2   ' Пунктирная линия
      For i = minY.Text To maxY.Text Step stepY.Text
       P.CurrentX = 0    ' оцифровка
       P.CurrentY = i
       P.Print Format$(i, "0.0")
       P.Line (-0.05, i)-(0.05, i)   ' засечка
       P.Line (minX, i)-(maxX, i)
      Next i
      For i = minX.Text To maxX.Text Step stepX.Text
       P.CurrentX = i    ' оцифровка
       P.CurrentY = 0
       P.Print Format$(i, "0.0")
       P.Line (i, -0.05)-(i, 0.05) ' засечка
       P.Line (i, minY)-(i, maxY)
      Next i
      P.DrawStyle = 2   ' Пунктирная линия
End Sub
 
Private Sub Command2_Click()
    End
End Sub
 
Private Sub Command3_Click()
    SaveGraph
End Sub
 
Private Sub Form_Load()
    Call Scal
    Call Coord
End Sub
 
Private Sub SaveGraph()
       Dim s As String, ss As String
       ss = InputBox("Введите имя файда для сохранения", "Save As", "Graph")
       If StrPtr(ss) <> 0 Then
           s = App.Path & "\" & ss & ".bmp"
           SavePicture Picture1.Image, s
           MsgBox "График сохранен как:" & vbCrLf & s, vbInformation
       End If
End Sub

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


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

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

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