Hallo Leute,
mein Progamm hier soll Pi über die Monte-Carlo-Methode herausbringen, bei größeren Zahlen dauert es sehr lange, deshalb hätte ich gerne einen Fortschrittsbalken, das hier ist mein kläglicher Versuch:
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.2.10.0
Author: Roman Leuprecht
Script Function:
Template AutoIt script.
#ce ----------------------------------------------------------------------------
[/autoit][autoit][/autoit][autoit]; Script Start - Add your code below here
[/autoit][autoit][/autoit][autoit]Opt("TrayMenuMode", 1)
[/autoit][autoit][/autoit][autoit]autoItSetOption("Mustdeclarevars",1) ;Alle Variablen müssen deklariert werden
[/autoit][autoit][/autoit][autoit]dim $versuche ;Hier werden die Variablen deklariert, zur Übersicht alle einzeln und in der richtigen Reihenfolge
dim $zaehler
dim $punktnummer
dim $x
dim $y
dim $e
dim $anteil
dim $annaeherung
dim $Hauptfenster
dim $Label1
dim $Anweisung
dim $CR_me
dim $CR_Pi
dim $Input_versuchsanzahl
dim $button_berechnen
dim $nMsg
dim $schliessen
dim $Fortschrittsbalken
dim $fortschritt_prozent
$zaehler=0 ;Vorsichtshalber wird der Zähler auf NULL gesetzt
#include <GUIConstants.au3>
#include <misc.au3>
#Region ### START Koda GUI section ### Form=c:\dokumente und einstellungen\leuprecht martin
$Hauptfenster = GUICreate("Phi Näherungswert-Berechnung by Roman Leuprecht", 633, 447, 193, 125)
GUISetFont(12, 400, 0, "Calibri")
GUISetBkColor(0xFFFFFF)
$Label1 = GUICtrlCreateLabel("Näherungswert-Berechnung für Pi mit dem Monte-Carlo-Verfahren", 24, 48, 571, 30)
GUICtrlSetFont(-1, 16, 400, 0, "Calibri")
$Anweisung = GUICtrlCreateLabel("Geben sie hier die Anzahl der zu tätigenden Versuche an:", 16, 136, 374, 23)
$CR_me = GUICtrlCreateLabel("Copyright Roman Leuprecht", 72, 376, 183, 23)
$Input_versuchsanzahl = GUICtrlCreateInput("Versuchsanzahl", 400, 136, 145, 27)
GUICtrlSetCursor (-1, 5)
$button_berechnen = GUICtrlCreateButton("Näherungswert berechnen", 200, 192, 233, 81, 0)
GUICtrlSetCursor (-1, 0)
$schliessen = GUICtrlCreateButton("Fenster schließen", 368, 368, 161, 33, 0)
GUICtrlSetCursor (-1, 2)
$Fortschrittsbalken = GUICtrlCreateProgress(24, 304, 569, 41)
GUICtrlSetCursor (-1, 7)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $button_berechnen
$versuche=guictrlread($Input_versuchsanzahl)
Do
$x=Random() ;Die Zufallskoordinate X wird generiert
$y=Random() ;Die Zufallskoordinate Y wird generiert
$e=Sqrt($x^2+$y^2)
If($e<=1)then $zaehler=$zaehler+1 ;Prüfung ob in Kreis oder nicht
$punktnummer=$punktnummer+1 ;Punktnummer wird erhöht
$fortschritt_prozent=$punktnummer/$versuche
GUICtrlSetData( $Fortschrittsbalken, $fortschritt_prozent)
Until $punktnummer=$versuche ;Bedingung, wann Schluss ist(wenn die Punktnummer so hoch ist wie die Versuchsanzahl)
$anteil=$zaehler/$versuche ;Die relative Häufigkeit, ob ein Punkt im Kreis landet oder nicht, wird berechnet
$annaeherung=4*$anteil ;die rel. Häufigkeit wird mit 4 multipliziert, um den ungefähren Wert für Phi zu erlangen
MsgBox(0+48,"Annäherungswert Phi",$annaeherung) ;Nun noch die Ausgabe in einem Info-Fenster
ContinueLoop(1)
Case $schliessen
Exit
EndSwitch
WEnd
[/autoit]
Wäre nett, wenn jemand mir zeigen könnte, wie das geht.
Danke
Leupy