gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
PolinomL dodata KoeficijentUz
[spa1skripta-public.git] / kodovi / polinomi / POLINOML.MOD
index 405e485..6de5165 100644 (file)
@@ -1,5 +1,5 @@
 (* Modul za rad sa polinomima preko listi\r
-   verzija 2012, rev 1 *)\r
+   verzija 2014 *)\r
 IMPLEMENTATION MODULE PolinomL;\r
 FROM InOut IMPORT Write, WriteString, WriteLn,\r
            WriteCard, ReadCard, Done;\r
@@ -72,6 +72,66 @@ BEGIN
   END\r
 END Stampaj;\r
 \r
+PROCEDURE PostaviClan(k:REAL; st:CARDINAL;\r
+                      VAR p:Polinom);\r
+VAR\r
+  cilj, prethodni : Polinom;\r
+BEGIN\r
+  cilj := p;\r
+  prethodni := NIL;\r
+  WHILE (cilj # NIL) AND (cilj^.st>st) DO\r
+    prethodni := cilj;\r
+    cilj := cilj^.veza;\r
+  END;\r
+  IF cilj = NIL THEN\r
+    IF k#0.0 THEN\r
+      NEW(cilj);\r
+      cilj^.k := k;\r
+      cilj^.st := st;\r
+      cilj^.veza := NIL;\r
+      IF p = NIL THEN\r
+       p := cilj;\r
+      ELSE\r
+       prethodni^.veza := cilj;\r
+      END;\r
+    END;\r
+  ELSIF cilj^.st=st THEN\r
+    IF k # 0.0 THEN\r
+      cilj^.k:=k;\r
+    ELSE\r
+      IF p = cilj THEN\r
+       p := p^.veza;\r
+      ELSE\r
+       prethodni^.veza:= prethodni^.veza^.veza;\r
+      END;\r
+      DISPOSE(cilj);\r
+    END;\r
+  ELSE\r
+    IF k # 0.0 THEN\r
+      NEW(cilj);\r
+      cilj^.k := k;\r
+      cilj^.st := st;\r
+      cilj^.veza := prethodni^.veza;\r
+      prethodni^.veza := cilj;\r
+    END;\r
+  END;\r
+END PostaviClan;\r
+\r
+PROCEDURE KoeficijentUz(p:Polinom; st:CARDINAL):REAL;\r
+VAR\r
+  tekuci : Polinom;\r
+BEGIN\r
+  tekuci := p;\r
+  WHILE (tekuci#NIL) AND (tekuci^.st > st) DO\r
+    tekuci := tekuci^.veza;\r
+  END;\r
+  IF (tekuci # NIL) AND (tekuci^.st = st) THEN\r
+    RETURN tekuci^.k;\r
+  ELSE\r
+    RETURN 0.0;\r
+  END;\r
+END KoeficijentUz;\r
+\r
 PROCEDURE UbaciMonom(mon:Polinom; VAR p: Polinom);\r
 VAR\r
   stari, tekuci, kopija: Polinom;\r
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner