Option Explicit
Rem Задание 2. Написать программу решения квадратного уравнения
Rem ах2+bx+c=0 с помощью условного оператора Select…Case.
Rem В программе рассмотреть три случая: D=0,D>0,D<0.
Rem В программе использовать обращение к ячейкам и операторы ввода/вывода.
Rem Вызов программы организовать с листа Excel. Пример оформления задачи на рисунке
Sub Кнопка1_Щелчок()
Dim a As Single, b As Single, c As Single
Dim d As Single, x1 As Single, x2 As Single
a = Range("a5")
b = Range("b5")
c = Range("c5")
d = b ^ 2 - 4 * a * c
Range("a9") = d
Select Case d
Case 0
x1 = -b / (2 * a)
Range("b8") = "Единственное решение"
Range("b9") = x1
Range("c9") = ""
Case Is > 0
x1 = (-b + Sqr(d)) / (2 * a)
x2 = (-b - Sqr(d)) / (2 * a)
Range("b8") = "Два решения"
Range("b9") = x1
Range("c9") = x2
Case Else
Range("b8") = "Нет решений"
Range("b9") = ""
Range("c9") = ""
End Select
End Sub
Sub Z1()
Dim a, b, t, y As Single
Dim Ra, Rb, Rt, Ry, tt As String
Dim Msg As String
Ra = "A6" ' Адреса ячеек, где введём a и b, и отобразим t и y
Rb = "B6"
Rt = "C6"
Ry = "D6"
DD = Mid(5 / 2, 2, 1) ' Определю разделитель целой и дробной части
t = InSng(InputBox("Введите число"), DD)
Select Case t
Case 1 To 2
a = InSng(Range(Ra), DD)
y = a * t ^ 2
Msg = "a=" + Format(a, "# ##0.00") + vbCrLf + "t=" + Format(t, "# ##0.00") + vbCrLf + "y= a*t^2 = "
Case Is > 2
a = InSng(Range(Ra), DD)
b = InSng(Range(Rb), DD)
y = Exp(a * t) * Sin(b * t)
Msg = "a=" + Format(a, "# ##0.00") + vbCrLf + "b=" + Format(b, "# ##0.00") + vbCrLf + "t=" + Format(t, "# ##0.00") + vbCrLf + "y= Exp(a*t)*Sin(b*t) = "
Case Is < 1
Msg = "t=" + Format(t, "# ##0.00") + vbCrLf + "y= "
y = 1
End Select
Range(Rt) = t
Range(Ry) = y
MsgBox Msg + Format(y, "# ### ##0.00")
End Sub
Function InSng(InData, D) As Single
tt = Replace(InData, ".", D)
tt = Replace(tt, ",", D)
InSng = CSng(tt)
End Function
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.