Weis ned weiter



  • hallo,
    wir sollen anhand einer folge x = (1 - 1/3 + 1/5 - 1/7 ...)*4 von Leibnitz die zahl pi berechnen

    ein programm zur berechnung hab ich ja noch hinbekommen aber nun soll man eingeben können wieviel stellen nach dem komma berechnet werden soll so das pi genau rauskommt also wenn man 3 eingibt soll er nur so lange die folge berechnen das die zahl pi mit 3 stellen nach dem komma rauskommt ohne dabei jedoch die zahl pi dem programm zu sagen, also anhand der folge

    da weis ich jetzt nicht so richtig wie ich das anstellen soll

    hier das programm was ich bis jetzt habe

    void main(void) {
    
    	double nenner, pi, glied, vorzeichen, max, summenzaehler;
    
    	cout << "Berechnung von Pi" << endl;
       cout << "Geben Sie an wieviel Summenglieder addiert werden sollen: ";
       cin  >> max;
    
       nenner   = 1;
       pi       = 0;
       vorzeichen = -1;
       summenzaehler = 1;
    
       while (summenzaehler <= max)
       {
       		vorzeichen = - vorzeichen;
             glied      = 4 / (2*nenner -1)* vorzeichen;             //Berechnung des nächsten Gliedes in der Folge
             pi         = pi + glied;                               //Addieren des Gliedes
    
             nenner++;
             summenzaehler++;
             //cout << pi << endl;
       }
    
       printf ("%.9f",pi);
    	getch();
    }
    

    mfg

    Geno





  • ähmm



  • hmm aber das problem wird da leider nicht gelöst

    oder sehe ich was nicht was andere sehen 😕



  • Es wäre deutlich einfacher zu fragen, wie oft die Schleife laufen soll. Ich wüsst jetzt eigentlich nicht, wie man herausfinden soll, wie viele Stellen denn jetzt wirklich korrekt sind.
    Frag doch mal Jester und WebFritzi im Mathe-Forum



  • Man könnte doch gucken, welche stellen sich ändern? wenn sie sich nicht mehr ändern, sind sie korrekt...



  • wie schon gesagt die zahl pi soll dem programm nicht bekannt sein

    wenn man aber 1/10 rechnet erhält man doch 0.1 und wenn man 1/eine zahl >10 ändert sich nicht mehr die erste stelle sondern nur noch die zweite stelle nach dem komma bis 100 bei >100 nur noch die dritte stelle

    das hab ich mir grad mal überlegt ob das jetzt auch wirklich funzt weis ich ned und wie man es programmiertechnich umsetzt weis ich noch weniger

    aber ich werd mal im mathe forum fragen

    danke soweit

    mfg

    Geno



  • "Die Berechnung soll beendet werden, wenn der Betrag der Differenz zweier aufeinanderfolgender Näherungen von PI kleiner Epsilon ist (d.h. Abs(PIviertel - PIviertelAlt) * 4 < Epsilon)."

    das hab ich zufällig im netz gefunden das is doch so zu sagen die lösung des problems aber kann mir jemand bitte erklären wie man das bei dem erwähnten programm umsetzt wie kann ich bei einer anweisung wieviel schleifendurchläufe gemacht werden sollen das jeweilige element und das darauffolgende element eingeben??? sprich wie kann ich das in c umsetzen


Log in to reply