End Function
‘ процедура строит график функции
SubDrawGraph ()
‘ границы изменения аргумента функции:
Dimx1 As Single,x2 As Single
‘границы изменения значения функции:
Dimy1 As Single, y2 As Single
Dimx As Single‘ аргумент функции
Dimy As Single‘ значение функции в точке х
Dimdx As Single ‘ приращение аргумента
Dim1, b As Integer ‘ левый нижний угол области
‘ вывода графика
Dimw, h As Integer‘ ширина и высота области
‘ вывода графика
‘ масштаб по осям X и Y:
Dimmx As Single,my As Single
‘ точка начала координат:
Dimx0 As Integer,y0 As Integer
‘ область вывода графика
Forml.ScaleMode = 3
1 = 10 | ‘ X-координата левого верхнего угла |
b = Forml.ScaleHeight – 20 | ‘ Y-координата левого верхнего угла |
h = Forml.ScaleHeight – 40 | ‘ высота области вывода |
w = Forml.ScaleWidth – 20 | ‘ ширина области вывода |
x1 = 0 | ‘ нижняя граница диапозона аргумента |
x2 = 25 | ‘ верхняя граница диапозона аргумента |
dx = 0.01 | ‘ шаг аргумента |
‘ нахождение максимального и минимального значений функции на отрезке [x1, x2] | |
y1 = f (x1) | ‘ пусть это минимум |
y2 = f (x2) | ‘ пусть это максимум |
x = x1
While (x <= x2)
y = f(x)
If y < y1 Then y1 = y
‘ если нашлось меньшее значение, то считаем это значение минимальным и т.д.
If y > y2 Then y2 = y
‘ аналогично для максимума: если нашлось большее значение, то считаем это значение максимальным и т.д.
x = x + dx
Wend
‘ вычисление масштаба
my = h / Abs (y2 – y1) | ‘ масштаб по оси Y |
mx = w / Abs (x2 – x1) | ‘ масштаб по оси X |
‘ прорисовка координатных осей и подпись максимального и минимального значений
x0 = 1
y0 = b – Abs (Round (y1 * my))
Line (l, b) – (l, b – h)
Line (x0, y0) – (x0 + w, y0)
Form1.CurrentX = l + 5
Forml . CurrentY = b – h
Print Format$ (y2, “##0 . 000”)
Forml . CurrentX = l + 5
Forml . CurrentY = b – 12
Print Format$ (y1, “##0 . 000”)
‘ построение графика
x = x1
While(x <= x2)
y = f (x)
PSet (x0 + Round (x * mx), y0 – Round (y * my)), RGB (200, 0, 0)
x = x + dx
Wend
End Sub
‘ обработка события Paint
Private SubForm_Paint ()
CallDrawGraph
End Sub
‘ изменение размера окна программы
Private SubForm_Resize ()
Forml.Cls | ‘ очистка формы |
CallDrawGraph | ‘ построение графика |