ich hab mich mal kurz rangesetzt und das ist bei rausgekommen:
Code:
function errechPI(x:integer ):Extended;
VAR
i, e : INTEGER;
pi : Extended;
BEGIN
pi := 1; e := 1;
FOR i := 1 TO x DO
BEGIN
e := e+2;
IF i MOD 2 = 0 THEN
pi := pi + 1 / e ELSE
pi := pi - 1/e;
END;
result := pi * 4;
END;
ist schön kurz, funzt ohne BOOLEAN und geht 100 pro!
..EDIT.. falls´ dis als Prozedur brauchst:
Code:
VAR
x : Extended; // globale Deklaration
Procedure errechPI;
VAR
i, e : INTEGER; //interne Deklaration
pi : Extended;
BEGIN
pi := 1; e := 1; // Initialisierung
FOR i := 1 TO x DO
BEGIN
e := e+2;
IF i MOD 2 = 0 THEN // Vergleich des Restkommawertes
pi := pi + 1 / e ELSE
pi := pi - 1/e;
END;
Edit1.text := floattostr(pi * 4);
END;
statt Extended könntest Du auch jeden anderen Gleitkommatyp nehmen, z.B. Real , ist halt die Frage... wie genau Du PI haben willst?!