gitweb on Svarog
projekti pod git sistemom za održavanje verzija -- projects under the git version control system
summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 50ea5f6)
raw | patch | inline | side by side (parent: 50ea5f6)
author | Doni Pracner <quinnuendo@gmail.com> | |
Tue, 26 Nov 2013 12:30:26 +0000 (13:30 +0100) | ||
committer | Doni Pracner <quinnuendo@gmail.com> | |
Tue, 26 Nov 2013 12:30:26 +0000 (13:30 +0100) |
07. Bojenje mape/XDS/BOJENJE.MOD | [new file with mode: 0644] | patch | blob |
diff --git a/07. Bojenje mape/XDS/BOJENJE.MOD b/07. Bojenje mape/XDS/BOJENJE.MOD
--- /dev/null
@@ -0,0 +1,128 @@
+MODULE Bojenje;\r
+\r
+ FROM IO IMPORT\r
+ WrStr, WrLn, WrCard;\r
+\r
+ CONST\r
+ MaxBrojZemalja = 30;\r
+ DuzinaImena = 18;\r
+\r
+ TYPE\r
+ RangImena = [1 .. DuzinaImena];\r
+ Zemlja = [1 .. MaxBrojZemalja];\r
+ SkupZ = SET OF Zemlja;\r
+ Boja = (Crvena, Plava, Zelena, Zuta);\r
+ GraniceTip = ARRAY Zemlja OF SkupZ;\r
+ BojeZemalja = ARRAY Boja OF SkupZ;\r
+ ImenaZemalja = ARRAY Zemlja, RangImena OF CHAR;\r
+\r
+ VAR\r
+ Granice: GraniceTip;\r
+ Obojeno: BojeZemalja;\r
+ Ime: ImenaZemalja;\r
+ BrZ: Zemlja;\r
+ RBr: CARDINAL;\r
+\r
+ PROCEDURE Inicijalizacija;\r
+ VAR\r
+ i: Boja;\r
+ BEGIN\r
+ FOR i:= MIN(Boja) TO MAX(Boja) DO\r
+ Obojeno[i]:= SkupZ {};\r
+ END;\r
+ Ime[ 1]:= 'Maroko';\r
+ Ime[ 2]:= 'Zapadna Sahara';\r
+ Ime[ 3]:= 'Alzir';\r
+ Ime[ 4]:= 'Tunis';\r
+ Ime[ 5]:= 'Mauritanija';\r
+ Ime[ 6]:= 'Mali';\r
+ Ime[ 7]:= 'Niger';\r
+ Ime[ 8]:= 'Libija';\r
+ Ime[ 9]:= 'Senegal';\r
+ Ime[10]:= 'Gvineja';\r
+ Ime[11]:= 'Obala Slonovace';\r
+ Ime[12]:= 'Burkina Faso';\r
+ Ime[13]:= 'Benin';\r
+ Ime[14]:= 'Nigerija';\r
+ Ime[15]:= 'Cad';\r
+ Ime[16]:= 'Sudan';\r
+ Ime[17]:= 'Egipat';\r
+ Ime[18]:= 'Gambija';\r
+ Ime[19]:= 'Gvineja Bisao';\r
+ Ime[20]:= 'Siera Leone';\r
+ Granice[ 1]:= SkupZ {3, 2};\r
+ Granice[ 2]:= SkupZ {1, 3, 5};\r
+ Granice[ 3]:= SkupZ {1, 2, 5, 6, 7, 8, 4};\r
+ Granice[ 4]:= SkupZ {3, 8};\r
+ Granice[ 5]:= SkupZ {2, 3, 6, 9};\r
+ Granice[ 6]:= SkupZ {3, 5, 9, 10, 11, 12, 7};\r
+ Granice[ 7]:= SkupZ {3, 6, 12, 13, 14, 15, 8};\r
+ Granice[ 8]:= SkupZ {4, 3, 7, 15, 16, 17};\r
+ Granice[ 9]:= SkupZ {18, 19, 10, 6, 5};\r
+ Granice[10]:= SkupZ {19, 9, 6, 20, 11};\r
+ Granice[11]:= SkupZ {10, 6, 12};\r
+ Granice[12]:= SkupZ {6, 11, 13, 7};\r
+ Granice[13]:= SkupZ {12, 7, 14};\r
+ Granice[14]:= SkupZ {13, 7, 15};\r
+ Granice[15]:= SkupZ {14, 7, 8, 16};\r
+ Granice[16]:= SkupZ {17, 8, 15};\r
+ Granice[17]:= SkupZ {8, 15, 16};\r
+ Granice[18]:= SkupZ {9};\r
+ Granice[19]:= SkupZ {9, 10};\r
+ Granice[20]:= SkupZ {10};\r
+ RBr:= 0;\r
+ BrZ:= 20\r
+ END Inicijalizacija;\r
+\r
+ PROCEDURE StampajSkup(VAR S: SkupZ);\r
+ VAR\r
+ z: Zemlja;\r
+ Prvi: BOOLEAN;\r
+ BEGIN\r
+ Prvi:= TRUE;\r
+ FOR z:= 1 TO MaxBrojZemalja DO\r
+ IF z IN S THEN\r
+ IF Prvi THEN\r
+ WrStr(Ime[z]);\r
+ Prvi:= FALSE;\r
+ ELSE\r
+ WrStr(', ');\r
+ WrStr(Ime[z]);\r
+ END;\r
+ END;\r
+ END;\r
+ END StampajSkup;\r
+\r
+\r
+ PROCEDURE Stampa(RBr: CARDINAL; VAR Obojeno: BojeZemalja);\r
+ BEGIN\r
+ WrLn; WrLn; WrCard(RBr, 1);\r
+ WrLn; WrStr('Crvena: '); StampajSkup(Obojeno[Crvena]);\r
+ WrLn; WrStr('Plava: '); StampajSkup(Obojeno[Plava]);\r
+ WrLn; WrStr('Zelena: '); StampajSkup(Obojeno[Zelena]);\r
+ WrLn; WrStr('Zuta: '); StampajSkup(Obojeno[Zuta]);\r
+ END Stampa;\r
+\r
+ PROCEDURE Oboji(z: Zemlja);\r
+ VAR\r
+ i: Boja;\r
+ BEGIN\r
+ FOR i:= MIN(Boja) TO MAX(Boja) DO\r
+ IF Granice[z] * Obojeno[i] = SkupZ {} THEN\r
+ Obojeno[i]:= Obojeno[i] + SkupZ {z};\r
+ IF z = BrZ THEN\r
+ INC(RBr);\r
+ Stampa(RBr, Obojeno);\r
+ ELSE\r
+ Oboji(z + 1);\r
+ END;\r
+ Obojeno[i]:= Obojeno[i] - SkupZ {z};\r
+ END;\r
+ END;\r
+ END Oboji;\r
+\r
+BEGIN\r
+ Inicijalizacija;\r
+ Oboji(1);\r
+ (* Broj mogucih bojenja je 1 527 552 *)\r
+END Bojenje.\r