X-Git-Url: http://svarog.pmf.uns.ac.rs/gitweb/?a=blobdiff_plain;f=kodovi%2Fpolinomi%2FPOLINOML.MOD;h=fb6db76caf3e4709f15a62fc33c18d8299bfb240;hb=11f623923fc51d8532dbfb89f151180678e97847;hp=309b34905b1a077a6f29fbe326e02c1c25e3e93c;hpb=9dd437997f7478f943b2f0ab19913737a7b49215;p=spa1skripta-public.git diff --git a/kodovi/polinomi/POLINOML.MOD b/kodovi/polinomi/POLINOML.MOD index 309b349..fb6db76 100644 --- a/kodovi/polinomi/POLINOML.MOD +++ b/kodovi/polinomi/POLINOML.MOD @@ -83,40 +83,63 @@ BEGIN prethodni := cilj; cilj := cilj^.veza; END; - IF cilj = NIL THEN - IF k#0.0 THEN + (* da li upisujemo vrednost ili sklanjamo clan *) + IF k#0.0 THEN + (* da li menjamo clan ili pravimo novi *) + IF (cilj # NIL) AND (cilj^.st = st) THEN + cilj^.k:=k; + ELSE NEW(cilj); cilj^.k := k; cilj^.st := st; cilj^.veza := NIL; IF p = NIL THEN p := cilj; + ELSIF prethodni = NIL THEN + cilj^.veza := p^.veza; + p := cilj; ELSE + cilj^.veza := prethodni^.veza; prethodni^.veza := cilj; END; END; - ELSIF cilj^.st=st THEN - IF k # 0.0 THEN - cilj^.k:=k; - ELSE + ELSE + (* da li postoji ovakav clan *) + IF (cilj # NIL) AND (cilj^.st = st) THEN IF p = cilj THEN p := p^.veza; ELSE prethodni^.veza:= prethodni^.veza^.veza; END; - DISPOSE(cilj); - END; - ELSE - IF k # 0.0 THEN - NEW(cilj); - cilj^.k := k; - cilj^.st := st; - cilj^.veza := prethodni^.veza; - prethodni^.veza := cilj; + DISPOSE(cilj); END; END; END PostaviClan; +PROCEDURE KoeficijentUz(p:Polinom; st:CARDINAL):REAL; +VAR + tekuci : Polinom; +BEGIN + tekuci := p; + WHILE (tekuci#NIL) AND (tekuci^.st > st) DO + tekuci := tekuci^.veza; + END; + IF (tekuci # NIL) AND (tekuci^.st = st) THEN + RETURN tekuci^.k; + ELSE + RETURN 0.0; + END; +END KoeficijentUz; + +PROCEDURE MaksimalniStepen(p:Polinom):CARDINAL; +BEGIN + IF p#NIL THEN + RETURN p^.st; + ELSE + RETURN 0; + END; +END MaksimalniStepen; + PROCEDURE UbaciMonom(mon:Polinom; VAR p: Polinom); VAR stari, tekuci, kopija: Polinom;