Für die Eulerzahl e könnte die Programmumsetzung wie folgt aussehen:
Code: Alles auswählen
e:='2.';m:=1;Fak:=1;c[1]:=2;
While Ln(Fak)/Ln(10)<Stellen-1 Do Begin Inc(m);Fak:=Fak*m End;
For i:=2 To m Do c[i]:=1;
For j:=1 To Stellen Do
Begin
u:=0;
For i:=m DownTo 2 Do Begin z:=10*c[i]+u;c[i]:=z Mod i;u:=z Div i End;
e:=e+Chr(48+u)
End
Für die Kreiszahl Pi ist die Programmumsetzung etwas umfangreicher:
Code: Alles auswählen
r:='';p:='';m:=10*(Stellen+1) Div 3;
For i:=1 To m Do c[i]:=2;
For j:=0 To Stellen Do
Begin
u:=0;
For i:=m DownTo 2 Do Begin z:=10*c[i]+u;c[i]:=z Mod (i*2-1);u:=z Div (i*2-1)*(i-1) End;
z:=10*c[1]+u;c[1]:=z Mod 10;u:=z Div 10;
If u<=8 Then Begin r:=r+p;p:=Chr(48+u) End;
If u=9 Then p:=p+Chr(48+u);
If u=10 Then
Begin
For i:=1 To Length(p) Do
Begin
Val(p[i],z,u);Inc(z);
If z=10 Then z:=0;
p[i]:=Chr(48+z)
End;
p:=p+'0'
End
End;
p:=r[1]+'.'+Copy(r,2,Length(r))+p
Viel Spaß beim Ausprobieren!
Gruß Heizkoerper