Advertisement
alvsjo

domaci 4

Jan 1st, 2017
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 2.91 KB | None | 0 0
  1. program cetvrti;
  2.  
  3. type
  4.     niz = array[0..50] of integer;
  5. var
  6.  zb,n,l,k,p,q,m,zad:integer;
  7.  x,r,y,z: niz;
  8.  
  9.  
  10.  procedure UnosNiza (var n:integer;var x:niz);
  11.  var i:integer;
  12.  begin
  13.     write('Broj clanova niza: ');
  14.     readln(n);
  15.     for i:=1 to n do
  16.         begin
  17.         write ('x[',i,']=');
  18.         readln(x[i]);
  19.         end;
  20.  end;
  21.  
  22.  procedure StampaNiza (n:integer; x:niz);
  23.  var i:integer;
  24.  begin
  25.     write('Elementi niza: ');
  26.     for i:=1 to n-1 do  write (x[i],',');
  27.     writeln(x[n]);
  28.  end;
  29.  
  30.  procedure instrukcije( n:integer; x:niz; var l:integer; var r:niz; var zad:integer);
  31.  var i:integer;
  32. begin
  33.     zb:=0;
  34.     i:=1;
  35.     while i<=l do
  36.         begin
  37.             zb:=zb+r[i];
  38.             i:=i+1;
  39.         end;
  40.     i:=l;
  41.     while (zb>n) do
  42.         begin
  43.             if r[i]>0 then
  44.                 begin
  45.                     r[i]:=r[i]-1;
  46.                     zb:=zb-1;
  47.                 end
  48.             else begin
  49.                 l:=l-1;
  50.                 i:=i-1;
  51.                 zad:=r[l];
  52.             end;
  53.         end;
  54. end;
  55.  
  56.  procedure razdvajanje(n:integer;x:niz; l:integer; r:niz; var p:integer; var y:niz; var q:integer;var z:niz);
  57.  var i,j,nz,t:integer ;
  58.  begin
  59.     zad:=r[l]; //pamtimo orignalni zadnji instrukcioni clan koji ce se mozda izmjeniti sledecim procesom
  60.     instrukcije(n,x,l,r,zad);
  61.     nz:=1;
  62.     j:=0;
  63.     p:=0;
  64.     q:=0;
  65.     for t:=1 to r[1] do
  66.     begin
  67.         j:=j+1;
  68.         p:=p+1;
  69.         y[p]:=x[j];
  70.     end;
  71.        
  72.     for i:=2 to l-1 do
  73.         begin
  74.             t:=r[i]+r[i-1];
  75.             if (t mod 2)=1
  76.             then begin
  77.                     case (nz) of
  78.                     1: begin
  79.                         nz:=2;
  80.                         for t:=1 to r[i] do
  81.                             begin
  82.                                 j:=j+1;
  83.                                 q:=q+1;
  84.                                 z[q]:=x[j];
  85.                             end;
  86.                     end;
  87.                     2: begin
  88.                         nz:=1;
  89.                         for t:=1 to r[i] do
  90.                             begin
  91.                                 j:=j+1;
  92.                                 p:=p+1;
  93.                                 y[p]:=x[j];
  94.                             end;
  95.                     end;
  96.                     end;
  97.                 end
  98.             else
  99.             begin
  100.                 case (nz) of
  101.                 1: begin
  102.                     for t:=1 to r[i] do
  103.                         begin
  104.                             j:=j+1;
  105.                             p:=p+1;
  106.                             y[p]:=x[j];
  107.                         end;
  108.                 end;
  109.                 2: begin
  110.                     for t:=1 to r[i] do
  111.                         begin
  112.                             j:=j+1;
  113.                             q:=q+1;
  114.                             z[q]:=x[j];
  115.                         end;
  116.                 end;
  117.                 end;
  118.             end;
  119.         end;
  120.        
  121.        
  122.        
  123. i:=l;  
  124. t:=zad+r[i-1];
  125.             if (t mod 2)=1
  126.             then begin
  127.                     case (nz) of
  128.                     1: begin
  129.                         nz:=2;
  130.                         for t:=1 to r[i] do
  131.                             begin
  132.                                 j:=j+1;
  133.                                 q:=q+1;
  134.                                 z[q]:=x[j];
  135.                             end;
  136.                     end;
  137.                     2: begin
  138.                         nz:=1;
  139.                         for t:=1 to r[i] do
  140.                             begin
  141.                                 j:=j+1;
  142.                                 p:=p+1;
  143.                                 y[p]:=x[j];
  144.                             end;
  145.                     end;
  146.                     end;
  147.                 end
  148.             else
  149.             begin
  150.                 case (nz) of
  151.                 1: begin
  152.                     for t:=1 to r[i] do
  153.                         begin
  154.                             j:=j+1;
  155.                             p:=p+1;
  156.                             y[p]:=x[j];
  157.                         end;
  158.                 end;
  159.                 2: begin
  160.                     for t:=1 to r[i] do
  161.                         begin
  162.                             j:=j+1;
  163.                             q:=q+1;
  164.                             z[q]:=x[j];
  165.                         end;
  166.                 end;
  167.                 end;
  168.             end;   
  169.  end;
  170.  
  171.  
  172. begin
  173. UnosNiza(n,x);
  174. UnosNiza(l,r);
  175.     StampaNiza(n,x);
  176.     StampaNiza(l,r);
  177.     razdvajanje(n,x,l,r,p,y,q,z);
  178.     if p>0 then stampaniza(p,y) else writeln ('Niz nema clanova');
  179.     if q>0 then stampaniza(q,z) else writeln ('Niz nema clanova');
  180.     readln;
  181.  
  182.  
  183. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement