tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
1
ZUGRIFFE
790
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Slin61 Slin61 ist offline Mitglied Silber
    Registriert seit
    Jul 2010
    Beiträge
    79
    Hallo Leute. Ich möchte ein Programm erstellen, welches PI bestimmt. Dazu benutze ich die Monte Carlo-Methode, welche zufällige Punkte bestimmt und diese am Einheitskreis prüft. Dabei sollen diese Punkte eingezeichnet werden, aber immer mit einer Pause von 100ms.

    Hier erstmal mein Programmcode

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    
    var
      Form1: TForm1;
      xkoo, ykoo : array of integer;
     
    implementation
     
    procedure TForm1.Button1Click(Sender: TObject);
    var i,krtr,r,w,s:longint;x,y:real;
    begin
    krtr:=0;
    randomize;
    r:=strtoint(edit1.text);
     
     
    for i:=  0 to r-1 do
      begin
        x:=random; y:= random;
        w:= round(x*341);
        s:= round(y*341);
        setlength(xkoo, r);
        setlength(ykoo, r);
        xkoo[i] := w;
        ykoo[i] := s;
     
      {Image1.Canvas.Pixels[xkoo[i],ykoo[i]] := clblack;
                                                 So werden alle aufeinmal gezeichnet.}
        if x*x + y*y <= 1 then begin inc(krtr); end ;
      end;
     
      Label1.Caption := floattostr(4*krtr/r);
     
     
      {Zeichnen in das Bild }
      Timer1.Enabled := true;
     
     
    end;
     
    procedure TForm1.Timer1Timer(Sender: TObject);
    var   i : Integer;
    begin
     
    Image1.Canvas.Pixels[xkoo[i],ykoo[i]] := clblack;
    i := i+1;
    end;
     
    mfg Slin
    Am besten kenne ich mich mit html, php, javascript und CSS aus.

  2. #2
    Slin61 Slin61 ist offline Mitglied Silber
    Registriert seit
    Jul 2010
    Beiträge
    79
    Das Problem ist gelöst und ich war ziemlich blöd. Hier ist mein Code :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    krtr:=0;
    randomize;
    r:=strtoint(edit1.text);
    counter := 0;
     
      {Zeichnen in das Bild }
      Timer1.Enabled := true;
     
     
    end;
     
    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
    counter := counter +1;
    i := 0;
        x:=random; y:= random;
        w:= round(x*341);
        s:= round(y*341);
        setlength(xkoo, r);
        setlength(ykoo, r);
        xkoo[i] := w;
        ykoo[i] := s;
     
        Image1.Canvas.Pixels[xkoo[i],ykoo[i]] := clblack;
        if x*x + y*y <= 1 then begin inc(krtr); end ;
     
      Label1.Caption := floattostr(4*krtr/r);
    if counter = r then   Timer1.Enabled := false;
    end;

    Alle Variablen sind global
     
    mfg Slin
    Am besten kenne ich mich mit html, php, javascript und CSS aus.

Ähnliche Themen

  1. Schleife als Bedingung einer Schleife ?
    Von Dragonate im Forum C/C++
    Antworten: 4
    Letzter Beitrag: 05.11.09, 18:19
  2. Antworten: 4
    Letzter Beitrag: 07.01.08, 17:14
  3. Schleife in einer Schleife funktioniert nicht
    Von Watusimann im Forum PHP
    Antworten: 7
    Letzter Beitrag: 16.12.06, 16:06
  4. Antworten: 12
    Letzter Beitrag: 17.01.05, 18:34
  5. Schleife oder nicht Schleife?
    Von joky_joky im Forum PHP
    Antworten: 8
    Letzter Beitrag: 27.10.04, 17:32