|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
04.03.2009, 17:16 | #1 |
Пользователь
Регистрация: 02.03.2009
Сообщений: 24
|
Найти функцию через ВБА
F(x)=ctgx+ 1
Есть пример, как делали F(x)=1/2 sin x/4 +1 Код:
Последний раз редактировалось Stilet; 05.03.2009 в 08:28. |
05.03.2009, 08:31 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Я немножко не есть понять причем тут "Между этими значениями нет корня", но тебе всего-то поменять конец прожки:
Код:
I'm learning to live...
|
06.03.2009, 09:24 | #3 |
Пользователь
Регистрация: 02.03.2009
Сообщений: 24
|
Наверно препод требовал проверку на корень...
Я правильно понял, что надо тот пример который я скопировал, просто заменить последнюю строку: Private Function F(x As Single) As Single F = 1 / 2 * Sin(x / 4) + 1 и всё? п.с. сейчас просто нету возможности проверить |
07.03.2009, 15:33 | #4 |
Пользователь
Регистрация: 02.03.2009
Сообщений: 24
|
ctgx = -1 / sin^2(x) - разве производная не этому равна? 0-о и ^ -этот знак - степень ?
Я попытался вставить : F = -1 / Sin^2(x) + 1 - Syntax error что не так сделал, подскажите плз. |
07.03.2009, 16:44 | #5 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Код:
|
07.03.2009, 17:39 | #6 |
Пользователь
Регистрация: 02.03.2009
Сообщений: 24
|
Да, больше Sytax error нету, но появилось
Run Time Eror '11' Division vy zero в этой же строке ошибка F = -1 / (Sin(x)) ^ 2 |
07.03.2009, 18:50 | #7 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Так и должно быть, если у тебя в одной из ячеек
a = Cells(4, 3).Value b = Cells(4, 4).Value находится ноль (или значение отсутствует) В функцию (строкой If F(a) * F(b) >= 0 Then) передаётся нулевое значение, синус нуля тоже равен нулю, соответственно, происходит деление на 0, и вылетает эта ошибка. |
08.03.2009, 14:04 | #8 |
Пользователь
Регистрация: 02.03.2009
Сообщений: 24
|
Спасибо я понял...
Вопрос, а оно точно всё правильно, как вы думаете, скажите пожалуйста, а то для меня это далеко всё... |
09.03.2009, 12:29 | #9 |
Пользователь
Регистрация: 02.03.2009
Сообщений: 24
|
Мне кажется это же не нормально, что при любом раскладе оно должно выбивать нет корня...или всё правильно скажите...пожалуйста
|
09.03.2009, 12:55 | #10 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Цитата:
Если у тебя функция F до сих пор имеет вид Код:
Мог бы и сам чуточку поразмыслить - ведь уже который день решаешь эту задачку, а там делов-то на 2 минуты... Твоя функция F всегда возвращает отрицательное значение (попробуй сам догадаться, почему), а в коде есть строка If F(a) * F(b) >= 0 Then MsgBox "Между этими значениями нет корня" Произведение 2-х отрицательных чисел всегда положительно... |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Надо найти функцию, По вводимой в ячейку дате рождения показать название соответствующего знака Зодиака. | Incognitoal | Microsoft Office Excel | 13 | 03.03.2009 08:18 |
Как создать через редактор Visual Basic функцию в Excel | Dima007 | Microsoft Office Excel | 2 | 04.11.2008 20:04 |
Какую API функцию следует использовать чтобы найти Handle бутона | SeRhy | Общие вопросы Delphi | 4 | 21.10.2008 23:43 |
Как в 2007 из ВБА добавить кнопку на панель быстрого доступа | IgorGO | Microsoft Office Excel | 2 | 30.09.2008 13:52 |
копирование таблиц надо решение на ВБА | kievlyanin | Microsoft Office Excel | 36 | 13.05.2008 10:47 |