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

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Деление двух длинных чисел, как реализовать с помощью объектов в Delphi?
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 1
Пол: Женский

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


В FAQ'е (длинная арифметика) нашла функции для деления двух длинных чисел. Можете объяснить, как реализовать это в Delphi, желательно как объекты? Заранее спасибо. smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

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


Цитата
Забыла инициализировать переменную Per...

wink.gif unsure.gif

Сделала процедуру с делением. Воть:
procedure TForm12.Button3Click(Sender: TObject);
var m,n: longint;
f1,f2,ost,raz: TObj;
begin
if (edit5.text='') or (edit6.text='') then
begin
MessageBeep(MB_ICONHAND);
ShowMessage('Не заданы значения!');
end
else
begin
memo2.Text:='';
m:=StrToInt(edit5.Text);
n:=StrToInt(edit6.Text);
f1.Init; f2.Init; ost.Init; raz.Init;
fact(f1, m);
fact(f2, m-n);
raz.DivLongTwo(f1,f2,ost);
memo2.text:=raz.HugeToStr;
end;
end;


Только если просто считать факториалы от 0 или 1 опять будет "access violation at address 0046ECE in module ... Read of address 02C0FFFC" и выделится эта строка в модуле dlinna

Function TObj.HugeToStr: String;
var ls,s:string;
i:integer;
begin
result := '';
str(_osn div 10, ls);
result := result + IntToStr(X^[X^[0]]);
for i:=X^[0]-1 downto 1 do
begin
str(X^[i],s); //эта
while length(s)<length(ls) do s:='0'+s;
result := result + s;
end;
end;

а если делить их друг на дружку будет считать неправильно(((

Мне надо прописать эти варианты (if n=0 then ...) или можно сделать по-другому?





 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
serogan   Деление двух длинных чисел   2.02.2007 22:11
volvo   Здесь: Длинная арифметика что, НЕ объекты? Вот ту…   2.02.2007 23:48
Гость   Но в Hugeobj только умножение :unsure: , деления …   3.02.2007 3:42
volvo   деления нет (оно есть выше, но вроде не через объе…   3.02.2007 7:05
Айра   Мне тоже нужно это деление. Я нашла в DRKB модуль,…   3.02.2007 4:38
volvo   Давай по-порядку: 1) "почему" - потому, …   3.02.2007 4:53
Айра   Спасибо, volvo! Все откомпилировалось.   3.02.2007 5:10
Айра   volvo, мне кажется, вы уже поняли, кто был гостем …   3.02.2007 7:47
volvo   Естественно, у меня IP адреса перед глазами :) В …   3.02.2007 8:27
Айра   Это я поняла. Но расширение in я встретила впервы…   3.02.2007 8:37
volvo   Я создавао обычный текстовый файл, и потом переиме…   3.02.2007 8:56
Айра   А я так делала. При работе программы был просто ч…   3.02.2007 9:01
Айра   Еще раз спасибо! До свидания. Утро уже как ни …   3.02.2007 9:07
volvo   1) Как называются у тебя входной/выходной файл? 2)…   3.02.2007 9:06
Айра   Входной я назвала d1.text, а выходной - d.text. А …   3.02.2007 15:27
volvo   Нет... Просто я что-то не так портировал. Исходная…   3.02.2007 18:14
volvo   Да, так и есть... Модуль, строка №242 - …   3.02.2007 18:31
Айра   Спасибо! Я исправила. Теперь у меня такой во…   4.02.2007 4:12
volvo   Убрать использование TLargeInt и пользоваться толь…   4.02.2007 13:39
Айра   Буду пользоваться dlinna. Было бы неплохо. Я пыт…   4.02.2007 18:41
volvo   Это - не метод объекта, просто процедура, описанна…   4.02.2007 19:08
Айра   Спасибо!!! Конечно :) Я правильно…   4.02.2007 20:14
volvo   :yes2: Забыла инициализировать переменную Per...…   4.02.2007 20:25
Айра   :wink: :unsure: Сделала процедуру с делением.…   5.02.2007 1:05
volvo   Добавить строку в Fact: { A := n! } procedure…   5.02.2007 1:24
Айра   volvo, спасибо тебе огромное!!! :give…   5.02.2007 2:35


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

 





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