gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
sve iz starih verzija
[spa2-teorijske-vezbe.git] / Cas07 / MAXZBIR.MOD
1 MODULE MaxZbir;
3 FROM IO IMPORT
4 WrStr, WrLn, WrCard, WrInt, RdCard, RdInt;
6 CONST
7 Max = 100;
9 VAR
10 A, B: ARRAY [1 .. Max], [1 .. Max] OF INTEGER;
11 m, n: CARDINAL;
12 (* B[vr, ko] je vrednost optimalnog resenja od (1, 1) do (vr, ko) *)
14 PROCEDURE Unos;
15 VAR
16 i, j: CARDINAL;
17 BEGIN
18 WrStr('Unesite n: ');
19 n:= RdCard();
20 WrStr('Unesite m: ');
21 m:= RdCard();
22 IF (n < Max) AND (m < Max) THEN
23 FOR i:= 1 TO m DO
24 FOR j:= 1 TO n DO
25 WrStr('A[');
26 WrCard(i, 1);
27 WrStr(', ');
28 WrCard(j, 1);
29 WrStr('] = ');
30 A[i, j] := RdInt();
31 END;
32 END;
33 END;
34 END Unos;
36 PROCEDURE Resi;
37 VAR
38 i, j: CARDINAL;
39 BEGIN
40 B[1, 1]:= A[1, 1];
41 FOR j:= 2 TO n DO
42 B[1, j]:= A[1, j] + B[1, j-1];
43 END;
44 FOR i:= 2 TO m DO
45 B[i, 1]:= A[i, 1] + B[i-1, 1];
46 END;
47 FOR i:= 2 TO m DO
48 FOR j:= 2 TO n DO
49 IF B[i, j - 1] < B[i - 1, j] THEN
50 B[i, j]:= A[i, j] + B[i - 1, j];
51 ELSE
52 B[i, j]:= A[i, j] + B[i, j - 1];
53 END;
54 END;
55 END;
56 END Resi;
58 PROCEDURE Ispis(Vr, Ko: CARDINAL);
59 VAR
60 i: CARDINAL;
61 BEGIN
62 IF (Vr > 1) AND (Ko > 1) THEN
63 IF B[Vr - 1, Ko] > B[Vr, Ko - 1] THEN
64 Ispis(Vr - 1, Ko);
65 ELSE
66 Ispis(Vr, Ko - 1);
67 END;
68 WrStr('(');
69 WrCard(Vr, 1);
70 WrStr(', ');
71 WrCard(Ko, 1);
72 WrStr(')');
73 ELSIF Vr = 1 THEN
74 FOR i:= 1 TO Ko DO
75 WrStr('(1, ');
76 WrCard(i, 1);
77 WrStr(')');
78 END;
79 ELSE
80 FOR i:= 1 TO Vr DO
81 WrStr('(');
82 WrCard(i, 1);
83 WrStr(', 1)');
84 END;
85 END;
86 END Ispis;
88 BEGIN
89 Unos;
90 IF (n < Max) AND (m < Max) THEN
91 Resi;
92 WrStr('Maksimalni zbir je ');
93 WrInt(B[m, n], 1);
94 WrStr(' a postize se ovako:');
95 WrLn;
96 Ispis(m, n)
97 ELSE
98 WrStr('Suvise velika matrica.')
99 END
100 END MaxZbir.
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner