Калькулятор - алгоритм?
-
- Уже с Приветом
- Posts: 2489
- Joined: 04 Feb 2002 10:01
- Location: Слава Україні!
Калькулятор - алгоритм?
Коллеги, где найти алгоритм для написания калькулятора, который умеет выполнять +,-, *, / для очень больших чисел, которые видимо придется представлять как строки и с ними оперировать?
-
- Уже с Приветом
- Posts: 18906
- Joined: 30 Aug 2001 09:01
- Location: 3rd planet
Re: Калькулятор - алгоритм?
Реализуйте свой собственный класс чисел произвольной точности и пользуйте любой калькулятор, например из книги Страуструпа.
Тупизна как Энтропия. Неумолимо растет.
-
- Уже с Приветом
- Posts: 2489
- Joined: 04 Feb 2002 10:01
- Location: Слава Україні!
Re: Калькулятор - алгоритм?
Boriskin wrote:Реализуйте свой собственный класс чисел произвольной точности и пользуйте любой калькулятор, например из книги Страуструпа.
Нужно реализовать операции над строками, в которых представлены большие числа, поэтому я думаю Страуструп не подходит.
Т.е., первое, что на ум приходит - это к примеру сложение реализовывать по алгоритму сложения чисел в столбец.
-
- Уже с Приветом
- Posts: 20297
- Joined: 01 Dec 2003 23:16
- Location: Russia->USA
Re: Калькулятор - алгоритм?
Win32nipuh wrote:Т.е., первое, что на ум приходит - это к примеру сложение реализовывать по алгоритму сложения чисел в столбец.
Мне кажется правильное решение, только конечно не по одной цыферке, а по слову (если конечно скорость имеет значение).
А вообще не только алгоритмы, но и библиотеки наверняка имеютя
уж на фортране точно
-
- Уже с Приветом
- Posts: 8881
- Joined: 17 Jun 2003 04:41
Если числа целые и на C++, стяните любую криптографическую библиотеку - Crypto++ например. Там есть классы для работы с длинными целыми.
Или вот это попробуйте - http://www.swox.com/gmp/ .
Самому писать - дело неблагодарное, особенно если скорость работы имеет хоть какое-то значения.
Или вот это попробуйте - http://www.swox.com/gmp/ .
Самому писать - дело неблагодарное, особенно если скорость работы имеет хоть какое-то значения.
-
- Уже с Приветом
- Posts: 2278
- Joined: 02 Jan 2001 10:01
- Location: MSK; NJ; MA; UAE, Chicago
Вот что у меня получилось за 5 минут с Экселем
Сложение. Жирным выделен конечный результат.
Дальше можно улучшать как захочется
Сложение. Жирным выделен конечный результат.
Дальше можно улучшать как захочется
You do not have the required permissions to view the files attached to this post.
Гриша
------------
Why would anybody come here if they had a pony? Who leaves a country packed with ponies to come to a non-pony country? It doesn't make sense.. am I wrong?
------------
Why would anybody come here if they had a pony? Who leaves a country packed with ponies to come to a non-pony country? It doesn't make sense.. am I wrong?
-
- Уже с Приветом
- Posts: 427
- Joined: 08 May 2001 09:01
-
- Уже с Приветом
- Posts: 2278
- Joined: 02 Jan 2001 10:01
- Location: MSK; NJ; MA; UAE, Chicago
-
- Уже с Приветом
- Posts: 8881
- Joined: 17 Jun 2003 04:41
IPoloz wrote:Подойдет?
http://www.informatik.tu-darmstadt.de/TI/LiDIA/
Она небесплатная. "LiDIA, including the point counting package, is free for non-commercial pruposes. A license fee is not required for non-commercial applications."
-
- Уже с Приветом
- Posts: 18906
- Joined: 30 Aug 2001 09:01
- Location: 3rd planet
Re: Калькулятор - алгоритм?
Win32nipuh wrote:Boriskin wrote:Реализуйте свой собственный класс чисел произвольной точности и пользуйте любой калькулятор, например из книги Страуструпа.
Нужно реализовать операции над строками, в которых представлены большие числа
Либо я не врубился в вашу задачу, либо...
![Cool 8)](./images/smilies/icon_cool.gif)
реализуете нечто вроде class Number, в котором опять таки реализуете все возможные операции как то +, -, *, /. А внутри как хотите - так и храните - хоть в строках, хоть в массивах. И - вместо встроенных типов подсовываете в страуструповский калькулятор...
Попутно неплохой трениг по плюсам.
![Mr. Green :mrgreen:](./images/smilies/icon_mrgreen.gif)
Или я чего то пропустил?
Тупизна как Энтропия. Неумолимо растет.
-
- Уже с Приветом
- Posts: 2489
- Joined: 04 Feb 2002 10:01
- Location: Слава Україні!
Re: Калькулятор - алгоритм?
Boriskin wrote:Win32nipuh wrote:Boriskin wrote:Реализуйте свой собственный класс чисел произвольной точности и пользуйте любой калькулятор, например из книги Страуструпа.
Нужно реализовать операции над строками, в которых представлены большие числа
Либо я не врубился в вашу задачу, либо...![]()
реализуете нечто вроде class Number, в котором опять таки реализуете все возможные операции как то +, -, *, /. А внутри как хотите - так и храните - хоть в строках, хоть в массивах. И - вместо встроенных типов подсовываете в страуструповский калькулятор...
Попутно неплохой трениг по плюсам.![]()
Или я чего то пропустил?
Все ок, вопрос в алгоритмах реализации опреаций, хранение действительно не проблема, но скорее всего в строках. Да, пирдется видимо реализовывать пересчет в системы исчисления с большим основанием.
Идея Гриши хорошая, как частный случай.
-
- Уже с Приветом
- Posts: 12072
- Joined: 17 Nov 2002 03:41
- Location: английская колония
-
- Уже с Приветом
- Posts: 2489
- Joined: 04 Feb 2002 10:01
- Location: Слава Україні!
A. Fig Lee wrote:Еще Керниган и Ритчие в своей книжке описали классный и простой алгоритм с полиш нотацией. Без всяких деревьев и прочих комплексностей.
Наверное я неправильно объяснил суть:
пример: юзер вводит две строки длиной 1000 символов (цифр), вторая длиной 500 символов (цифр) и между ними знак * (а возможны еще +, -, /)
И тот же юзер хочет получить на выходе строку-результат умножения вот таких чисел.
Уважаемый A. Fig Lee, чем тут может помочь Керниган или Ричи?
![Smile :-)](./images/smilies/icon_smile.gif)
-
- Уже с Приветом
- Posts: 12072
- Joined: 17 Nov 2002 03:41
- Location: английская колония
Win32nipuh wrote:A. Fig Lee wrote:Еще Керниган и Ритчие в своей книжке описали классный и простой алгоритм с полиш нотацией. Без всяких деревьев и прочих комплексностей.
Наверное я неправильно объяснил суть:
пример: юзер вводит две строки длиной 1000 символов (цифр), вторая длиной 500 символов (цифр) и между ними знак * (а возможны еще +, -, /)
И тот же юзер хочет получить на выходе строку-результат умножения вот таких чисел.
Уважаемый A. Fig Lee, чем тут может помочь Керниган или Ричи?, Увы...
По мотивам Вашего предыдущего выступления с деревьями...
![HBZ :pain1:](./images/smilies/pain25.gif)
Строки надо пушать на стек ясен пень.
Верить нельзя никому - даже себе. Мне - можно!
-
- Уже с Приветом
- Posts: 2489
- Joined: 04 Feb 2002 10:01
- Location: Слава Україні!