Jump to content


Photo

Pascal - Losowanie bez powtórzeń


  • Please log in to reply
5 replies to this topic

#1 Kolumb

Kolumb
  • Użytkownicy
  • 42 posts

Posted 13 April 2011 - 19:39

Napisałem program losujący 5 liczb z 100 i zapisujący je do Tablicy :

Uses
Crt2;

Var
a : array [1..5] of integer;
x : byte;

Begin
randomize;
Repeat
x := x+1;
a[x] := random (100)+1;
Writeln(a[x])<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' />

Until x = 5   <img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' />

Readln;




End.

Mam pytanie co muszę zrobić by zabezpieczyć się przed POWTARZANIEM się liczb ? Chcę by zawsze każda liczba była inna. Jak to zrobic ?
  • 0


#2 magik092

magik092
  • Użytkownicy
  • 1555 posts

Posted 13 April 2011 - 19:59

Pascalem się nie bawiłem ale zalecam stworzenie nowej tablicy i zapisywanie w niej wyników. Jeśli wynik znajduje się w tablicy, losuj jeszcze raz wartość dla danego argumentu ^^
  • 0

Dołączona grafika


#3 Kolumb

Kolumb
  • Użytkownicy
  • 42 posts

Posted 13 April 2011 - 20:40

no dobra ale jak będzie wyglądać pętla która będzie sprawdzała wylosowane liczby z tymi zawartymi juz w tablicy. i jesli nie wystepuja to je bedzie w niej zapisywac ?
  • 0

#4 Tremor

Tremor
  • Użytkownicy
  • 21 posts

Posted 25 April 2011 - 19:51

Z tego co się orientuje pętla będzie wyglądać podobnie jak przy sortowaniu. A jak sortowanie wygląda dowiesz się w google
  • 0

#5 Dingo

Dingo
  • Użytkownicy
  • 102 posts

Posted 25 April 2011 - 20:54

n=5;
while(n){
  liczba = rand()<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' />
  czy_juz_istnieje = false;
  for(i=0 to 5-n)
    if(tab[i]==liczba)
       czy_juz_istnieje = true;
  if(!czy_juz_istnieje){
    tab->push(liczba)<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' />
    n--<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' />
  }
}
przepisz na pascala i zrozum.
  • 0

#6 Kolumb

Kolumb
  • Użytkownicy
  • 42 posts

Posted 29 April 2011 - 19:12

wielkie dzięki pomogło
  • 0


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users