|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.10.2012, 00:22 | #1 |
Регистрация: 03.10.2012
Сообщений: 5
|
Invalid floating point operation
Помогите пожалуйста, на завтра лабу здавать, а прога работает неполноценно- если задавать переменным небольших значений( 1,2,3) всё норм вычисляется, но при 8,9,10,.... выбрасывает ошибку 207. Проблемы взникают при вычислении значения b.
Код:
Последний раз редактировалось Bulletinn; 03.10.2012 в 00:35. |
03.10.2012, 06:29 | #2 |
Форумчанин
Регистрация: 05.09.2011
Сообщений: 869
|
А как тебе помочь, если ты не говоришь, что тебе нужно сделать? Мы тебе тут кто? дизассемблеры? Думаешь, оно так приятно - догадываться, что твоя прога ДОЛЖНА БЫЛА сделать? Когда ты приходишь к доктору, ты говоришь, что у тебя болит? или - пусть сам догадывается?..
Короче.. я НЕ ЗНАЮ, что ты ХОТЕЛ сказать этой строкой: Код:
Предпочитаю на "ты".
|
03.10.2012, 13:26 | #3 | |
Регистрация: 03.10.2012
Сообщений: 5
|
Цитата:
|
|
03.10.2012, 15:41 | #4 |
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
Смотрим на функцию pow() и стараемся больше не извращаться c логарифмами.
а теперь посчитаем: real может содержать значения порядка 2^64, т.е. X^Y не должно превышать 64... upd. Даже и того меньше: http://programmersforum.ru/showthread.php?t=130193 порядка 39-40
Правильно поставленная задача - три четверти решения.
Последний раз редактировалось DiemonStar; 03.10.2012 в 16:43. |
04.10.2012, 03:35 | #5 | |
Форумчанин
Регистрация: 05.09.2011
Сообщений: 869
|
Цитата:
Код:
при x~y~z~10 (знак ~ означает приблизительное равенство) мы получаем первое слагаемое в твоей исходной формуле, 2^(y^x ) = 2^(10^10) = 2^10000000000 ~ 10^3000000000. Я затрудняюсь тебе объяснить, насколько громадное это число.. Представить это невозможно. Если бы каждый атом представлял бы целую вселенную, вложенную в нашу, а каждый атом той вселенной представлял бы тоже целую вселенную, как наша, и таких уровней было бы столько же, сколько атомов в нашей Вселенной, то суммарное количество атомов во всех этих воображаемых вселенных было бы НАМНОООООГО МЕНЬШЕ, чем то число, которое ты пытаешься скормить бедному компьютеру.. Чтобы только записать все его цифры, потребуется 3-терабайтный диск. Тебе еще продолжает казаться странным, что твой комп подавился? Я не знаю, откуда у тебя эта задача. Но я сильно подозреваю, что тот, кто тебе ее дал, либо сам сделал ошибку, либо хотел показать тебе, что возможности компьютеров (да и вообще человеческие) все-таки ограничены, либо хотел просто посмеяться, глядя как ты мучаешься . Да, маленькие входные числа твоя программа сможет осилить. Но это еще ничего не значит. Экспонента - это слишком быстро растущая функция. С ней шутки плохи. Понял? ))
Предпочитаю на "ты".
Последний раз редактировалось TinMan; 04.10.2012 в 03:54. |
|
04.10.2012, 16:55 | #6 |
Регистрация: 03.10.2012
Сообщений: 5
|
Спасибо), задача из методички по программированию. Уже не знал что с ней делать, ведь extended не помогал, задание условий тоже. Значит оставлю как есть....
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
floating point invalid operation | dimavit | Общие вопросы Delphi | 6 | 12.08.2012 18:52 |
Invalid floating point operation | _SatanA_ | Общие вопросы Delphi | 11 | 01.02.2012 11:26 |
invalid floating point operation | Mikhail91 | Общие вопросы C/C++ | 5 | 24.03.2010 00:05 |
invalid floating point operation | mosq | Общие вопросы Delphi | 7 | 01.11.2009 13:28 |
Invalid floating point operation | Skytis | Помощь студентам | 3 | 07.05.2008 12:16 |