#include <cmath>
#include <cstdlib>
#include <ctime>
#include <iostream>
using namespace std;

#define PI 3.14159265358979
#define VERSUCHE 10000000

/* N�herungsweise Fl�chenberechnung (Integration) f�r die Kurve
 * der Funktion sin(x) im Bereich 0 bis PI �ber das Monte-Carlo-
 * Verfahren - korrektes Ergebnis w�re 2
 * 
 */

int main() {

	float x,y;
	int treffer;
	srand(time(NULL));

	// Wir setzen zuf�llig erzeugte Versuchspunkte, 
	// Anzahl: VERSUCHE
	for (int i=0; i < VERSUCHE; i++) {
		// Jeder Versuchspunkt ist im Bereich
		// 0 <= x <= PI und 0 <= y <=1 
		x = rand()%100000*PI/100000.0;
		y = rand()%100000/100000.0;
		// Ist der Punkt tats�chlich unterhalb der
		// Kurve, ist er Teil der Fl�che und somit ein
		// Treffer
		if (y < sin(x)) treffer++;
	}
	// Die Fl�che berechnen wir aus der gesamten Testfl�che
	// PI*1 und dem Verh�ltnis von Treffern zu den Versuchen
	float flaeche = PI * treffer / VERSUCHE;
	cout << "Gesch�tzte Fl�che: " << flaeche << endl;
	return 0;
}