[ Bizzare Contact @ 16.05.2009. 11:42 ] @
Dobro sam proguglao i nisam uspeo naci resenje u c#, bio bih zahvalan ako neko ima slobodnog vremena i znanja da mi prevede ovo z Pascala u c#. Zadatak 10. Cigarette Smokers' problem Koristeći uslovne kritične regione napisati program koji rešava problem i simulira sistem "nervoznih pušača" (Cigarette Smokers' problem). Postoji jedan agent i tri nervozna pušača. Agent poseduje rezerve tri neophodna predmeta za lečenje nervoze: papir, duvan i šibice. Jedan od pušača ima beskonačne zalihe papira, drugi - duvana, a treći - šibica. Agent počinje tako što dva različita predmeta stavlja na sto, jedan po jedan. Pušač, kome baš ta dva predmeta fale, uzima ih, zavija i pali cigaretu i uživa. Nakon toga obaveštava agenta da je završio, a agent onda stavlja dva nova predmeta na sto, itd. program CigaretteSmokers(input, output); type table = record paper, tobacco, matches : boolean; ok : boolean; end; var p: shared table; procedure Agent; var n : integer; begin while (true) do begin n := RANDOM(0, 2); region p do begin case n of 0: begin p.paper := false; p.tobacco := true; p.matches := true; end; 1: begin p.paper := true; p.tobacco := false; p.matches := true; end; 2: begin p.paper := true; p.tobacco := true; p.matches := false; end; else ; end; region p do await(p.ok); p.ok := false; end; end; end; procedure smocker_with_Matches; begin while (true) do begin region p do begin await(p.paper and p.tobacco); p.paper := false; p.tobacco := false; end; enjoy; region p do p.ok := true; end; end; procedure smocker_with_Tobacco; begin while (true) do begin region p do begin await(p.paper and p.matches); p.paper := false; p.matches := false; end; enjoy; region p do p.ok := true; end; end; procedure smocker_with_Paper; begin while (true) do begin region p do begin await(p.matches and p.tobacco); p.matches := false; p.tobacco := false; end; enjoy; region p do p.ok := true; end; end; begin p.paper := false; p.tobacco := false; p.matches := false; p.ok := false; cobegin Agent; smocker_with_Paper; smocker_with_Tobacco; smocker_with_Matches; coend; end. Citat: 6. Ne tražite da Vam neko radi domaći zadatak Ne očekujte da bilo ko obavezno odradi sav posao umesto Vas! Rado ćemo pomoći oko svakog problema u slučaju da Vam "gori pod nogama", pred neki ispit ili posao, ali morate da pokažete na delu da ste u stvari krenuli sa radom i zastali pošto ne znate kako dalje. Ako samo navedete zadatak i specifikacije, u zavisnosti od raspoloženja članova na forumu, možda će se naći neko da odradi kompletan posao, ali pošto to zavisi od entuzijazma samih članova, ne postoji garancija da će se i dogoditi! [ES] posetioci će Vam pomoći da bolje SHVATITE problem sa kojim ste suočeni, ali ponešto morate i sami da uradite! Napakovala mi se gomila seminarskih radova za ovu nedelju, ovaj zadatak uopste ne kontam jer nisam pratio vezbe vezane za semafore. Ukoliko neko moze da mi pomogne super, ako ne onda jbg pokusao sam. :D Hvala unapred. ;) |