IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

> Sqrt Function, Интересный факт
сообщение
Сообщение #1


Гость






Напишем маленькую программку(Console App)
var
I,K: Ineteger;
Begin
I := 100000;
K := round(sqrt( sqr(I) ));
WriteLn('k=',K);
ReadLn;
End;

Как вы думаете что будет выведено?Максимальный размер Integer 2147483647 т.е 2*10^10
Будет выведено 37551. Мы думаем что это связано что когда в функцию sqrt поступает Integer там происходит переполнение.
Если бы I было типа Real то все нормально.
 К началу страницы 
+ Ответить 
 
Closed Topic Открыть новую тему 
Ответов
сообщение
Сообщение #2


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(IBladeMasterI @ 4.10.2006 19:20) *

Максимальный размер Integer 2147483647 т.е 2*10^10

Ошибка в подсчете количества знаков.
2 147 483 647 ~ 2*10^9

Цитата(volvo @ 4.10.2006 20:23) *

100000= 10^5
Это с каких пор? Вообще-то 10^6

Хм, volvo, и ты в арифметике иной раз сбоишь..

Цитата(Гость @ 4.10.2006 20:40) *

Скрин: так ты делал на паскале, а я console app т.е в Delphi 7.
Вопрос: Как решить на Дельфи 7 не прибегая к Real ?

IBladeMasterI, а ты, оказывается, большой любитель вводить собеседников в заблуждение. Если уж ты постишь задачу по Дельфи в раздел по Паскалю - то, может, хотя бы сообщишь это? Кстати, volvo тебя спросил про компилятор в посте №6 - почему ты тогда проигнорировал вопрос, а теперь (в посте №13) указываешь на якобы неточность? Тебе наплевать на время тех, кто отвечает?


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
IBladeMasterI   Sqrt Function   4.10.2006 22:20
volvo   А ВЫ что хотели? Потеря разрядности, результат - н…   4.10.2006 22:49
IBladeMasterI   100000= 10^5 10^5*10^5=10^10, Это <= 32 бит, т.…   4.10.2006 23:21
IBladeMasterI   100000= 10^5 10^5*10^5=10^10, Это <= 32 бит, т…   4.10.2006 23:25
volvo   :blink: :blink: Это с каких пор? Вообще-то 10^…   4.10.2006 23:23
IBladeMasterI   Ха, при исполнение вашего кода выдает тотже резуль…   4.10.2006 23:23
Гость   Ха, при исполнение вашего кода выдает тотже резул…   4.10.2006 23:26
Гость   Ха, при исполнение вашего кода выдает тотже резул…   4.10.2006 23:32
volvo   Как ВЫ думаете, прежде чем что-то отвечать, НЕУЖЕЛ…   4.10.2006 23:24
Гость   10^1=10 10^2=100 10^3=1000 10^4=10000 10^5=100000 …   4.10.2006 23:28
volvo   Запусти Windows Calculator, переведи 100000 в Bin…   4.10.2006 23:30
volvo   Если это не помогает ТЕБЕ, это не значит, что у ме…   4.10.2006 23:34
Гость   Посчитал, да их там 34 - переполнение Скрин: так т…   4.10.2006 23:40
lapp   Максимальный размер Integer 2147483647 т.е 2*10^1…   5.10.2006 9:46
Гость   тебя спросил про компилятор в посте №6 - почему т…   5.10.2006 11:14
lapp   Мне не наплевать,просто я думал что Object Pascal…   5.10.2006 14:56


Closed Topic Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 0:23
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name