Announcement

Collapse
No announcement yet.

Einen Zufallsgenerator erstellen. Wer kann mir helfen?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Einen Zufallsgenerator erstellen. Wer kann mir helfen?

    Hallo
    Ich möchte einen Zufallsgenerator programieren. Er soll aus einer Gruppe von Zahlen zwei auswählen und in zwei Edit-Fenster schreiben.

    Die Zahlen in den Edit-Fenstern sollen mit einer Formel zusammengerechnet werden. Kann ich die Formel in einem Schritt progemieren oder muss ich das trennen? ( z.B. wenn ich in einer Formel + und * habe, muss ich dann erst eine zeile schreiben wo er das * rechnet und dann noch eine wo er + rechnet oder geht das auch in einem Schritt?)

    Wer kann mir helfen das Probelm zu lösen? Habe grad erst angefangen mit Delphi zu programieren.

    Danke schon mal im Voraus

  • #2
    Zunächst, wenn du ein zufallsgenerator verwendest, solltest du ihn, ich sage mal initialisieren. Beim Erstellen der Form (OnCreate) erstellst schreibst du den Befehl:

    <pre>
    randomize;
    </pre>

    Dann müsste ich wissen, ob die Gruppe von Zahlen vorgegeben sein soll, oder ob sie nur in einem bestimten bereich ligen sollen.
    Ich gehe mal davon aus, das eine Zahl von 0 bis 9 generiert werden soll.

    <pre>
    Edit1.Text:=IntToStr(Random(10));
    </pre>

    Zweite Zahl:

    <pre>
    Edit2.Text:=IntToStr(Random(10));
    </pre>

    Wenn die Zahlen unterschiedlich sein sollen, muß das nartürlich abgefangen werden. Dann schreibst du anstatt der Zeile oben drüber diese Zeile:

    <pre>
    repeat
    Edit2.Text:=IntToStr(Random(10));
    until (Edit1.Text<>Edit2.Text);
    </pre>

    Wenn du die Zahlen Zusammenrechnen willst kannst du das in einer Zeile machen. Delphi befolgt auch schön Punkt vor Strich rechnung.
    Du kannst also z.b. schreiben:

    <pre>
    Edit3.Text:=IntToStr( 3 * StrToInt(Edit1.Text) + StrToInt(Edit2.Text));
    </pre>

    Wenn du sicher gehen willst, das er eine Rechnung vor einer anderen macht kannst du aber immer noch Klammern benutzen.

    Das ist jetzt zwar nicht elegant gelößt, ist aber glaube ich recht kurz und übersichtlich. Besser wäre natürlich die Werte vorher in Integer Typen zwischenzuspeichern

    Comment


    • #3
      Danke das hat mir schon sehr geholfen.

      Die Zahlen aus die der Zufallsgenerator aussuchen soll sind vorgegeben. (1,0 ; 1,2 ; 1,5 ; 1,8)
      Ich hab schon versucht zwischen die Zahlen 'or' zuschreiben. Das hat er aber nicht erkannt.
      Wie geht es richtig

      Comment


      • #4
        Wenn die Werte schon vorgegeben sind, mußt du eine Liste benutzen. Bzw in so einem fall würde ich ein array nehmen.
        Oben über der Variablendeklaration würde ich das einfügen.

        <pre>
        const
        MaxV = 4;
        v: array[0..maxv-1] of double = (1.0 , 1.2 , 1.5 , 1.8);
        </pre>

        "maxv" gibt die anzahl der Zahlen an, die du auswählen lassen möchtest. in "v" befindet sich die liste der zahlen.

        <pre>
        var
        d1, d2, d3: double;

        begin
        d1:=v[Random(MaxV)];
        repeat
        d2:=v[Random(MaxV)]);
        until (d1<>d2);

        d3:=3 * d1 + d2; // Berechnung

        Edit1.text:=FloatToStr(d1);
        Edit2.text:=FloatToStr(d2);
        Edit3.text:=FloatToStr(d3);
        end;
        </pre>

        Mit v[x] greift man aud fas Xte element von der liste V zurück. Dabei mußt du beachten, wo das Array anfängt, und aufhöhrt

        Comment

        Working...
        X