Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

delphi 5 - procedura losująca

dociekliw 01 Cze 2014 09:20 732 4
  • #1 01 Cze 2014 09:20
    dociekliw
    Poziom 2  

    Witam !,
    Interesuję się jako hobby programowaniem w delphi.Jak poprawnie zapisać w tym
    języku procedurę losującą aby żadna wylosowana liczba nie powtarzała się jak np.
    w lotto. U mnie wychodzą takie "dziwolągi" jak np. 0,0,9,15,32,32 lub 16,29,31,42,42,49 itd. Bardzo proszę o pomoc !
    Pozdrawiam !

    0 4
  • #3 03 Cze 2014 11:00
    dociekliw
    Poziom 2  

    Witam !,
    Problem w tym,że jestem początkujący i nie za bardzo radzę sobie z napisaniem odpowiedniego algorytmu.
    Pozdrawiam !

    0
  • #4 03 Cze 2014 17:25
    Dżyszla
    Poziom 42  

    1. Dodajesz do listy (TList lub wygodniej: TList<integer> (tylko nowsze Delphi)) wszystkie liczby z zakresu (czyli pętla for, dodajesz licznik)
    2. W kolejnej pętli o długości odpowiadające ilości do wylosowania losujesz indeks z podanego wcześniej przeze mnie zakresu.
    3. Wyciągasz liczbę z wylosowanej pozycji z listy ( los := Integer(lista[i]) )
    4. Usuwasz tą pozycję ( lista.Delete(i) )
    5. Powtarzasz kroki od 2.

    0
  • #5 06 Cze 2014 16:19
    Prod-Harm
    Poziom 7  

    Na szybko i na kolenie to może być tak:

    Kod: delphi
    Zaloguj się, aby zobaczyć kod

    Procedurę Randomize należy wykonać tylko raz na starcie programu - nie ma potrzeby jej wykonywać przed każdym losowaniem. A co ona robi, tego dowiesz się w dokumentacji.

    0