Advertisement
ridjis

zadpol

Jan 22nd, 2014
353
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. MODULE kolo;
  2. FROM InOut IMPORT WriteString,WriteLn,WriteInt;
  3. FROM PolinomN IMPORT Polinom,Stampaj,Ucitaj,Puta,NadjiStepen;
  4.  
  5. PROCEDURE Parni(p:Polinom; VAR j:INTEGER);
  6. VAR i:INTEGER;
  7. BEGIN
  8.   IF p.st>-1 THEN
  9.     FOR i:=0 TO p.st DO
  10.       IF i MOD 2 = 0 THEN
  11.         IF p.k[i]>0.0 THEN
  12.           INC(j);
  13.     END;
  14.       END;
  15.     END;
  16.   END;
  17.   WriteInt(j,0);
  18. END Parni;
  19.  
  20. PROCEDURE Prethodni(p:Polinom);
  21. VAR i:INTEGER;
  22. BEGIN
  23.   IF p.st>-1 THEN
  24.     FOR i:=p.st-1 TO 0 BY -1 DO
  25.       IF (p.k[i]#0.0) AND (p.k[i]>p.k[i+1]) THEN
  26.         p.k[i]:=0.0;
  27.       END;
  28.     END;
  29.   END;
  30.   NadjiStepen(p);
  31.   Stampaj(p,0);
  32. END Prethodni;
  33.  
  34. PROCEDURE Bez(p:Polinom);
  35. VAR i:INTEGER;
  36.     ok: BOOLEAN;
  37. BEGIN
  38.   ok:=TRUE;
  39.   WHILE (p.st>0) AND ok DO
  40.     IF (p.st MOD 2 = 1) THEN
  41.       p.k[p.st]:=0.0;
  42.       ok:=FALSE;
  43.     END;
  44.     p.st:=p.st-1;
  45.   END;
  46.   NadjiStepen(p);
  47.   Stampaj(p,0);
  48. END Bez;
  49.  
  50. PROCEDURE proc2(VAR p: Polinom);
  51. VAR
  52.   i, maxn : INTEGER;
  53. BEGIN
  54.      IF p.st > 0 THEN
  55.        maxn := 0;
  56.        FOR i := 1 TO p.st DO
  57.          IF i MOD 2 = 1 THEN
  58.            IF i > maxn THEN
  59.              maxn := i;
  60.            END;
  61.          END;
  62.        END;
  63.        p.k[maxn] := 0.0;
  64.        NadjiStepen(p);
  65.      END;
  66.      Stampaj(p,0);
  67. END proc2;
  68.  
  69. VAR p,q,pq,r,w,x,xp:Polinom;
  70.     j:INTEGER;
  71.     ok:BOOLEAN;
  72.  
  73. BEGIN
  74. (*A*)
  75.   WriteString('Unesite polinom p(x): ');
  76.   Ucitaj(p);
  77.   WriteLn;
  78.   (*q(x)*)
  79.   q.st:=5;
  80.   q.k[5]:=3.0;
  81.   q.k[3]:=2.0;
  82.   q.k[0]:=9.0;
  83.   Puta(p,q,pq,ok);
  84.   IF ok THEN
  85.     WriteString('p(x)*q(x)= ');
  86.     Stampaj(pq,0);
  87.   ELSE
  88.     WriteString('Stepen izvan granica!');
  89.   END;
  90.   WriteLn;
  91. (*B*)
  92.   x.st:=5;
  93.   x.k[5]:=8.0;
  94.   x.k[2]:=7.0;
  95.   Puta(x,p,xp,ok);
  96.   Puta(xp,q,r,ok);
  97.   WriteString('r(x) = ');
  98.   Stampaj(r,0);
  99.   WriteLn;
  100. (*C*)
  101.   WriteLn;
  102.   WriteString('Broj monoma sa parnim stepenom: ');
  103.   Parni(r,j);
  104.   WriteLn;
  105. (*D*)
  106.   WriteLn;
  107.   WriteString('Monomi kojima je koef veci od predhodnog: ');
  108.   Prethodni(r);
  109.   WriteLn;
  110. (*E*)
  111.   WriteLn;
  112.   WriteString('Polinom r bez najveceg neparnog: ');
  113.   WriteLn;
  114.   Bez(r);
  115.   WriteLn;
  116.   WriteString('Polinom pq bez najveceg neparnog: ');
  117.   WriteLn;
  118.   Bez(pq);
  119.   WriteLn;
  120. (*F*)
  121.   WriteLn;
  122.   WriteString('Polinom r bez najveceg neparnog: ');
  123.   WriteLn;
  124.   proc2(r);
  125.   WriteLn;
  126.  
  127. END kolo.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement