Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2010, 20:12   #1
Rustamel
Пользователь
 
Регистрация: 18.04.2010
Сообщений: 13
Смех Ошибка с Sqr c отрицательным числом

Всем добрый вечер. Помогите в решении элементарной математической функции

Sub func()
Dim f, x, a, b, h As Single, z As Integer
a = 1
b = 2
h = 0.1
For x = -5 To -4 Step h
f = Sqr(x + a) + (x ^ 2 + b) / x
z = z + 1
Worksheets(3).Cells(z, "a") = "f(x)= " & f
Worksheets(3).Cells(z, "b") = "при x= " & Format(x, "###.#")
Next x
End Sub
Дело в том что Excel ругается(выдаёт Run-time error '5': Invalid procedure call or argument) на Sqr c отрицательным значением т.е. x=-5,-4,-3 и т.д

Заранее спасибо
Rustamel вне форума Ответить с цитированием
Старый 18.04.2010, 22:06   #2
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

f = Sqr
Блин. пьяный я.
Ну,вроде из отрицательных чисел корень не извлекается, но, вроде, можно возвести в степень. Типа
f = a^b
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума Ответить с цитированием
Старый 18.04.2010, 22:23   #3
Rustamel
Пользователь
 
Регистрация: 18.04.2010
Сообщений: 13
По умолчанию

Я пробовал даже вводить вот так
f = (x + a)^(1/2) + (x ^ 2 + b) / x
бесполезно сирано ругается
Rustamel вне форума Ответить с цитированием
Старый 18.04.2010, 22:42   #4
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

Показал бы весь код и на што ругается
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума Ответить с цитированием
Старый 18.04.2010, 22:43   #5
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

Изначально поставь в начале кода Option Explicit
Будет проще искать ошибки
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума Ответить с цитированием
Старый 18.04.2010, 22:51   #6
Rustamel
Пользователь
 
Регистрация: 18.04.2010
Сообщений: 13
По умолчанию

Спасибо! Уже разобрался он ругался потамучто не мог извлеч корень из отрицательного числа а я возвёл его в модуль
f = Sqr(abs(x + a)) + (x ^ 2 + b) / x
Rustamel вне форума Ответить с цитированием
Старый 18.04.2010, 23:01   #7
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Я бы посоветовал сделать так:
Код:
Sub func()
    Dim f, x, a, b, h As Single, z As Integer
    a = 1
    b = 2
    h = 0.1
    For x = -5 To -4 Step h
        f = Sgn(x + a) * Sqr(Abs(x + a)) + (x ^ 2 + b) / x
        z = z + 1
        Worksheets(3).Cells(z, "a") = "f(x)= " & Format(f, "0.000")
        Worksheets(3).Cells(z, "b") = "при x= " & Format(x, "###.#")
    Next x
End Sub
А то у вас теряется знак выражения Sqr(x + a), что приводит к ошибке в вычислениях.
EducatedFool вне форума Ответить с цитированием
Старый 18.04.2010, 23:04   #8
Rustamel
Пользователь
 
Регистрация: 18.04.2010
Сообщений: 13
По умолчанию

Благодарствую!!!!
Rustamel вне форума Ответить с цитированием
Старый 19.04.2010, 00:21   #9
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Нельзя же так над математикой издеваться...
Данная функция не определена на интервале значений х от -бесконечности до -1. А по заданию требуется определить значения функции для х от -5 до -4.
в данном задании строку, где вычисляется f надо закоментировать вообще, а строку
Worksheets(3).Cells(z, "a") = "f(x)= " & f
заменить на
Worksheets(3).Cells(z, "a") = "f(x) - не определена."

Например при х=-5, функция равна комплексному числу
f(x) = -5.4 + 2i,
где i - это мнимая единица (i в квадрате = -1)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
математические действия с числом pionerka Помощь студентам 8 23.02.2010 14:37
Найти сумму чисел последовательности, расположенных между максимальным отрицательным и минимальным положи Maks6169 Помощь студентам 6 02.12.2009 10:38
Ошибка переполнения и sqr. ray13 Паскаль, Turbo Pascal, PascalABC.NET 10 04.03.2009 15:59
Вывести число, предшествующее первому отрицательному и число, следующее за последним отрицательным Rid Паскаль, Turbo Pascal, PascalABC.NET 4 22.12.2008 16:50