12.07.2015 Views

Spis treœci - Patrz

Spis treœci - Patrz

Spis treœci - Patrz

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

end; {koniec}process INICJATOR;var k: komunikat;begink.jest := ?;k.start := 0;k.lądow := 0;k.wolny := trueend; {INICJATOR}9.4.6 GłosowanieRozwiązanie to jest wzorowane na rozwiązaniu z p. 7.4.3. Nie mamy jednak operacjiodczytywania komunikatu bez pobierania go z kanału, podobnej do operacji READ w Lindzie,dlatego każdy proces musi umieścić w kanale swój głos N razy. Poza tym w rozwiązaniu wLindzie krotka z głosami była identyfikowana dwiema liczbami: numerem tury i numeremprocesu. Tutaj każdy komunikat będzie przesyłany odrębnym podkanałem, identyfikowanymkombinacją numeru tury i numeru procesu,const N = ?;var K: channel;process P(i: 1..N);var t: array[l..N] of integer;tura, min, j, k, pk, g: integer;beginfor j := 1 to N do t[j] := 1;tura := 0;repeattura := tura+l;g := glosuj(t);for j := 1 to N dowloz(K, tura*N+i, g);for j := 1 to N do t[j] := 0;for j := 1 to N do beginwez(K, tura*N+j, pk, k);t[k] := t[k]+lend;min : = 1;while t[min] = 0 do {szukanie niezerowego minimum}min := min + 1;for j := min+1 to N doif (O

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!