Создать программу График функции 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д