Programmieren - alles kontrollieren 4.938 Themen, 20.667 Beiträge

VC++ & PI & Monte-Carlo-Variante

(Anonym) / 4 Antworten / Flachansicht Nickles

Ich habe vor, PI per Monte-Carlo-Methode zu berechnen. Aber leider weiß ich nicht genau, wie ich abrfagen soll, ob der Punkt im Kreis oder außerhalb liegt.

bei Antwort benachrichtigen
(Anonym) Nachtrag zu: „VC++ & PI & Monte-Carlo-Variante“
Optionen

Viel Spaß beim portieren nach C++!!

//-------------------------------------------------------------------
iseed = 42
10 RANDOMIZE TIMER
quadrat = 0
kreis = 0

CLS
SCREEN 0
INPUT "Anzahl der Punkte : ", n
CLS
SCREEN 12
WINDOW SCREEN (0, 0)-(2!, 2! / 1.33333333#)
LINE (0, 0)-(1, 0)
LINE (1, 0)-(1, 1)
LINE (1, 1)-(0, 1)
LINE (0, 1)-(0, 0)
CIRCLE (.5, .5), .5
FOR i = 1 TO n
LOCATE 10, 60
PRINT "Punkt Nr. "; i
x = RND(iseed)
y = RND(iseed)
REM *
REM * Mit dem Satz von Pythagoras wird ueberprueft ob sich der
REM * Punkt (x,y) innerhalb des Kreises liegt oder nicht:
REM * Der Ursprung des Koordinatensystems liegt im Mittelpunkt
REM * des Kreises mit den Koordinaten (0.5,0.5). Der Radius
REM * des Kreises ist 0.5 .
REM *
IF SQR((x - .5) ^ 2 + (y - .5) ^ 2) kreis = kreis + 1
PSET (x, y), 3
ELSE
PSET (x, y), 2
END IF
LOCATE 12, 60
pi = 4 * kreis / i
PRINT "pi = "; pi; " "
NEXT i
quadrat = n
LOCATE 22, 1
PRINT " kreis = ", kreis
PRINT "quadrat = ", quadrat
ratio = kreis / quadrat
pi = 4! * ratio
PRINT "Kreisflaeche/Quadratflaeche = ", ratio
PRINT " * 4 = pi = ", pi
PRINT " exakter Wert fuer pi = 3.1415..."

INPUT dummy
IF dummy = 1 GOTO 20
GOTO 10
20 SCREEN 0

END
//-------------------------------------------------------------------

bei Antwort benachrichtigen