gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
5f1ef39c950351b74a041d15f6d18e33e233648e
[spa2-teorijske-vezbe.git] / Cas03 / SHAKER.MOD
1 MODULE Shaker;
3 FROM IO IMPORT
4 WrCard, WrStr, RdCard, WrLn, OK;
6 CONST
7 Max = 10;
9 TYPE
10 Indeks = [1 .. Max];
11 NizTip = ARRAY Indeks OF CARDINAL;
13 VAR
14 Niz: NizTip;
16 PROCEDURE Unos(VAR Niz: NizTip);
17 VAR
18 i: Indeks;
19 BEGIN
20 FOR i:= 1 TO Max DO
21 REPEAT
22 WrStr('Unesite ');
23 WrCard(i, 2);
24 WrStr('. clan niza: ');
25 Niz[i]:= RdCard();
26 WrLn;
27 UNTIL OK;
28 END;
29 END Unos;
31 PROCEDURE Ispis(VAR Niz: NizTip);
32 VAR
33 i: Indeks;
34 BEGIN
35 FOR i := 1 TO Max - 1 DO
36 WrCard(Niz[i], 1);
37 WrStr(', ');
38 END;
39 WrCard(Niz[Max], 1);
40 END Ispis;
42 PROCEDURE ShakerSort(VAR Niz: NizTip);
43 VAR
44 Levi, Desni, i, ZadnjiMenjan: Indeks;
45 Temp: CARDINAL;
46 BEGIN
47 Levi:= 2;
48 Desni:= Max;
49 ZadnjiMenjan:= Max;
50 REPEAT
51 FOR i:= Desni TO Levi BY -1 DO
52 IF Niz[i - 1] > Niz[i] THEN
53 Temp:= Niz[i - 1];
54 Niz[i - 1]:= Niz[i];
55 Niz[i]:= Temp;
56 ZadnjiMenjan:= i;
57 END;
58 END;
59 Levi:= ZadnjiMenjan + 1;
60 FOR i:= Levi TO Desni DO
61 IF Niz[i - 1] > Niz[i] THEN
62 Temp:= Niz[i - 1];
63 Niz[i - 1]:= Niz[i];
64 Niz[i]:= Temp;
65 ZadnjiMenjan:= i;
66 END;
67 END;
68 Desni:= ZadnjiMenjan - 1;
69 UNTIL Levi > Desni;
70 END ShakerSort;
72 BEGIN
73 Unos(Niz);
74 WrStr('Unesen niz: ');
75 Ispis(Niz);
76 WrLn;
77 WrStr('Sortiran niz: ');
78 ShakerSort(Niz);
79 Ispis(Niz);
80 END Shaker.
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner