Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Josifov problem - ljudi koji obrazuju krug

[es] :: Pascal / Delphi / Kylix :: Josifov problem - ljudi koji obrazuju krug

[ Pregleda: 4104 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

muhay
Muhamed Halilovic
Sarajevo

Član broj: 23634
Poruke: 13
*.europronet.ba



Profil

icon Josifov problem - ljudi koji obrazuju krug02.06.2004. u 14:29 - pre 242 meseci
Dali neko moze da resi sledeci zadatak u Pascalu, ili da postavi barem dio koda

Neka N ljudi obelezenih redom od 1 do N (N<=100) obrazuje krug. Pocevsi od K-tog coveka krecuci se u smeru kazaljke na satu, svaki M-ti covek izlazi iz reda. Preostali ljudi u krugu zatim ponovo obrazuju manji krug. Za ucitane vrednosti N, K i M sa standardnog ulaza ispisati u datoteku Izlaz.dat redosled izlaska ljudi iz kruga. (po rednim brojevima). Kraj programa je kad svi ljudi izadju iz kruga.
...Biti ili ne biti, pitanje je sad!
Ja bi da bijem...
 
Odgovor na temu

broker

Član broj: 2415
Poruke: 8514
212.62.59.*



+11 Profil

icon Re: Josifov problem - ljudi koji obrazuju krug02.06.2004. u 16:31 - pre 242 meseci
Imas mogucnost vise resenja.

Ono na koje verovatno ciljaju tim zadatkom je da napravis dvostruko povezanu listu od N elemenata u kojoj svaki element ima tri atributa: oznaku, vezu ka prethodnom elementu i vezu ka sledecem elementu.

Kretanje po listi vrsis tako sto za tekuci element vidis koji je sledeci pa predjes na njega i tako u krug.

Izbacivanje elementa vrsis tako sto je...

tekuci.prethodni.sledeci := tekuci.sledeci;
tekuci.sledeci.prethodni := tekuci.prethodni;

...nakon cega tekuci mozes da obrises a pre toga zapamtis koji je bio ili ga odmah upises u izlaznu datoteku.



Istu stvar mozes da napravis i sa nizovima ali uz mnogo vise zongliranja podacima.

Ne znam koju verziju Pascal-a koristis, u poslednjim bi trebao da postoji tip TList koji sam po sebi predstavlja povezanu listu. Ne secam se vise, mnogo je godina proslo otkad ne koristim Pascal.
 
Odgovor na temu

IgLo
Igor Lovric
Sremski Karlovci

Član broj: 19524
Poruke: 129
*.sbb.co.yu

Sajt: www.unicornsoft.net


Profil

icon Re: Josifov problem - ljudi koji obrazuju krug02.06.2004. u 16:58 - pre 241 meseci
Evo ga kod koji bi trebao da odradi posao, s tim sto se pri svakom smanjenju kruga resetuju indeksi ljudi u krugu, ako trebaju da ostanu, probaj sam da doradis kod.

Program JosifovProblem;

Var
n,
k,
m,
x,
y : Integer;

Krug : String;

Izlazak : Array [1..100] Of Integer;

Begin
Write ('Upisi broj ljudi: '); ReadLn (n);
Write ('Upisi k-tog coveka: '); ReadLn (k);
Write ('Upisi korak: '); ReadLn (m);

Krug := '';
For X := 1 To n Do
Krug := Krug + 'x';

x := 1;
Y := 1;
Repeat
Krug [x] := ' ';
If (x + k - 1) > Length (Krug) Then
Izlazak [y] := x + k - 1 - Length (Krug)
Else
Izlazak [y] := x + k - 1;
Inc (y);
Inc (x, m);
If X > Length (Krug) Then
Begin
X := 1;
While Pos (' ', Krug) > 0 Do
Delete (Krug, Pos (' ', Krug), 1);
End;
If Length (Krug) < m Then
Begin
For X := y To Length (Krug) + y Do
Izlazak [x] := 1;
Krug := '';
End;
Until Length (Krug) = 0;

For X := 1 To n Do
Write (Izlazak [x], ', ');
End.

PS. Zaboravih da napravim snimanje u fajl, .... doradi i to sam. :)
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Josifov problem - ljudi koji obrazuju krug

[ Pregleda: 4104 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.