Страницы: 1
RSS
VBA. Запрограммировать выведение графика степенной функции y=(аx+b)^1/2
 
Доброе время суток, дамы и господа!
Помогите вот с какой проблемой: делаю с "ребенком" (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 - 13.03.2020 15:48:46
 
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, спасибо за ответ, но это не подходит, проблема не в попытке уйти от отрицательных значений, проблема запрограммировать мнимое число, точнее тоже не смогу объяснить, я гуманитарий (биолог) по образованию. при проверке на отрицательность график искажается и уже не является графиком данной функции.
Изменено: hathory - 13.03.2020 16:05:11
 
hathory, а просто покажите желаемый результат и все
Не бойтесь совершенства. Вам его не достичь.
 
Вот такой должен получиться.
 
В #5 ясно написано: обратите внимание на область допустимых значений выражения. То есть, рассматривать нужно только те аргументы, для которых
a*x+b>=0
Владимир
 
sokol92, это общая фраза в онлайн калькуляторе, на самом деле отрицательные значения также имеют быть:
 
в 9 классе мнимые числа не проходят. и график рисуют всегда до значения 0. и задачи как раз стоит чтобы при отрицательных она не рисовалась. иначе будет не зачет. невозможно нарисовать мнимые числа на оси действительных.
 
aibolit, да я это понимаю, в обычных школах не преподают, но в школе с математическим уклоном в проекте приветствуется. Но я уже понял, что в VBA учесть мнимые числа у меня не получится. Если только частично, введением отрицательного числа при расчете в модуль.
Собственно тему можно закрывать, так как aibolit абсолютно прав. Всем огромное спасибо за помощь.
Изменено: hathory - 13.03.2020 17:22:23
Страницы: 1
Наверх