Деление двух длинных чисел, как реализовать с помощью объектов в Delphi? |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.
Деление двух длинных чисел, как реализовать с помощью объектов в Delphi? |
serogan |
Сообщение
#1
|
Группа: Пользователи Сообщений: 1 Пол: Женский Репутация: 0 |
В FAQ'е (длинная арифметика) нашла функции для деления двух длинных чисел. Можете объяснить, как реализовать это в Delphi, желательно как объекты? Заранее спасибо.
|
volvo |
Сообщение
#21
|
Гость |
Это - не метод объекта, просто процедура, описанная в Interface - части модуля (чтобы иметь к ней доступ извне), так же, как и та, что присутствует в HugeObj ...
{ A := n! } Цитата В HugeObj для того, чтобы можно было выводить результат в memo (ввиде текста) Алена дала мне функцию Function HugeToStr: String. В dlinna наверно тоже что-то такое нужно добавить? А можно, я за нее? Опять же, аналогично тому, что делается в WriteLong, только вывод - не в файл, а в строку... { А вот это - уже метод объекта, не забывай его описание добавить в Type TObj } |
Айра |
Сообщение
#22
|
Профи Группа: Пользователи Сообщений: 731 Пол: Женский Репутация: 25 |
Спасибо!!!
Цитата А можно, я за нее? Конечно Я правильно дабовила? type Все компилируется, но при работе выдает ошибку "Нарушение прав доступа в адресе 00402fc8 в модуле 'uchebnik.exe'. Напишите из адреса 00000000'." и выделяет эту строку (модуль HugeObj я удалила из проекта): procedure TForm12.Button2Click(Sender: TObject); Я опять сделала что-то неправильно? Сообщение отредактировано: Айра - |
volvo |
Сообщение
#23
|
Гость |
Цитата Я опять сделала что-то неправильно? Забыла инициализировать переменную Per...Добавлено через 1 мин. begin |
Айра |
Сообщение
#24
|
Профи Группа: Пользователи Сообщений: 731 Пол: Женский Репутация: 25 |
Цитата Забыла инициализировать переменную Per... Сделала процедуру с делением. Воть: procedure TForm12.Button3Click(Sender: TObject); Только если просто считать факториалы от 0 или 1 опять будет "access violation at address 0046ECE in module ... Read of address 02C0FFFC" и выделится эта строка в модуле dlinna Function TObj.HugeToStr: String; а если делить их друг на дружку будет считать неправильно((( Мне надо прописать эти варианты (if n=0 then ...) или можно сделать по-другому? |
volvo |
Сообщение
#25
|
Гость |
Добавить строку в Fact:
{ A := n! } (просто когда цикл не выполняется ни разу, переменная A остается, в смысле - оставалась, неизменной, а это плохо) |
Айра |
Сообщение
#26
|
Профи Группа: Пользователи Сообщений: 731 Пол: Женский Репутация: 25 |
volvo, спасибо тебе огромное!!!
Я наконец-то доделала свою программу! Ура p.s. специфика русского человека - делать все в последний момент (завтра мне сдавать эту работу)))) Сообщение отредактировано: Айра - |
Текстовая версия | 13.05.2024 10:57 |