Загрузка данных


Option Explicit

Private Sub cmdCalc_Click()
    Dim x As Double
    Dim y As Double
    Dim inputStr As String
    
    ' Получаем ввод от пользователя
    inputStr = txtX.Text
    
    ' Проверка на пустой ввод
    If Trim(inputStr) = "" Then
        MsgBox "Пожалуйста, введите значение X.", vbExclamation, "Ошибка ввода"
        txtX.SetFocus
        Exit Sub
    End If
    
    ' Преобразуем текст в число (Val корректно обрабатывает запятые/точки в локали)
    x = Val(inputStr)
    
    ' Проверка на корректный ввод числа
    If x = 0 And inputStr <> "0" And inputStr <> "0,0" And inputStr <> "0.0" Then
        MsgBox "Введено некорректное число.", vbCritical, "Ошибка"
        txtX.Text = ""
        txtX.SetFocus
        Exit Sub
    End If
    
    ' Реализация кусочной функции
    If x < -3 Then
        y = x ^ 4
        lblResult.Caption = "Y = " & Format(y, "0.0000")
        
    ElseIf x >= -3 And x < 0 Then
        ' В VB тангенс принимает радианы. Если ввод в градусах, нужна конвертация.
        ' По умолчанию считаем, что ввод в радианах (стандарт для математики).
        y = 2 * Tan(x)
        lblResult.Caption = "Y = " & Format(y, "0.0000")
        
    Else
        ' Случай x >= 0 не определен в условии задачи
        lblResult.Caption = "Значение не определено (X >= 0)"
        MsgBox "Для X >= 0 значение функции не задано в условии задачи.", vbInformation, "Внимание"
    End If
End Sub

Private Sub cmdClear_Click()
    txtX.Text = ""
    lblResult.Caption = ""
    txtX.SetFocus
End Sub

Private Sub Form_Load()
    ' Инициализация формы при запуске
    lblResult.Caption = ""
    txtX.Text = ""
End Sub