Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Квадратный корень с большого числа

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Квадратный корень с большого числа
Имя
Сообщение << Старые топики   Новые топики >>
Квадратный корень с большого числа - 2006-08-20 20:28:38   
c001z3rO

Сообщений: 80
Оценки: 0
Присоединился: 2005-09-21 21:24:47
В общем пишу на Delphi/Pascal программу и в ней есть такое событие когда нужно добыть квадратный корень с большого числа.
Code:

q:real;
begin
q:=sqrt(z);


В общем если z меньше 2000000000 то всё ОК, а вот если оно больше 2000000000, то ничего не получаеться. Кто нить может что-то подсказать по этому поводу?
Post #: 1
Квадратный корень с большого числа - 2006-08-20 20:30:07   
Python

Сообщений: 4964
Оценки: 0
Присоединился: 2005-12-14 08:32:13
Эх, C001z3rO, C001z3rO… Такой большой, а поиском пользоваться не умеем. Смотри, что я нашёл [sm=sm128.gif]





Вычисление квадратного корня из целого числа



Вычисление квадратного корня из целого числа



… использовать следующие утверждения о расположении корней квадратного трехчлена



RPN CalcSeries Mathematics Calculator - программа для КПК Palm OS



Вычисление квадратного корня из целого числа - Программирование от RIN.RU



<BR>SoftCraft:
Декларативное программирование<BR>



и вновь квадратный корень (fido7.ru.algorithms)



Как видите, только квадраты чисел 5 и 6 по модулю 11 равны 3. Если квадратный …



История открытия комплексных чисел.
Post #: 2
Квадратный корень с большого числа - 2006-08-20 20:45:49   
freddi

Сообщений: 213
Оценки: 0
Присоединился: 2006-04-17 18:03:00
попробуй для переменной q поменять тип на double или на extended.
Post #: 3
Квадратный корень с большого числа - 2006-08-20 20:54:28   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
больше 2000000000, или может быть, всё-таки, границей является 2147483647?
Если второе, то, значит твоё значение в sqrt приходит из int'а. Следи за типизацией, автоматические преобразования типов, могут понаделать гадостей.
Post #: 4
Квадратный корень с большого числа - 2006-08-20 22:04:26   
c001z3rO

Сообщений: 80
Оценки: 0
Присоединился: 2005-09-21 21:24:47
Границей являлось именно 2147483647
Сейчас какой бы тип переменной q не ставил, хоть real, хоть double, хоть extended, пределом являеться 4294967295

rgo, моё значение приходит не откуда, я просто пишу q:=sqrt([тут число, а не переменная]);
>>Следи за типизацией, автоматические преобразования типов, могут понаделать гадостей.
Поподробнее плиз…
Post #: 5
Квадратный корень с большого числа - 2006-08-20 22:48:52   
c001z3rO

Сообщений: 80
Оценки: 0
Присоединился: 2005-09-21 21:24:47
Поскольку я раньше писал q:=sqrt([тут число, а не переменная]);
то у мя нифига не получалось, если в начале взять какую-то переменную и указать её тип real (extended), то потом всё будет ОК.

var
q, z: real;
z := 9876543210;
q:=sqrt(z);
writeln(q:5:15);


А вот как-бы мне теперь q вывести на форму?
Label1.Caption:=q не получаеться
если делать i:integer;
i:=round(q);
Label1.Caption:=IntToStr(i);
то выводить получаеться округленное, а хотелось-бы увидеть еще 15знаков после точки.
Post #: 6
Квадратный корень с большого числа - 2006-08-21 00:15:05   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
я не знаток паскаля, но попробуй написать:
sqrt (2147483648.0);
в сях это работает.
Post #: 7
Квадратный корень с большого числа - 2006-08-21 00:24:13   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

—————-<BR>Цитата: Дата:20.08.2006 22:04:26, Автор:c001z3rO ::
Поподробнее плиз…
—————-


в твоём случае парсер читает число как целое четырёхбайтовое со знаком, то есть принимающее значения от -2^31, до 2^31-1. последнее и есть 2147483647. а 4294967295 – это 2^32-1, то есть ты умудрился сказать парсеру, чтобы он читал беззнаковое число.
А надо сказать чтобы он читал float. В C, например, для этого достаточно воткнуть куда-нибудь точку. например 5. или 5.0 – это вещественное 5, в то время как просто 5 – это целое 5 со знаком.
учи матчасть, это всё должно быть описано.
Post #: 8
Квадратный корень с большого числа - 2006-08-21 00:27:37   
c001z3rO

Сообщений: 80
Оценки: 0
Присоединился: 2005-09-21 21:24:47
rgo, а зачем?! У мя уже всё получилось, читай пост выше! Я уже могу брать любые числа, даже 9999999999
Сейчас проблема в другом: я вывожу терь значени q
Label1.Caption := FloatToStr(q);
но оно выводит только 10 знаков после точки, а мне нужно видеть 15
Post #: 9
Квадратный корень с большого числа - 2006-08-21 00:35:44   
freddi

Сообщений: 213
Оценки: 0
Присоединился: 2006-04-17 18:03:00
quote:

—————-<BR>Цитата: Дата:21.08.2006 0:27:37, Автор:c001z3rO ::
а мне нужно видеть 15
—————-



используй double или extended, я тебе уже говорил об этом.
Post #: 10
Квадратный корень с большого числа - 2006-08-21 01:09:40   
c001z3rO

Сообщений: 80
Оценки: 0
Присоединился: 2005-09-21 21:24:47
Нет. Это решаеться через
Label1.Caption := IntToStr(Trunc(q)) +
StringReplace(FloatToStrF(Frac(q), ffFixed, 16, 16), '0.', '.', []);
Post #: 11
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Квадратный корень с большого числа







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.