Форум: "Начинающим";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];
ВнизБольшие числа Найти похожие ветки
← →
Кир © (2006-04-02 15:29) [0]Просьба помочь в написании проги...
Точнее, в её создании.
Надо в консольном приложении Делфы создать большое число, и, допустим, перемножить два таких числа.
Нужен лишь метод создания, остальное - сами разберёмся...
← →
Belorus © (2006-04-02 15:32) [1]Я делал такие финты с помощью массивов. Создаёшь массив на 1000 элементов типа байт. И с ним уже работаешь. Каждая ячейка - цифра.
Метод ооочень межденный но работает.
Можно со строками.
← →
Кир © (2006-04-02 15:34) [2]Со строками надо..=)
а можно сорс?))
Благодарен буду...
← →
Кир © (2006-04-02 15:59) [3]Никто не поможет?=(
← →
Belorus © (2006-04-02 16:01) [4]Ой простят меня модераторы.
Вот кусочек кода который скорее всего неправильный и даже не скомпилится.
Юнит для умножения остался в лицее, а это старый без умножения.
var Chislo1,Chislo2,s: array[0..256] of byte;
S1,S2 : String;
Counter,Maxlen,c2 : Word;
function FindStart(l : array of byte) : integer;
var cc : integer;
begin
FindStart:=255;
For cc:=0 to 256 do
begin
If l[cc]<>0 then
begin
FindStart:=cc;
Break;
end;
end;
end;
Procedure Prepare;
begin
For Counter:=0 to 256 do
begin
Chislo1[Counter]:=0;
Chislo2[Counter]:=0;
end;
end;
procedure Slozhenie(ch1,ch2 : array of byte);
var Ost,Zap : Byte;
begin
Counter:=1;
Zap:=0;
Ost:=0;
While Counter <= MaxLen+1 do
begin
Ost:=(ch1[256-Counter]+ch2[256-Counter]+zap)mod 10;
Zap:=(ch1[256-Counter]+ch2[256-Counter]+zap)div 10;
s[256-Counter]:=ost;
Inc(Counter);
end;
end;
procedure Vychitanie(ch1,ch2 : array of byte);
var Ost,Zap : Byte;
begin
Counter:=1;
Zap:=0;
Ost:=0;
While Counter <= MaxLen+1 do
begin
Ost:=(ch1[256-Counter]-ch2[256-Counter]-zap)mod 10;
Zap:=(ch1[256-Counter]-ch2[256-Counter]-zap)div 10;
s[256-Counter]:=ost;
Inc(Counter);
end;
end;
procedure Umnozhenie(ch1,ch2 : array of byte);
var Ost,Zap : Byte;
TAR : array[0..256]of byte;
begin
Counter:=1;
Zap:=0;
Ost:=0;
c2:=0;
While c2< 256-FindStart(ch2) do
begin
While Counter <= MaxLen+1 do
begin
Ost:=(ch1[256-Counter]*ch2[c2]+zap)mod 10;
Zap:=(ch1[256-Counter]*ch2[c2]+zap)div 10;
TAR[256-Counter]:=ost;
Inc(Counter);
end;
Inc(c2);
end;
end;
begin
Prepare;
readln(S1);
readln(S2);
Counter:=1;
If Length(S1)>Length(s2) then MaxLen:=Length(s1) else MaxLen:=Length(s2);
While Counter <= Length(s1) do
begin
Chislo1[256-Counter]:=Ord(S1[Length(s1)-Counter+1])-48;
Inc(Counter);
end;
Counter:=1;
While Counter <= Length(s2) do
begin
Chislo2[256-Counter]:=Ord(S2[Length(s2)-Counter+1])-48;
Inc(Counter);
end;
{ Slozhenie(chislo1,chislo2);}
Vychitanie(chislo1,chislo2);
For Counter:=FindStart(s) to 255 do
begin
write(s[Counter]);
end;
readln;
И не дай бог кому нибудь начать обсирать этот огрызок кода.
← →
Кир © (2006-04-02 16:09) [5]Шпасибо...
Интересно, сработает ли..%)
А если будут недовольны - то милости прошу на мыло мне нормальный, на ваш взгляд, код... мне экзамен сдать надоооооооооооооо...
← →
Anatoly Podgoretsky © (2006-04-02 16:16) [6]Belorus © (02.04.06 16:01) [4]
У нас свободный форум, поэтому если будут желающие, то это из право.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.036 c