Нужна помощь прогромистов
Public Sub dim7()
Const n = 8
Dim a(n), x(n) As Single
Dim i As Integer
Dim h, s, p, p1, r As Single
For i = 1 To n
a(i) = Cells(i + 1, 1)
x(i) = Cells(i + 1, 2)
Next i
s = 0: p1 = 1
For i = 1 To n
s = s + x(i) ^ a(i)
h = Sin(s)
p1 = p1 * Log(x(i)) **********************
p = (1 / 3) * p1
Next i
If Abs(h) <= 0.5 Then
r = h + p - 1
Else
r = (p * h) / (p + h)
End If
Cells(12, 1) = "r="
Cells(12, 2) = r
End Sub
VBA выдает ошибку №5 "Invalid procedure call or argument" (строка *********** )
Помогите решить проблему
[ссылка заблокирована по решению администрации проекта]
Во избежании дальнейших вопросов, поясню:
"***********" - это я просто пометил стоку в которой выдает ошибку.
проверьте значение x(i) для каждого i
ошибку пишет потому что какое то значение в x(i) меньше или равно 0
логарифм может быть посчитан только от положительного числа
и еще, в бейсике надо писать тип к каждой переменной, иначе смысла нет объявлять вообще
т. к. переменные будут с автоматически изменяемыми типами, что может привести к неверным вычислениям
Dim a(n) As Single, x(n) As Single
Dim i As Integer
Dim h As Single, s As Single, p As Single, p1 As Single, r As Single
**********************
а что это за строка из символов если не секрет что она делает ?
не знаток. . но может быть, представить x(i) в качестве отдельной переменной в Log(x(i))..