Difference between revisions of "Pi/de"
From Free Pascal wiki
Jump to navigationJump to search (Created page with "{{Pi}} <br> π ist das Verhältnis des Umfangs eines Kreises zu seinem Durchmesser.<br> Der Wert von π ist in etwa 3,14159265358979.<br> Der Umfang eines Kreises wird...") |
|||
(4 intermediate revisions by 2 users not shown) | |||
Line 4: | Line 4: | ||
Der Wert von π ist in etwa 3,14159265358979.<br> | Der Wert von π ist in etwa 3,14159265358979.<br> | ||
Der Umfang eines Kreises wird enweder mit<br> | Der Umfang eines Kreises wird enweder mit<br> | ||
− | U = | + | U = π (2 * r)<br> |
oder mit<br> | oder mit<br> | ||
U = π * d<br> | U = π * d<br> | ||
Line 13: | Line 13: | ||
π/4 ist das gleiche wie arctan(1).<br> | π/4 ist das gleiche wie arctan(1).<br> | ||
<br> | <br> | ||
+ | Sämtliche Trigonometrische Funktionen (sin, cos, etc.) werden mit FPC im Bogenmass berechnet. Dies entspricht 360° = 2 * Pi. | ||
<br> | <br> | ||
+ | <br> | ||
+ | <br> | ||
+ | [[User:Olaf|Olaf]] 20:06, 20 November 2016 (CET) | ||
[[Category:Pascal/de]] | [[Category:Pascal/de]] | ||
+ | |||
+ | |||
+ | ==Pi hoch aufgelöst== | ||
+ | Will man '''Pi''' sehr genau ausrechnen, kann man sich mit folgender Procedure behelfen. | ||
+ | <syntaxhighlight lang="pascal"> | ||
+ | program Project1; | ||
+ | |||
+ | uses | ||
+ | Crt; | ||
+ | |||
+ | var | ||
+ | stellen: integer; | ||
+ | |||
+ | procedure CalcPi; | ||
+ | var | ||
+ | r, p: string; | ||
+ | m, i, j, u, z: integer; | ||
+ | |||
+ | c: array of integer; | ||
+ | begin | ||
+ | SetLength(c, 10 * (Stellen + 1) div 3 + 1); | ||
+ | r := ''; | ||
+ | p := ''; | ||
+ | m := 10 * (Stellen + 1) div 3; | ||
+ | for i := 1 to m do begin | ||
+ | c[i] := 2; | ||
+ | end; | ||
+ | for j := 0 to Stellen do begin | ||
+ | if j mod 100 = 0 then begin | ||
+ | GotoXY(1, 1); | ||
+ | WriteLn('Stelle: ', j); | ||
+ | end; | ||
+ | |||
+ | 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 begin | ||
+ | p := p + Chr(48 + u); | ||
+ | end; | ||
+ | if u = 10 then begin | ||
+ | for i := 1 to Length(p) do begin | ||
+ | Val(p[i], z, u); | ||
+ | Inc(z); | ||
+ | if z = 10 then begin | ||
+ | z := 0; | ||
+ | end; | ||
+ | p[i] := Chr(48 + z); | ||
+ | end; | ||
+ | p := p + '0'; | ||
+ | end; | ||
+ | end; | ||
+ | p := r[1] + '.' + Copy(r, 2, Length(r)) + p; | ||
+ | WriteLn(p); | ||
+ | SetLength(c, 0); | ||
+ | end; | ||
+ | |||
+ | begin | ||
+ | ClrScr; | ||
+ | Writeln('Bitte Stellen eingeben: '); | ||
+ | readln(stellen); | ||
+ | CalcPi; | ||
+ | end. | ||
+ | </syntaxhighlight> |
Latest revision as of 19:25, 11 February 2018
│
Deutsch (de) │
English (en) │
suomi (fi) │
français (fr) │
русский (ru) │
中文(中国大陆) (zh_CN) │
π ist das Verhältnis des Umfangs eines Kreises zu seinem Durchmesser.
Der Wert von π ist in etwa 3,14159265358979.
Der Umfang eines Kreises wird enweder mit
U = π (2 * r)
oder mit
U = π * d
berechnet.
In Pascal ist pi eine Funktion, die den Wert von π zurückgibt.
π/4 ist das gleiche wie arctan(1).
Sämtliche Trigonometrische Funktionen (sin, cos, etc.) werden mit FPC im Bogenmass berechnet. Dies entspricht 360° = 2 * Pi.
Olaf 20:06, 20 November 2016 (CET)
Pi hoch aufgelöst
Will man Pi sehr genau ausrechnen, kann man sich mit folgender Procedure behelfen.
program Project1;
uses
Crt;
var
stellen: integer;
procedure CalcPi;
var
r, p: string;
m, i, j, u, z: integer;
c: array of integer;
begin
SetLength(c, 10 * (Stellen + 1) div 3 + 1);
r := '';
p := '';
m := 10 * (Stellen + 1) div 3;
for i := 1 to m do begin
c[i] := 2;
end;
for j := 0 to Stellen do begin
if j mod 100 = 0 then begin
GotoXY(1, 1);
WriteLn('Stelle: ', j);
end;
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 begin
p := p + Chr(48 + u);
end;
if u = 10 then begin
for i := 1 to Length(p) do begin
Val(p[i], z, u);
Inc(z);
if z = 10 then begin
z := 0;
end;
p[i] := Chr(48 + z);
end;
p := p + '0';
end;
end;
p := r[1] + '.' + Copy(r, 2, Length(r)) + p;
WriteLn(p);
SetLength(c, 0);
end;
begin
ClrScr;
Writeln('Bitte Stellen eingeben: ');
readln(stellen);
CalcPi;
end.