Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.02.2011, 19:15   #11
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

спокойно получаю число 4,0238(цифры)Е+2567 , Вы откомпилируйте, да посмотрите )
phomm вне форума Ответить с цитированием
Старый 21.02.2011, 19:31   #12
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а вы в человеческий вид перевидите.
потери точности не приемлемы.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 16.03.2011, 23:52   #13
mohnatik
Новичок
Джуниор
 
Регистрация: 16.03.2011
Сообщений: 2
По умолчанию

не подскажете в чем проблема... вычисляет правильно факториалы до 261... а дальше что-то косит...

Цитата:
const
BigNumber = 2700;

type
TBig = array [1..BigNumber] of Byte;

procedure F(var F: TBig; Value: Integer);
var
I: Integer;
K: Integer;
Q: Integer;
Z: Integer;
J: Integer;
begin
K := 0;
for I := 1 to BigNumber - 1 do
F[I] := 0;
F[BigNumber] := 1;
for I := 2 to Value do
begin
J := BigNumber;
while J - 1 > 0 do
begin
Q := F[J]*I;
Z := Q mod 10;
F[J] := Z + K;
K := Q div 10;
K := K + F[J] div 10;
F[J] := F[J] mod 10;
J := J - 1;
end;
end;
массив F содержит рассчитываемый интеграл
Value - число для расчета интеграла

Последний раз редактировалось mohnatik; 17.03.2011 в 00:01.
mohnatik вне форума Ответить с цитированием
Старый 17.03.2011, 13:50   #14
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Цитата:
Сообщение от mohnatik Посмотреть сообщение
вычисляет правильно факториалы до 261... а дальше что-то косит
При i = 262, j = 931 будет z + k = 262 - не влезает в f[j].
Код:
for J := BigNumber downto 1 do
begin
  K := F[J] * I + K;
  F[J] := K mod 10;
  K := K div 10;
end;
Somebody вне форума Ответить с цитированием
Старый 17.03.2011, 16:51   #15
mohnatik
Новичок
Джуниор
 
Регистрация: 16.03.2011
Сообщений: 2
По умолчанию

ой.. точно Byte же до 255... пасиб огромное Somebody
mohnatik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Факториал Денис999 Помощь студентам 5 23.11.2010 16:45
факториал locdoc Помощь студентам 11 14.11.2010 10:37
LineTo рисование на экране - lineto(0,1000,1000) - LineTo(DC, 1000, 1000); Crivel Общие вопросы Delphi 8 23.05.2009 22:30
факториал в си++ Sjava Помощь студентам 1 21.12.2008 12:17
Факториал в C++ slog Помощь студентам 2 03.12.2008 07:56