Доброе время суток, дамы и господа! Помогите вот с какой проблемой: делаю с "ребенком" (9 класс) проект по информатике, проект представляет собой визуализатор графиков различных функций (линейная, квадратичная, степенная и т.д.), столкнулся с проблемой - не могу запрограммировать степенную функцию y=(аx+b)^1/2 при х < 0 код крашится. Я понимаю, что в данном случае корень из отрицательного числа дает мнимое число, которое может иметь бинарное значение + или -, но как это сделать в VBA и правильно отобразить на графике на могу додуматься. Заранее спасибо. Файл проекта прилагаю. Проблемный участок кода прилагаю:
Код
'Степенная y=ax^1/2
If Cells(3, 1) = "Степенная y=(ax+b)^1/2" Then
For i = 3 To 9 Step 1
Cells(5, i) = Sqr(Cells(8, 4) * Cells(4, i) + Cells(8, 5))
Next i
End If
hathory, может так? не очень силен...вдруг проверка на отрицательность поможет
Код
If Cells(3, 1) = "Степенная y=(ax+b)^1/2" Then
For i = 3 To 9 Step 1
If Cells(4, i) < 0 Then
Cells(4, i) = Abs(Cells(4, i))
Cells(5, i) = Sqr(Cells(8, 4) * Cells(4, i) + Cells(8, 5)) * -1
Else
Cells(5, i) = Sqr(Cells(8, 4) * Cells(4, i) + Cells(8, 5))
End If
Next i
End If
Mershik, спасибо за ответ, но это не подходит, проблема не в попытке уйти от отрицательных значений, проблема запрограммировать мнимое число, точнее тоже не смогу объяснить, я гуманитарий (биолог) по образованию. при проверке на отрицательность график искажается и уже не является графиком данной функции.
в 9 классе мнимые числа не проходят. и график рисуют всегда до значения 0. и задачи как раз стоит чтобы при отрицательных она не рисовалась. иначе будет не зачет. невозможно нарисовать мнимые числа на оси действительных.
aibolit, да я это понимаю, в обычных школах не преподают, но в школе с математическим уклоном в проекте приветствуется. Но я уже понял, что в VBA учесть мнимые числа у меня не получится. Если только частично, введением отрицательного числа при расчете в модуль. Собственно тему можно закрывать, так как aibolit абсолютно прав. Всем огромное спасибо за помощь.