Ничего не понимаю

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
serix
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 177
Зарегистрирован: 09.11.2002 (Сб) 17:54
Откуда: Russia

Ничего не понимаю

Сообщение serix » 03.03.2004 (Ср) 21:15

Недавно пытался на компе построить график функции
((x + 3) * (x ^ 2 + 6 * x + 6)) ^ (1 / 3)
так вот, ни одна программа его правильно не строит. Пробовал и в Mathcad и свое пытался написать.
В своей программе ошибка, непомню какая. Суть ее в том что комп не может взять кубический корень из отрицательного числа, хотя еще в школе всем говорили, что его извлекать можно :wink: .
Так вот вопрос: Неужели это на всех PC так, и нельзя ли это вылечить?
Спасибо...
ZU

corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Сообщение corgi » 03.03.2004 (Ср) 22:52

vb к сожаленью щас у меня нет, но вот excel
Ничто так не ограничивает полёт мысли программиста, как компилятор

BOO
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 126
Зарегистрирован: 06.09.2003 (Сб) 14:23
Откуда: Саратовская обл. г.Энгельс

Сообщение BOO » 03.03.2004 (Ср) 23:45

я дома посмотрю у меня были исходники проги стоявший график и офигенный контрол по этому делу. Завтра выложу. :wink:
Слушайте рок!

BOO
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 126
Зарегистрирован: 06.09.2003 (Сб) 14:23
Откуда: Саратовская обл. г.Энгельс

Сообщение BOO » 04.03.2004 (Чт) 0:18

я построил на VB 8)
кажется так(я очень сомневаюсь), если корень не четной степени то минус можно вынести из под знака корня смотри в исходники мой вариант.
Вложения
temp.rar
(5.33 Кб) Скачиваний: 79
Слушайте рок!

BOO
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 126
Зарегистрирован: 06.09.2003 (Сб) 14:23
Откуда: Саратовская обл. г.Энгельс

Сообщение BOO » 04.03.2004 (Чт) 0:23

Блин,забыл сам контрол собственного производства
Вложения
график.rar
(369.92 Кб) Скачиваний: 63
Слушайте рок!

serix
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 177
Зарегистрирован: 09.11.2002 (Сб) 17:54
Откуда: Russia

Сообщение serix » 04.03.2004 (Чт) 19:37

Excel графики нормально строит, эта программа (которая от BOO) тоже, но этот график можно построить, т.е. специально для него искать при каких x под корнем получается отрицательное число и ставить минусы и модули где надо, но хочется все-таки найти универсальный способ для построения графиков такого типа, а не каждый раз задавать промежутки с отрицательными корнями.

Я пробовал строить этот график в Mathcad, Powertoy Calculator, еще в некоторых прогах - они все его строят неправильно, т.к. неправильно высчитывают этот корень.
И к тому же все-таки остается вопрос почему выводится ошибка если под кубическим корнем отрицательная величина.
ZU

sanches
El compañero
El compañero
 
Сообщения: 823
Зарегистрирован: 09.01.2003 (Чт) 3:58
Откуда: Р_О_С_С_И_Я ! (Питер)

Сообщение sanches » 04.03.2004 (Чт) 22:14

да потому, что извлечение корня n-ой степени эквивалентно возведению в 1/n степень, а делается это через натуральный логарифм, аргумент которого строго больше 0.
Изображение

serix
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 177
Зарегистрирован: 09.11.2002 (Сб) 17:54
Откуда: Russia

Сообщение serix » 11.03.2004 (Чт) 19:39

Блин, замечательно...
Кто это придумал, интересно, ему надо голову оторвать...
Получается что обычный калькулятор умнее писюка, т.к. он может считать возведение в степень отрицательного числа.
Но возникает вопрос: почему Excel и простой калькулятор в винде это все считают, они что, сверхумные чтоли, их же Microsoft сделал, они правильно работать по определению не должны :lol: ...
ZU

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 12.03.2004 (Пт) 12:51

Ну, сделай свою функцию-рубашку для возведения в степень (точнее, для корня), в которой проверяй знак подкоренного выражения.

corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Сообщение corgi » 12.03.2004 (Пт) 14:26

читаем msdn и что ж мы видим
MSDN писал(а):result = number^exponent
Remarks
A number can be negative only if exponent is an integer value. When more than one exponentiation is performed in a single expression, the ^ operator is evaluated as it is encountered from left to right.
:roll: :roll: :roll:
Ничто так не ограничивает полёт мысли программиста, как компилятор

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4160
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 13.03.2004 (Сб) 16:51

Степень 1/3 в наших условиях - не есть корень кубический, так как проц сначала делит 1 на 3 и получает конечную дробь вместо бесконечной (сколько знаков влезло в регистр). А такая степень отрицательного числа дает результат - комплексное число. Другое дело не понятно, почему не удается возвести в степень 0.2, ведь это точно корень пятой степени.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4160
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 14.03.2004 (Вс) 11:03

Сам понял. 0.2 в двоичном представлении тоже бесконечная периодическая дробь, как и любая дробь 1/n, где n не степень двойки.

corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Сообщение corgi » 14.03.2004 (Вс) 16:25

еще раз возводить можно только в степень которая я вляется числом типа инт, 0.2 ну никак не целочисленное
Ничто так не ограничивает полёт мысли программиста, как компилятор

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4160
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 15.03.2004 (Пн) 19:12

Это ясно, я пытался разобраться откуда такое ограничение - вроде разобрался.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 2

    TopList  
cron