Консультация № 181619
26.12.2010, 13:40
72.35 руб.
0 2 1
Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос:
Сделать задание 1 и 2.В приложении
Скачать

Обсуждение

давно
Модератор
137394
1850
26.12.2010, 16:53
общий
это ответ
Здравствуйте, Benqq! Вот ответ на первое задание. Код макроса
Код:
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 ^ 3 + 3
Msg = "a=" + Format(a, "# ##0.00") + vbCrLf + "t=" + Format(t, "# ##0.00") + vbCrLf + "y= a*t^3+3 = "
Case Is > 2
a = InSng(Range(Ra), DD)
b = InSng(Range(Rb), DD)
y = Exp(a * t) * Cos(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)*Cos(b*t) = "
Case Is < 1
Msg = "t=" + Format(t, "# ##0.00") + vbCrLf + "y= "
y = 4
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
Пояснение: Я написал свою функцию InSng, чтобы входные данные не были чувствительны к разделителю десятичной части (точка или запятая). Установленнйй в системе разделитель я определяю вырезкой второго символа результата деления 5/2= 2.5
Готовый пример в Excel-таблице можно загрузить.
Прикрепленные файлы:
Об авторе:
Понеже не словес красных бог слушает, но дел наших хощет
давно
Модератор
137394
1850
26.12.2010, 22:12
общий
Kvadratnyi_koren.xls (26.5 кб) - решение квадратного уравнения
Об авторе:
Понеже не словес красных бог слушает, но дел наших хощет
Форма ответа