ďťż

Ładny brzuch

Witam! Napisałem sobie taki program:
randomize; l:=random(100); if wylosowana[l]=true then begin while wylosowana[l]=true do begin randomize; l:=random(100); wylosowana[l]:=true; memo1.Lines.Add(floattostr(l)) end end else wylosowana[l]:=true; memo1.Lines.Add(floattostr(l));

Mój program losuje kilka początkowcy liczb i potem losuje nastepne bardzo długo i się wiesza. Jak mogę napisać procedure, która zapobiega losowaniu tych samych liczb??



if wylosowana = true...
Dalej w tej procedurze masz losowanie, a niekoniecznie musisz mieć, bo możesz dalaje zrobić,że wylosowana:=wylosowana+1
Wtedy na pewno trafisz nie wylosowaną. Trzeba jeszcze napisać warunek przejścia na początek tablicy.

http://forum.ks-eksp...69& hl=losowanie


if wylosowana = true...
Dalej w tej procedurze masz losowanie, a niekoniecznie musisz mieć, bo możesz dalaje zrobić,że wylosowana:=wylosowana+1
Wtedy na pewno trafisz nie wylosowaną. Trzeba jeszcze napisać warunek przejścia na początek tablicy


to znaczy jak??
mógłbys mi podać zmieniony kod mojej procedury??

http://forum.ks-eksp...69&hl=losowanie
a nie dało by sie przeksałcic mojej procedury

 tab : array [0..200] of bool;  wylosowana:integer; implementation {$R *.dfm} procedure TForm1.Losuj; begin randomize; wylosowana:=random(100); end; procedure TForm1.Button1Click(Sender: TObject); begin Losuj; if tab[wylosowana]=false then begin tab[wylosowana]:= true; memo1.lines.add(inttostr(wylosowana)); end else losuj; end;
z tej procedury program długo losuje ostatnich klika liczb
Użytkownik kk1991 edytował ten post 15 listopad 2005, 15:22


randomize; l:=random(100); while wylosowana[l]=true do begin l:=l+1; if l>100 then begin l:=1; end end; wylosowana[l]:=true; memo1.Lines.Add(floattostr(l));

Zakładam, że tablica numerowana jest od 1 do 100, a nie od 0 do 99.
Użytkownik chodnik edytował ten post 15 listopad 2005, 15:30
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •