Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.02;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.021 c
3-2777
Caesar
2003-05-13 15:53
2003.06.02
Tera XL


1-2903
KA-87
2003-05-22 21:08
2003.06.02
Как засунуть свою прогу в меню


1-2990
Yakudza
2003-05-21 13:13
2003.06.02
Русские символы в проге


9-2730
VitGun
2002-12-19 21:32
2003.06.02
Спрайт


11-2837
Alexander
2002-09-09 16:59
2003.06.02
Как в TKOLMemo добавить 2 строчки, чтобы вторая начиналась со