VERSION 5.00
Begin VB.Form Form1 
   Caption         =   "progect84"
   ClientHeight    =   6360
   ClientLeft      =   60
   ClientTop       =   375
   ClientWidth     =   10335
   ForeColor       =   &H00000000&
   LinkTopic       =   "Form1"
   ScaleHeight     =   6360
   ScaleWidth      =   10335
   StartUpPosition =   2  'CenterScreen
   Begin VB.CommandButton Command1 
      Caption         =   "Сброс"
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   9.75
         Charset         =   204
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   375
      Left            =   600
      TabIndex        =   10
      Top             =   5760
      Width           =   2655
   End
   Begin VB.PictureBox P_graf 
      DrawWidth       =   2
      ForeColor       =   &H00000000&
      Height          =   4935
      Left            =   5160
      ScaleHeight     =   4875
      ScaleWidth      =   4875
      TabIndex        =   9
      Top             =   1200
      Width           =   4935
   End
   Begin VB.CommandButton Command 
      Caption         =   "Построить график"
      Enabled         =   0   'False
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   9.75
         Charset         =   204
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   375
      Left            =   600
      TabIndex        =   7
      Top             =   3480
      Width           =   2535
   End
   Begin VB.TextBox T_x 
      BeginProperty Font 
         Name            =   "Tahoma"
         Size            =   12
         Charset         =   204
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   375
      Left            =   2040
      MaxLength       =   3
      TabIndex        =   6
      Top             =   2880
      Width           =   735
   End
   Begin VB.TextBox T_z 
      BeginProperty Font 
         Name            =   "Tahoma"
         Size            =   12
         Charset         =   204
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   375
      Left            =   2040
      MaxLength       =   3
      TabIndex        =   5
      Top             =   2280
      Width           =   735
   End
   Begin VB.TextBox T_a 
      BeginProperty Font 
         Name            =   "Tahoma"
         Size            =   12
         Charset         =   204
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   375
      Left            =   2040
      MaxLength       =   3
      TabIndex        =   4
      Top             =   1680
      Width           =   735
   End
   Begin VB.Label Status 
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   9.75
         Charset         =   204
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   975
      Left            =   240
      TabIndex        =   8
      Top             =   4200
      Width           =   4695
   End
   Begin VB.Label Label2 
      Caption         =   "X ="
      BeginProperty Font 
         Name            =   "Tahoma"
         Size            =   14.25
         Charset         =   204
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   375
      Index           =   2
      Left            =   960
      TabIndex        =   3
      Top             =   2880
      Width           =   735
   End
   Begin VB.Label Label2 
      Caption         =   "Z ="
      BeginProperty Font 
         Name            =   "Tahoma"
         Size            =   14.25
         Charset         =   204
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   375
      Index           =   1
      Left            =   960
      TabIndex        =   2
      Top             =   2280
      Width           =   735
   End
   Begin VB.Label Label2 
      Caption         =   "А ="
      BeginProperty Font 
         Name            =   "Tahoma"
         Size            =   14.25
         Charset         =   204
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   375
      Index           =   0
      Left            =   960
      TabIndex        =   1
      Top             =   1680
      Width           =   735
   End
   Begin VB.Label Label1 
      Caption         =   "y = ((2 * x + (3 - z)) / a) ^ (1 / 2)"
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   13.5
         Charset         =   204
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   615
      Left            =   1080
      TabIndex        =   0
      Top             =   480
      Width           =   4575
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function dwMoveTo Lib "gdi32" Alias "MoveToEx" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpPoint As Long) As Long
Private Declare Function dwLineTo Lib "gdi32" Alias "LineTo" (ByVal hdc As Long, ByVal x As Integer, ByVal y As Integer) As Long
Private Declare Function dwGetDC Lib "user32" Alias "GetDC" (ByVal hWnd As Long) As Long
Private Declare Function dwEllipse Lib "gdi32" Alias "Ellipse" (ByVal hdc As Long, ByVal x1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

Dim xleft, xright, a, z, xstep, x, y, i, xmax, x1, x0 As Long

Private Sub Command_Click()
On Error GoTo eRr
P_graf.Cls
P_graf.ForeColor = &H0&


Dim hForm As Long, hdc As Long
'hForm = P_graf.h
    hdc = P_graf.hdc
    Call dwMoveTo(hdc, 10, 10, 0)
    Call dwLineTo(hdc, 10, 310)
    Call dwLineTo(hdc, 310, 310)
    Call dwLineTo(hdc, 310, 10)
    Call dwLineTo(hdc, 10, 10)
    Call dwMoveTo(hdc, 160, 10, 0)
    Call dwLineTo(hdc, 160, 310)
    Call dwMoveTo(hdc, 10, 160, 0)
    Call dwLineTo(hdc, 310, 160)
    
P_graf.ForeColor = &HFF0000



a = Val(T_a.Text)
z = Val(T_z.Text)
x0 = Val(T_x.Text)
x1 = 150


If Abs(x0) > Abs(x1) Then
    xmax = Abs(x0)
Else
    xmax = Abs(x1)
End If

xstep = (x1 - x0) / 200

x = x0

y = ((2 * x + (3 - z)) / a) ^ (1 / 2)
Call dwMoveTo(hdc, x * 100 / xmax + 160, y * 10 + 160, 0)


For x = x0 + xstep To x1 Step xstep
    y = ((2 * x + (3 - z)) / a) ^ (1 / 2)
    Call dwLineTo(hdc, x * 100 / xmax + 160, y * 10 + 160)
Next x

Exit Sub

eRr:
    Status.ForeColor = &HFF&
    Status.Caption = "Произошла ошибка при построении графика"

End Sub


Private Sub Command1_Click()
P_graf.Cls
T_a.Text = ""
T_z.Text = ""
T_x.Text = ""
Command.Enabled = False
End Sub

Private Sub T_a_LostFocus()
prov
End Sub

Private Sub T_x_LostFocus()
prov
End Sub

Private Sub T_z_LostFocus()
prov
End Sub


Sub prov()
T_z.Text = Val(T_z.Text)
T_x.Text = Val(T_x.Text)
T_a.Text = Val(T_a.Text)
If Val(T_a.Text) <> 0 Then
    If Val(T_x.Text) > 150 Then
        Status.ForeColor = &HFF&
        Status.Caption = "Данные некорректны. X не должен быть больше 150"
        Command.Enabled = False
        Exit Sub
    End If


    If ((3 - Val(T_z.Text)) + 2 * Val(T_x.Text)) / Val(T_a.Text) < 0 Then
        Status.ForeColor = &HFF&
        Status.Caption = "Данные некорректны. (((3 - z) + 2 * x) / a) должно быть больше или равно 0"
        Command.Enabled = False
    Else
        Status.ForeColor = &H8000&
        Status.Caption = "OK"
        Command.Enabled = True
    End If
Else
    Status.ForeColor = &HFF&
    Status.Caption = "Данные некорректны. А не должно быть равно 0"
    Command.Enabled = False
End If
End Sub
