gitweb on Svarog
projekti pod git sistemom za održavanje verzija -- projects under the git version control systemdiff --git a/06. Maksimalan zbir/TopSpeed/MAXZBIR.MOD b/06. Maksimalan zbir/TopSpeed/MAXZBIR.MOD
--- /dev/null
@@ -0,0 +1,100 @@
+MODULE MaxZbir;\r
+\r
+ FROM IO IMPORT\r
+ WrStr, WrLn, WrCard, WrInt, RdCard, RdInt;\r
+\r
+ CONST\r
+ Max = 100;\r
+\r
+ VAR\r
+ A, B: ARRAY [1 .. Max], [1 .. Max] OF INTEGER;\r
+ m, n: CARDINAL;\r
+ (* B[vr, ko] je vrednost optimalnog resenja od (1, 1) do (vr, ko) *)\r
+\r
+ PROCEDURE Unos;\r
+ VAR\r
+ i, j: CARDINAL;\r
+ BEGIN\r
+ WrStr('Unesite n: ');\r
+ n:= RdCard();\r
+ WrStr('Unesite m: ');\r
+ m:= RdCard();\r
+ IF (n < Max) AND (m < Max) THEN\r
+ FOR i:= 1 TO m DO\r
+ FOR j:= 1 TO n DO\r
+ WrStr('A[');\r
+ WrCard(i, 1);\r
+ WrStr(', ');\r
+ WrCard(j, 1);\r
+ WrStr('] = ');\r
+ A[i, j] := RdInt();\r
+ END;\r
+ END;\r
+ END;\r
+ END Unos;\r
+\r
+ PROCEDURE Resi;\r
+ VAR\r
+ i, j: CARDINAL;\r
+ BEGIN\r
+ B[1, 1]:= A[1, 1];\r
+ FOR j:= 2 TO n DO\r
+ B[1, j]:= A[1, j] + B[1, j-1];\r
+ END;\r
+ FOR i:= 2 TO m DO\r
+ B[i, 1]:= A[i, 1] + B[i-1, 1];\r
+ END;\r
+ FOR i:= 2 TO m DO\r
+ FOR j:= 2 TO n DO\r
+ IF B[i, j - 1] < B[i - 1, j] THEN\r
+ B[i, j]:= A[i, j] + B[i - 1, j];\r
+ ELSE\r
+ B[i, j]:= A[i, j] + B[i, j - 1];\r
+ END;\r
+ END;\r
+ END;\r
+ END Resi;\r
+\r
+ PROCEDURE Ispis(Vr, Ko: CARDINAL);\r
+ VAR\r
+ i: CARDINAL;\r
+ BEGIN\r
+ IF (Vr > 1) AND (Ko > 1) THEN\r
+ IF B[Vr - 1, Ko] > B[Vr, Ko - 1] THEN\r
+ Ispis(Vr - 1, Ko);\r
+ ELSE\r
+ Ispis(Vr, Ko - 1);\r
+ END;\r
+ WrStr('(');\r
+ WrCard(Vr, 1);\r
+ WrStr(', ');\r
+ WrCard(Ko, 1);\r
+ WrStr(')');\r
+ ELSIF Vr = 1 THEN\r
+ FOR i:= 1 TO Ko DO\r
+ WrStr('(1, ');\r
+ WrCard(i, 1);\r
+ WrStr(')');\r
+ END;\r
+ ELSE\r
+ FOR i:= 1 TO Vr DO\r
+ WrStr('(');\r
+ WrCard(i, 1);\r
+ WrStr(', 1)');\r
+ END;\r
+ END;\r
+ END Ispis;\r
+\r
+BEGIN\r
+ Unos;\r
+ IF (n < Max) AND (m < Max) THEN\r
+ Resi;\r
+ WrStr('Maksimalni zbir je ');\r
+ WrInt(B[m, n], 1);\r
+ WrStr(' a postize se ovako:');\r
+ WrLn;\r
+ Ispis(m, n)\r
+ ELSE\r
+ WrStr('Suvise velika matrica.')\r
+ END\r
+END MaxZbir.\r