Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.013 c
1-2871
alt7
2003-05-21 16:18
2003.06.02
Помогите разобрать TThread


1-2984
Calm
2003-05-21 14:48
2003.06.02
Создание COM-объекта


14-3064
lia
2003-05-16 08:39
2003.06.02
Пример реализации SMTP, POP клиента на паскале...


1-2941
KAA
2003-05-20 18:08
2003.06.02
Отправить сообщение сервису


7-3191
Сергей
2003-04-01 09:46
2003.06.02
Как отключить/включить устройство?




   Наверх