Losowanie elementow tablicy

0

wiatm.
jak majac tablice jednowymiarowa skladajaca sie z zer i jedynek np:

var: tablica : array[1..9] of byte;

w tablicay znajduja sie elementy np:
tablica[i] : 1,0,0,0,1,1,0,1,0
ktorym odpowiadaja pozycje i od 1 do 9
jak teraz przeprowadzic losowanie pozycji w macierzy ale tylko dla 1.
w tym przykladzie dla jedynek i = 1,5,6,8 i teraz z nich nalezy wylosowac jakas liczbe.
z gory dzieki za helpa

0

Zamiast byte w takim przypadku lepiej będzie dać Boolean chyba... a później pojechać Randomem.. aż znajdzie wartość True..

0
{$console application}
var
  i,j,k:integer;
  tab:array[1..10]of integer;
begin
  randomize;
  j:=0; // ilosc jedynek;
  for i:=low(tab) to high(tab) do inc(j,byte(tab[i]=1));
  if j>0 
    then
      begin
        k:=random(j)+1;
        for i:=low(tab) to high(tab) do 
          begin
            dec(k,byte(tab[i]=1));
            if k=0 then break;
          end;
        writeln(tab[i],'  ',i);
      end
    else writeln('brak jedynek w tablicy');
end.

1 użytkowników online, w tym zalogowanych: 0, gości: 1