Sub graf_fun()
Dim ymin As Single Dim ymax As Single ymin = – 100000000# ymax = 1000000000# ' Введення мінімальних і максимальних значень аргументу xmin = Val(InputBox(" введення XMIN=")) xmax = Val(InputBox(" введення XMAX=")) ' Організація циклу для перебування в інтервалі xmin < = x < = xmax ' мінімальних і ' максимальних значень функції Y For x = xmin To xmax Step 0.001 y = (Sqr(x)) * Exp(Sin(3.14159 * x)) If y > ymin Then ymmax = y ymin = y End If If y < ymax Then ymmin = y ymax = y End If Next x ' кінець циклу ' Друк на поверхні форми мінімальних і ' максимальних значень змінних x ‘та y Print " Ymax="; Print " Ymin="; (Format(ymmin, " 0.00")) Print " Xmax="; (Format(xmax, " 0.00")) Print " Xmin="; (Format(xmin, " 0.00")) ymaxlin = Int(ymmax) + 1 yminlin = Int(ymmin) dx = xmax – xmin dy = ymaxlin – yminlin ' Масштабування площі вікна зображення Picture1.Scale ((xmin - 1), (ymaxlin + 1))-((xmax + 1), (yminlin - 1)) ' Зафарбування в білий колір прямокутної зони кривої графіка Picture1.Line (xmin, yminlin)-(xmax, ymaxlin), vbWhite, BF ' Викреслювання прямокутника графічної зони побудови графіка Picture1.Line (xmin, yminlin)-(xmax, ymaxlin), vbMagenta, B Picture1.DrawStyle = vbSolid ' Проведення горизонтальної лінії, яка відповідає максимальному ' значенню функції Y Picture1.Line (xmin, ymmax)-(xmax, ymmax), vbBlue Picture1.Print " Ymax="; (Format(ymmax, " 0.00")) ' Проведення горизонтальної лінії, яка відповідає мінімальному ' значенню функції Y Picture1.Line (xmin, ymmin)-(xmax, ymmin), vbBlue ' Організація циклу для побудови графіка For x = xmin To xmax Step 0.0001 y = (Sqr(x)) * Exp(Sin(3.14159 * x)) Picture1.PSet (x, y), vbRed Next x ' кінець циклу Picture1.PSet (xmax, ymmax) Picture1.PSet (xmin, ymmin) Picture1.PSet (xmax, ymmin) Picture1.PSet (xmin, ymmin) Picture1.CurrentX = xmin - 0.25 Picture1.CurrentY = ymaxlin + 0.25 Picture1.Print " Y" ' позначення осі ординат Y '---------------------------------------------------------------------- ' Визначення кроку масштабної сітки вздовж осі ординат Y If dy < = 1 Then sty = 0.1 ElseIf dy < = 2 Then sty = 0.2 ElseIf dy < = 5 Then sty = 0.5 ElseIf dy < = 10 Then sty = 1 ElseIf dy < = 20 Then sty = 2 ElseIf dy < = 50 Then sty = 5 ElseIf dy < = 100 Then sty = 10 ElseIf dy < = 500 Then sty = 50 ElseIf dy < = 1000 Then sty = 100 ElseIf dy < = 2000 Then sty = 200 ElseIf dy < = 5000 Then sty = 500 ElseIf dy < = 10000 Then sty = 1000 End If For zx = yminlin To ymaxlin Step sty Picture1.DrawStyle = vbDot Picture1.Line (xmin, zx)-(xmax, zx) Picture1.CurrentX = xmin - 0.25 Picture1.CurrentY = zx Picture1.Print zx Next zx Picture1.CurrentX = xmax + 0.25 Picture1.CurrentY = yminlin - 0.25 Picture1.Print " X" ' позначення осі абсцис Х ' Визначення кроку масштабної сітки вздовж осі абсцис Х If dx < = 1 Then stx = 0.1 ElseIf dx < = 2 Then stx = 0.2 ElseIf dx < = 5 Then stx = 0.5 ElseIf dx < = 10 Then stx = 1 ElseIf dx < = 20 Then stx = 2 ElseIf dx < = 50 Then stx = 5 ElseIf dx < = 100 Then stx = 10 ElseIf dx < = 500 Then stx = 50 ElseIf dx < = 1000 Then stx = 100 ElseIf dx < = 2000 Then stx = 200 ElseIf dx < = 5000 Then stx = 500 ElseIf dx < = 10000 Then stx = 1000 End If ' Організація циклу для нанесення масштабної сітки For zy = xmin To xmax Step stx
|