X-Git-Url: http://svarog.pmf.uns.ac.rs/gitweb/?p=spa2-teorijske-vezbe.git;a=blobdiff_plain;f=Cas10%2FPERMP.MOD;fp=Cas10%2FPERMP.MOD;h=0000000000000000000000000000000000000000;hp=b72c076c0cffa697cf80ed258a9b227f584c3e50;hb=8a74ce20c68b61b8992a348e34c43671116e9549;hpb=a35f3e51789ace81cea01e548963568da918635f diff --git a/Cas10/PERMP.MOD b/Cas10/PERMP.MOD deleted file mode 100644 index b72c076..0000000 --- a/Cas10/PERMP.MOD +++ /dev/null @@ -1,92 +0,0 @@ -MODULE PermP; - -FROM IO IMPORT - WrStr, WrLn, WrCard, RdCard, WrChar, RdKey, OK; - -CONST - MaxDim = 50; - -TYPE - Niz = ARRAY [1 .. MaxDim] OF CHAR; - -VAR - A: Niz; - n: CARDINAL; - -PROCEDURE Unos(VAR n: CARDINAL; VAR A: Niz); -VAR - i: CARDINAL; -BEGIN - REPEAT - WrStr('Unesite n (1 <= n <= '); - WrCard(MaxDim, 1); - WrStr(') --- '); - n:= RdCard(); - WrLn; - UNTIL OK AND (1 <= n) AND (n <= MaxDim); - REPEAT - WrLn; - WrStr('Unesite '); - WrCard(n, 1); - WrStr(' slova koja treba permutovati (mogu se i ponavljati):'); - WrLn; - WrLn; - i:= 0; - REPEAT - INC(i); - A[i]:= RdKey(); - WrChar(A[i]) - UNTIL (i = n) OR ((CAP(A[i]) < 'A') AND (CAP(A[i]) > 'Z') - AND (A[i] < '0') AND (A[i] > '9')); - UNTIL NOT ((CAP(A[i]) < 'A') AND (CAP(A[i]) > 'Z') AND - (A[i] < '0') AND (A[i] > '9')); -END Unos; - -PROCEDURE Permutacije(n: CARDINAL; VAR A: Niz); - - PROCEDURE Nadji(k: CARDINAL); - VAR - i, j: CARDINAL; - Temp: CHAR; - BEGIN - IF k = 1 THEN - FOR i:= 1 TO n DO - WrChar(A[i]); - END; - WrLn; - ELSE - Nadji(k - 1); - FOR i:= 1 TO k - 1 DO - IF A[k] # A[i] THEN - (* Zamenimo elemente samo ako su razliciti *) - j:= 1; - WHILE (j < i) AND (A[j] # A[i]) DO - INC(j); - END; - IF j = i THEN - (* A[i] nema duplikata u skupu {a[1], ... , a[i-1] *) - Temp:= A[i]; - A[i]:= A[k]; - A[k]:= Temp; - Nadji(k - 1); - Temp:= A[i]; - A[i]:= A[k]; - A[k]:= Temp; - END; - END; - END; - END; - END Nadji; - -BEGIN - Nadji(n); -END Permutacije; - -BEGIN - Unos(n, A); - WrLn; - WrLn; - WrStr('Permutacije: '); - WrLn; - Permutacije(n, A); -END PermP.