那里下载前人的经典源程序?(100分)

  • 主题发起人 windforce_007
  • 开始时间
W

windforce_007

Unregistered / Unconfirmed
GUEST, unregistred user!
源码空间: http://www.playicq.com
 
service.lonetear.com/delphi
www.playicq.com
www.91delphi.com
 
源码到是多,不过经典的好象没什么。
 
DFW < 离线浏览器 >
 
我有,你要哪方面的
 
我想要算pi的,算24的,和能给字符作token的(开发简单的basic语言)等
 
http://www.torry.net/index.htm 这儿看看,应该有的
 
计算Pi值的代码,小数点后2000位,绝对经典,关键部分就4行代码
//原版
QueryPerformanceCounter((LARGE_INTEGER *)&amp;t1);
long a=10000,b=0,c=2800,d,e=0,f[2801],g;
CString s, t;
//关键部分 begin
for(;b-c;)
f[b++]=a/5;
for(;d=0,g=c*2;c-=14,t=s,s.Format("%s%.4d",t,e+d/a),e=d%a)
for(b=c;d+=f*a,f=d%--g,d/=g--,--b;d*=b);
//关键部分 end
QueryPerformanceCounter((LARGE_INTEGER *)&amp;t2);
QueryPerformanceFrequency((LARGE_INTEGER *)&amp;tc);
t.Format("%10d",(t2 - t1));
::AfxMessageBox(t,0,0);

this->SetWindowText(s);
//分解后的C语言版
long a=10000,b=0,c=2800,d,e=0,f[2801],g;
CString s, t;

//for(;b-c;)
//f[b++]=a/5;
while((b-c)!=0)
{
f=a/5;
b++;
}
//for(;d=0,g=c*2;c-=14,t=s,s.Format("%s%.4d",t,e+d/a),e=d%a)
d=0;
g=c*2;
while(g)
{ //for(b=c;d+=f*a,f=d%--g,d/=g--,--b;d*=b);
b=c;
d+=f*a;
g--;
f=d%g;
d/=g;
g--;
b--;
while(b)
{
d*=b;
d+=f*a;
g--;
f=d%g;
d/=g;
g--;
b--;
}
c-=14;
t=s;
s.Format("%s%.4d",t,e+d/a);
e=d%a;
d=0;
g=c*2;
}
this->SetWindowText(s);
//分解后的Delphi版
var
t1,t2,tc: Int64;
procedure TMain.Button1Click(Sender: TObject);
var
a, b, c, d, e, g: Integer;
f: array[0..2801] of Integer;
s, t: String;
begin
QueryPerformanceCounter(t1);
a :=10000;
b := 0;
c := 2800;
e := 0;
s := '';
t := '';
//for(;b-c;)
// f[b++]=a/5;
while (b - c <> 0)do
begin
f := a div 5;
b := b + 1;
end;

//for(;d=0,g=c*2;c-=14,printf("%.4d",e+d/a),e=d%a)
d := 0;
g := c * 2;
while g <> 0do
begin
b := c;
d := d + f * a;
g := g - 1;
f := d mod g;
d := d div g;
g := g - 1;
b := b - 1;
//for(b=c;d+=f*a,f=d%--g,d/=g--,--b;d*=b);
while b <> 0do
begin
d := d * b;
d := d + f * a;
g := g - 1;
f := d mod g;
d := d div g;
g := g - 1;
b := b - 1;
end;
c := c - 14;
s := s + Format('%.4d', [e + d div a]);
//s := Format('%.4d', [e + d div a]);
{
if Length(s) >= 80 then
begin
s := s + #13#10;
t := t + s;
s := '';
end;
}
e := d mod a;
d := 0;
g := c * 2;
end;

QueryPerformanceCounter(t2);
QueryPerformanceFrequency(tc);
ShowMessage(Format('%10d',[t2-t1]));
t := s;
Memo1.Lines.Text := t;
end;
 
接受答案了.
 
顶部