Hilfe in c++ Programmierung gesucht.
Hallo! Könnt ihr mir bitte bei der Aufgabe helfen. Habe morgen Prüfung, bin aber nicht gut in Programmierung. Danke.
Die Kreiszahl pi soll mit einem Programmnach dem Monte-Carlo-Verfahren
abgeschätzt werden. Hierzu werden 1000 zufällige Punkte (x,y) mit x und
y-Werten zwischen 0 und 1 erzeugt. Die Kreiszahl pi ergibt sich aus der
Anzahl n der Punkte innerhalb des Einheitskreises nach der Formel
pi=4*n/1000
Schreiben Sie ein C++-Programm, das die Zahl pi nach diesem Verfahren
berechnet und auf dem Bildschirmausgibt.
Hinweise:
- x=(double)rand()/(double)RAND_MAX erzeugt einen double-Zufallswert x zwischen 0 und 1.
- Binden Sie für rand() und RAND_MAX die Header-Datei stdlib.h ein.
- Ein Punkt (x,y) liegt innerhalb des Einheitskreises, wenn x^2 +y^2 < 1 gilt.
Habe da schon was zusammengebastelt :-) Grausam.
#include <cstdlib>
#include <iostream>
#include <stdlib.h>
#include <math.h>
using namespace std;
int main(int argc, char *argv[])
{
srand(time(0));
double x,y,p,z,pi,n;
for (int i=1; i<=1000; i++){
x=(double)rand()/(double)RAND_MAX;
y=(double)rand()/(double)RAND_MAX;
z=pow(x,2)+pow(y,2);
if (z<1){
p=ceil(z);
//cout << z << " "<< p << endl;
}
}
pi=4*n/100;
cout << pi << endl;
}
system("PAUSE");
return EXIT_SUCCESS;
}
Wie komm ich auf die richtige Anzahl n von x^2+y^2<0 ?
|