Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.06.02;
Скачать: [xml.tar.bz2];

Вниз

Алгоритм умножения в столбик   Найти похожие ветки 

 
Mihan   (2003-05-15 12:53) [0]

Помогите пожалуйста написать подпрограмму, которая реализовывала бы алгоритм умножения чисел в столбик. Все это надо сделать при помощи строк.


 
MBo   (2003-05-15 12:54) [1]

Перемножь два числа в столбик на бумаге, протоколируя каждое свое действие. Вот и алгоритм готов.


 
clickmaker   (2003-05-15 12:56) [2]

http://www.torry.net/calculators.htm
http://www.torry.net/expressions.htm


 
Думкин   (2003-05-17 08:28) [3]

Для начала надо сложить 2 числа столбиком. Если это осилишь - перемножение - сделаешь.


 
drnet   (2003-05-17 18:11) [4]

Тут проблемма как он это представит.
Я решал эту проблему через array[.....] of byte (давно) и через char.
через чар проще, как на бумаге но дольше.

Для прикола, (утро, бадун, Жена - "2^64"(шахматы(кто знает)) - это много?) делал умножение х2, ну тем-же столбиком через char(array of char). дык 2^1000000 - 7 страниц ;) прикольно.

подходишь к комраду у спрашиваешь "представь себе _очень большое_ число", он думает, говорит типа "триллион триллионов" - а ты ему "фигня, темный ты как антрацит" и на стол ему - семь страниц мелким шрифтом....вот большое число 8-[ ]

2^50000 это около 133000 знков ;)

Это все так, для общего развития.


 
uw   (2003-05-17 19:08) [5]

>2^50000 это около 133000 знков ;)

Фигня! Примерно 16600 знаков.



 
Плохой человек   (2003-05-17 19:44) [6]

Я делал сложение в столбик, с дробными числами, потом даже реализовал умножение на основе сложения. Только запарило деление делать и я забросил это дело.


 
LMD   (2003-05-21 14:27) [7]


...
var
big:array of char;
...
SetLength(big,x) //х-длина числа
...
Function Mult_int(c:int;Big:elemtypea):elemtypea;
var
i,prod:int;
begin
prod:=0;
for i:=size-1 downto 0 do begin
prod:=prod+big[i]*c;
big[i]:=prod mod 10;
prod:=prod div 10;
end;
result:=big;
end;


 
LMD   (2003-05-21 14:30) [8]

ps. Когда-то давно в школе я писал практическую по информатике - вычисление числа ПИ, а училку не устраивала точность (она считала, что я могу написать и лучше, не ошиблась). Это фрагмент кода из той программы. Если не работает, прошу не бить, написал по памяти.
pps Совсем забыл.
size:=x


 
LMD   (2003-05-21 14:34) [9]

ppps еще одна ошибка. В объявлении переменной big почему-то напечатал char. Вот так должно быть
...
var
big:array of byte;
size:word;
...
SetLength(big,size) //size-длина числа(т.е. кол-во знаков)
...
Function Mult_int(c:int;Big:elemtypea):elemtypea;
var
i,prod:int;
begin
prod:=0;
for i:=size-1 downto 0 do begin
prod:=prod+big[i]*c;
big[i]:=prod mod 10;
prod:=prod div 10;
end;
result:=big;
end;

Так должно работать.


 
LMD   (2003-05-21 14:38) [10]

И еще.
type
elemtypea=array of byte;

Что-то леплю ошибки через каждую строку.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.06.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
1-2951
Антон Бобиков
2003-05-20 22:24
2003.06.02
Создание компонента


7-3196
Volodymyr
2003-03-31 20:02
2003.06.02
COM-порты...


7-3194
QUE
2003-04-01 11:08
2003.06.02
Rasapi


3-2786
VladN
2003-05-14 13:30
2003.06.02
Как в SQL запросе, сортировка в обратном порядке?


14-3111
Knight
2003-05-13 22:00
2003.06.02
А какой жизненный принцип у вас?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский