Не выдает значение y, в чем дело? Sub Main() Dim x As single, y As single, t As single x...

0 голосов
119 просмотров

Не выдает значение y, в чем дело?

Sub Main()
Dim x As single, y As single, t As single
x = Sheets("Лист3").Cells(4, 2)
If x < 0.5 And t = 2.2 Then
y = (Log(x) ^ 3 + x ^ 2) / Sqr(x + t)
Else
If x = 0.5 And t = 2.2 Then
y = Sqr(x + t) + 1 / x
Else
If x > 0.5 And t = 2.2 Then
y = Cos(x) + t * Sin(x) ^ 2
End If
End If
End If
Sheets("Лист3").Cells(4, 3) = y
End Sub


image

Информатика (58 баллов) | 119 просмотров
0

У тебя условия срабатывают только при t = 2,2. Так выдаёт ноль. Почему пишешь, что не выдаёт?

Дан 1 ответ
0 голосов
Правильный ответ

У Вас значение "у" вычисляется для заданного "х" только при условии, что t=2.2. Но значение t у Вас не присваивается, а в этих случаях VBA полагает, что значение числовой переменной равно нулю. Следовательно, ни одна ветка для вычисления "у" не отрабатывает и "у" также не получает значения. Аналогично "t", значение переменной "у" также будет считаться равным нулю и именно этот ноль будет занесен в ячейку "С4". А если у Вас там установлен формат "отображать нулевые значения, как пустые", Вы вообще не увидите результата работы программы.

(150k баллов)
0

Ок, спасибо, как присвоить значение t, чтобы ветки не занулялись

0

Так же, как ты присваиваешь x.