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