Heute habe ich also mein erstes, kleines, komplett selbs konzipiertes Programm geschrieben (bis auf die Formel aus dem Matheunterricht) und habe auch schon gleich ein paar Fragen.
Da es, wie gesagt, mein erstes Programm ist, wundert euch bitte nicht über den wahrscheinlich _etwas_ unkonventionellen Lösungsweg. ^^
1. Problem: Ich kann Pi auf höchstens 14 Stellen hinter dem _Komma_ berechnen ansonsten erhalte ich 0 als Ergebnis.
2. Die weiter hinteren Stellen stimmen bereits nach kurzer Zeit nicht mehr.
3. Muss man die Prozedur "zwisch" wirklich so kompliziert angehen?
Dazu habe ich die Formel mal angehängt als Bild - Schön mit Paint gemacht ^^
(Ausgegangen wird bei der Gleichung durch eine Schrittweise Näherung: erst 6, dann 12, dann 24 Ecken...)
Program Pi; Uses CRT; VAR Sn, enderg: extended; X: Byte; Y: Word; procedure zaehler; begin X:= X - 1; {Gib die Anzahl der Stellen hinterm Komma an} Y:= Y * 2; {Gibt die Anzahl der Ecken an} end; procedure zwisch; {Ist ein Zwischenergebnis} begin SN:= Sn * Sn; SN:= SN / 4; SN:= 1-SN; SN:= sqrt (sn); SN:= 2 * SN; SN:= 2 - SN; SN:= sqrt (SN); end; procedure ergebnis; begin enderg:= y * SN; end; begin highvideo; writeln ('============================================== =='); writeln ('= ='); writeln ('= Programm zur Berechnung der Kreiszahl Pi ='); writeln ('= ='); writeln ('============================================== =='); writeln; writeln; writeln; normvideo; write ('Bitte geben sie die die gewünschte Anzahl der Stellen hinter dem Komma an...'); highvideo; SN:= 1; Y:= 3; read (X); normvideo; repeat zaehler; zwisch; ergebnis; writeln (enderg); until X = 0; writeln ('Bitte bedenke, dass die Zahlen nur bis zur gewünschten Stelle korekt sind...'); readkey; end.
Angehängte Datei(en)
-
Unbenannt.bmp (6,5K)
Anzahl der Downloads: 101 -
Pi.exe (22K)
Anzahl der Downloads: 46