Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.47 MB
Время: 0.052 c
2-1143934662
Mad_Bob
2006-04-02 03:37
2006.04.16
Интернет и Delphi


2-1140954483
tio
2006-02-26 14:48
2006.04.16
AddIndex


2-1144160297
TimScorp
2006-04-04 18:18
2006.04.16
FreeReport 2.32


2-1143292789
Дмитрий_177
2006-03-25 16:19
2006.04.16
Выравнивание по фотме панелей


15-1143490048
fann
2006-03-28 00:07
2006.04.16
давно не работал с делфи, продскажите..





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский