From: Doni Pracner Date: Wed, 30 Oct 2013 14:26:24 +0000 (+0100) Subject: 03 - Shaker sort preimenovanja, kod se kompajlira kako treba X-Git-Url: http://svarog.pmf.uns.ac.rs/gitweb/?p=spa2-teorijske-vezbe.git;a=commitdiff_plain;h=9ad1d404ff03e0b20719bd69603f78c08691e681 03 - Shaker sort preimenovanja, kod se kompajlira kako treba --- diff --git a/03. Shaker sort/Prezentacija.ppt b/03. Shaker sort/Prezentacija.ppt new file mode 100644 index 0000000..d059c40 Binary files /dev/null and b/03. Shaker sort/Prezentacija.ppt differ diff --git a/03. Shaker sort/kod/SHAKER.MOD b/03. Shaker sort/kod/SHAKER.MOD new file mode 100644 index 0000000..5f1ef39 --- /dev/null +++ b/03. Shaker sort/kod/SHAKER.MOD @@ -0,0 +1,80 @@ +MODULE Shaker; + + FROM IO IMPORT + WrCard, WrStr, RdCard, WrLn, OK; + + CONST + Max = 10; + + TYPE + Indeks = [1 .. Max]; + NizTip = ARRAY Indeks OF CARDINAL; + + VAR + Niz: NizTip; + + PROCEDURE Unos(VAR Niz: NizTip); + VAR + i: Indeks; + BEGIN + FOR i:= 1 TO Max DO + REPEAT + WrStr('Unesite '); + WrCard(i, 2); + WrStr('. clan niza: '); + Niz[i]:= RdCard(); + WrLn; + UNTIL OK; + END; + END Unos; + + PROCEDURE Ispis(VAR Niz: NizTip); + VAR + i: Indeks; + BEGIN + FOR i := 1 TO Max - 1 DO + WrCard(Niz[i], 1); + WrStr(', '); + END; + WrCard(Niz[Max], 1); + END Ispis; + + PROCEDURE ShakerSort(VAR Niz: NizTip); + VAR + Levi, Desni, i, ZadnjiMenjan: Indeks; + Temp: CARDINAL; + BEGIN + Levi:= 2; + Desni:= Max; + ZadnjiMenjan:= Max; + REPEAT + FOR i:= Desni TO Levi BY -1 DO + IF Niz[i - 1] > Niz[i] THEN + Temp:= Niz[i - 1]; + Niz[i - 1]:= Niz[i]; + Niz[i]:= Temp; + ZadnjiMenjan:= i; + END; + END; + Levi:= ZadnjiMenjan + 1; + FOR i:= Levi TO Desni DO + IF Niz[i - 1] > Niz[i] THEN + Temp:= Niz[i - 1]; + Niz[i - 1]:= Niz[i]; + Niz[i]:= Temp; + ZadnjiMenjan:= i; + END; + END; + Desni:= ZadnjiMenjan - 1; + UNTIL Levi > Desni; + END ShakerSort; + +BEGIN + Unos(Niz); + WrStr('Unesen niz: '); + Ispis(Niz); + WrLn; + WrStr('Sortiran niz: '); + ShakerSort(Niz); + Ispis(Niz); +END Shaker. diff --git a/Cas03/Prezentacija.ppt b/Cas03/Prezentacija.ppt deleted file mode 100644 index d059c40..0000000 Binary files a/Cas03/Prezentacija.ppt and /dev/null differ diff --git a/Cas03/SHAKER.MOD b/Cas03/SHAKER.MOD deleted file mode 100644 index 5f1ef39..0000000 --- a/Cas03/SHAKER.MOD +++ /dev/null @@ -1,80 +0,0 @@ -MODULE Shaker; - - FROM IO IMPORT - WrCard, WrStr, RdCard, WrLn, OK; - - CONST - Max = 10; - - TYPE - Indeks = [1 .. Max]; - NizTip = ARRAY Indeks OF CARDINAL; - - VAR - Niz: NizTip; - - PROCEDURE Unos(VAR Niz: NizTip); - VAR - i: Indeks; - BEGIN - FOR i:= 1 TO Max DO - REPEAT - WrStr('Unesite '); - WrCard(i, 2); - WrStr('. clan niza: '); - Niz[i]:= RdCard(); - WrLn; - UNTIL OK; - END; - END Unos; - - PROCEDURE Ispis(VAR Niz: NizTip); - VAR - i: Indeks; - BEGIN - FOR i := 1 TO Max - 1 DO - WrCard(Niz[i], 1); - WrStr(', '); - END; - WrCard(Niz[Max], 1); - END Ispis; - - PROCEDURE ShakerSort(VAR Niz: NizTip); - VAR - Levi, Desni, i, ZadnjiMenjan: Indeks; - Temp: CARDINAL; - BEGIN - Levi:= 2; - Desni:= Max; - ZadnjiMenjan:= Max; - REPEAT - FOR i:= Desni TO Levi BY -1 DO - IF Niz[i - 1] > Niz[i] THEN - Temp:= Niz[i - 1]; - Niz[i - 1]:= Niz[i]; - Niz[i]:= Temp; - ZadnjiMenjan:= i; - END; - END; - Levi:= ZadnjiMenjan + 1; - FOR i:= Levi TO Desni DO - IF Niz[i - 1] > Niz[i] THEN - Temp:= Niz[i - 1]; - Niz[i - 1]:= Niz[i]; - Niz[i]:= Temp; - ZadnjiMenjan:= i; - END; - END; - Desni:= ZadnjiMenjan - 1; - UNTIL Levi > Desni; - END ShakerSort; - -BEGIN - Unos(Niz); - WrStr('Unesen niz: '); - Ispis(Niz); - WrLn; - WrStr('Sortiran niz: '); - ShakerSort(Niz); - Ispis(Niz); -END Shaker.