X-Git-Url: http://svarog.pmf.uns.ac.rs/gitweb/?a=blobdiff_plain;f=kodovi%2Fpolinomi%2FPOLINOML.MOD;h=12fc5b10bd5bea704bf799b17ac266a70c5400f3;hb=refs%2Fheads%2Fpublic;hp=1f53f28d644cc05917e97148e488e4bc102d551a;hpb=42bd814c42848f43f646d277a7e1dd6e0b970575;p=spa1skripta-public.git diff --git a/kodovi/polinomi/POLINOML.MOD b/kodovi/polinomi/POLINOML.MOD index 1f53f28..12fc5b1 100644 --- a/kodovi/polinomi/POLINOML.MOD +++ b/kodovi/polinomi/POLINOML.MOD @@ -1,5 +1,5 @@ (* Modul za rad sa polinomima preko listi - verzija 2014 *) + verzija 2014; rev 1 *) IMPLEMENTATION MODULE PolinomL; FROM InOut IMPORT Write, WriteString, WriteLn, WriteCard, ReadCard, Done; @@ -93,10 +93,9 @@ BEGIN cilj^.k := k; cilj^.st := st; cilj^.veza := NIL; - IF p = NIL THEN - p := cilj; - ELSIF prethodni = NIL THEN - cilj^.veza := p^.veza; + IF prethodni = NIL THEN + (* ili je prazan polinom, ili dodajemo na pocetak *) + cilj^.veza := p; p := cilj; ELSE cilj^.veza := prethodni^.veza; @@ -273,7 +272,7 @@ END MonomPuta; PROCEDURE Puta(p1, p2: Polinom; VAR pr: Polinom); VAR - pomocni: Polinom; + pomocni, brisi: Polinom; BEGIN Anuliraj(pr); IF (p1 <> NIL) AND (p2 <> NIL) THEN @@ -283,7 +282,9 @@ BEGIN MonomPuta(p1, p2, pomocni); REPEAT UbaciMonom(pomocni, pr); - pomocni := pomocni^.veza + brisi := pomocni; + pomocni := pomocni^.veza; + DISPOSE(brisi); UNTIL pomocni = NIL; p2 := p2^.veza END @@ -327,18 +328,19 @@ PROCEDURE PolinomNaN(p: Polinom; n: CARDINAL; VAR rez: Polinom); VAR i: CARDINAL; + pret : Polinom; BEGIN IF n = 0 THEN NEW(rez); rez^.k := 1.0; rez^.st := 0; rez^.veza := NIL; - ELSIF n = 1 THEN - Kopiraj( p, rez ); ELSE - rez := p; + Kopiraj( p, rez ); FOR i := 2 TO n DO - Puta(rez, p, rez) + pret := rez; + Puta(pret, p, rez); + DisposePolinom(pret); END END; END PolinomNaN;