Startseite → Pi berechnen → Umsetzung durch ein C++ Programm
Umsetzung durch ein C++ Programm
Genauere Ergebnisse erhält man, wenn man eine echte Programmiersprache zur Berechnung von Pi verwendet. Hier ein Beispiel in der Programmiersprache C++:
- #include <iostream>
- #include <iomanip>
- #include <cmath>
- using namespace std;
- int laenge(double zahl) {
- double count;
- count = 0;
- while ((zahl/pow(10,count)) > 10)
- count++;
- return static_cast<int>(count);
- }
- int main() {
- long double s;
- double n;
- long double pi;
- long double backup;
- int length;
- //Startwerte
- s = 1;
- n = 1;
- pi = 3;
- do {
- //Ausgabe
- cout << 3*pow(2,n) << "eck: ";
- length = laenge(3*pow(2,n));
- for (int x=0;x<(9-length);x++)
- cout << " ";
- cout << setprecision(19) << pi << endl;
- //neuen Wert fuer Pi berechnen
- backup = pi;
- s = sqrt(s*s/4+(1-sqrt(1-s*s/4))*(1-sqrt(1-s*s/4)));
- pi = 3*pow(2,n)*s;
- n++;
- } while (backup != pi);
- return 0;
- }
Dieses Programm gibt folgendes Ergebnis aus:
6eck: 3 12eck: 3.105828541230249148 24eck: 3.132628613281238197 48eck: 3.139350203046867207 96eck: 3.141031950890509638 192eck: 3.141452472285462076 384eck: 3.141557607911857646 768eck: 3.141583892148318409 1536eck: 3.141590463228050096 3072eck: 3.141592105999271551 6144eck: 3.141592516692157448 12288eck: 3.141592619365383955 24576eck: 3.141592645033690897 49152eck: 3.141592651450767652 98304eck: 3.141592653055036842 196608eck: 3.141592653456104139 393216eck: 3.141592653556370963 786432eck: 3.141592653581437669 1572864eck: 3.141592653587704346 3145728eck: 3.141592653589271015 6291456eck: 3.141592653589662682 12582912eck: 3.141592653589760599 25165824eck: 3.141592653589785078 50331648eck: 3.141592653589791198 100663296eck: 3.141592653589792728 201326592eck: 3.14159265358979311 402653184eck: 3.141592653589793206 805306368eck: 3.14159265358979323 1610612736eck: 3.141592653589793236 3221225472eck: 3.141592653589793237 6442450944eck: 3.141592653589793238
Der letzte Wert entspricht dem bei Wikipedia gegebenen Näherungswert für Pi auf 18 Nachkommastellen genau, wobei die letzte Stelle abgerundet wurde.