AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

FOR-Schleifen Problem

Ein Thema von delphinub23 · begonnen am 30. Mär 2011 · letzter Beitrag vom 30. Mär 2011
 
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#13

AW: FOR-Schleifen Problem

  Alt 30. Mär 2011, 15:07
Ist natürlich nicht wirklich performant.
So eine Zufallszahlen-Liste ist schneller mit einer zufälligen Sortierung erreicht.

Aber hier mal dein Ansatz komplettiert:
Delphi-Quellcode:
var
  rZahl : array [0 .. 15] of Integer;
  temp, i : Integer;
  Unique : Boolean;
  j : Integer;
begin
  // Erste Zufalls-Zahl setzen (die ist per Definition auch einzigartig im Array)
  rZahl[ low( rZahl )] := Random( 16 );

  // Wir Starten mit dem 2. Array-Eintrag
  i := low( rZahl ) + 1;

  while i <= high( rZahl ) do
    begin

      repeat

        // Unique-Flag
        Unique := True;
        // Neue Zufallszahl ermitteln
        temp := Random( 16 );
        // mit allen bisherigen Zufallszahlen vergleichen
        for j := low( rZahl ) to i - 1 do
          // Wenn es die schon gibt, dann ...
          if rZahl[j] = temp
          then
            begin
              // ... ist die also nicht mehr einzigartig
              Unique := False;
              // und wir können diese For-Schleife auch schon verlassen
              Break;
            end;

        // solange wiederholen, bis wir eine einzigartige Zufallszahl erhalten haben
      until Unique;

      // Zufalls-Zahl dem Array zuweisen
      rZahl[i] := temp;

      // Ausgabe der Zahl
      txtRandoms.Text := txtRandoms.Text + IntToStr(rZahl[i]) + '; ';

      // und zum nächsten Array-Eintrag hüpfen :-)
      inc( i );
    end;
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz