Kreiszahl Pi
-
hey leute ich hab eine Aufgabe die mich vor ein problem stellt
Schreiben Sie ein C-Programm, welches das beschriebene Verfahren zur n¨aherungsweisen Berechnung der
Kreiszahl umsetzt. W¨ahlen Sie der Einfachheit halber ein Quadrat der Kantenl¨ange Eins, auf dem eine
Viertelkreisscheibe mit Radius Eins liegt. Durch Einbinden der stdlib.h steht Ihnen die Funktion
int rand(void) zur Verf¨ugung, die mit jedem Aufruf eine ganzzahlige Pseudozufallszahl zwischen 0
und RAND MAX zur¨uckliefert. Die Konstante RAND MAX ist ebenfalls in stdlib.h definiert und hat meist
denWert 2311. Die x-Koordinate eines Zuckerstreusels als float-Wert mit 0 x < 1 ergibt sich durch:
x = (float) rand() / (float) RAND MAX;
Analog l¨asst sich auch eine (pseudo)zuf¨allige y-Koordinate ermitteln. x- und y-Koordinate definieren zusammen
ein Zuckerstreusel, der auf das Blech f¨allt. F¨ur Zuckerstreusel, die in den Viertelkreis mit Radius 1
gefallen sind, gilt: x2 + y2 1
Gestalten Sie Ihr Programm so, dass insgesamt 1000000 Streusel fallen und nach jeweils 2500 gefallenen
Streuseln die bisher ermittelte N¨aherung f¨ur ausgegeben wird.die Annährung kriege ich hin ich weiß leider nur nicht wie man das einbindet das ein Ergebnis nach 2500 Streuseln ausgegeben wird
Hier mein Programm:
# include <stdio.h> # include <stdlib.h> int main() { float x,y,n; int viertelkreis = 0, quadrat = 0; while (quadrat < 1000000) { /*Streusel erzeugen und ins Quadrat fallen lassen*/ x = (float) rand () / (float) RAND_MAX; y = (float) rand () / (float) RAND_MAX; /*Streusel im Viertelkreis?*/ if (x*x+y*y <= 1) { viertelkreis++; } quadrat++; printf("\n Pi = %f \n", 4.0*(float)viertelkreis/(float)quadrat); } return 0; }
Ich hoffe ihr könnt mir weiterhelfen...
-
if(quadrat % 2500 == 0) //Wenn quadrat ohne Rest durch 2500 teilbar ist printf("\n Pi = %f \n", 4.0*(float)viertelkreis/(float)quadrat);
-
danke für die hilfe...
jetzt funktioniert alles...
-
@proggn: Vielleicht haettest du dir mehr Muehe geben sollen. Die Aufgabe einfach per CopyPaste aus einem Pdf/Ps-Dokument herauskopieren, versaut sehr vieles, z.B. meinen Antrieb zu antworten.