Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program cetvrti;
- type
- niz = array[0..50] of integer;
- var
- zb,n,l,k,p,q,m,zad:integer;
- x,r,y,z: niz;
- procedure UnosNiza (var n:integer;var x:niz);
- var i:integer;
- begin
- write('Broj clanova niza: ');
- readln(n);
- for i:=1 to n do
- begin
- write ('x[',i,']=');
- readln(x[i]);
- end;
- end;
- procedure StampaNiza (n:integer; x:niz);
- var i:integer;
- begin
- write('Elementi niza: ');
- for i:=1 to n-1 do write (x[i],',');
- writeln(x[n]);
- end;
- procedure instrukcije( n:integer; x:niz; var l:integer; var r:niz; var zad:integer);
- var i:integer;
- begin
- zb:=0;
- i:=1;
- while i<=l do
- begin
- zb:=zb+r[i];
- i:=i+1;
- end;
- i:=l;
- while (zb>n) do
- begin
- if r[i]>0 then
- begin
- r[i]:=r[i]-1;
- zb:=zb-1;
- end
- else begin
- l:=l-1;
- i:=i-1;
- zad:=r[l];
- end;
- end;
- end;
- procedure razdvajanje(n:integer;x:niz; l:integer; r:niz; var p:integer; var y:niz; var q:integer;var z:niz);
- var i,j,nz,t:integer ;
- begin
- zad:=r[l]; //pamtimo orignalni zadnji instrukcioni clan koji ce se mozda izmjeniti sledecim procesom
- instrukcije(n,x,l,r,zad);
- nz:=1;
- j:=0;
- p:=0;
- q:=0;
- for t:=1 to r[1] do
- begin
- j:=j+1;
- p:=p+1;
- y[p]:=x[j];
- end;
- for i:=2 to l-1 do
- begin
- t:=r[i]+r[i-1];
- if (t mod 2)=1
- then begin
- case (nz) of
- 1: begin
- nz:=2;
- for t:=1 to r[i] do
- begin
- j:=j+1;
- q:=q+1;
- z[q]:=x[j];
- end;
- end;
- 2: begin
- nz:=1;
- for t:=1 to r[i] do
- begin
- j:=j+1;
- p:=p+1;
- y[p]:=x[j];
- end;
- end;
- end;
- end
- else
- begin
- case (nz) of
- 1: begin
- for t:=1 to r[i] do
- begin
- j:=j+1;
- p:=p+1;
- y[p]:=x[j];
- end;
- end;
- 2: begin
- for t:=1 to r[i] do
- begin
- j:=j+1;
- q:=q+1;
- z[q]:=x[j];
- end;
- end;
- end;
- end;
- end;
- i:=l;
- t:=zad+r[i-1];
- if (t mod 2)=1
- then begin
- case (nz) of
- 1: begin
- nz:=2;
- for t:=1 to r[i] do
- begin
- j:=j+1;
- q:=q+1;
- z[q]:=x[j];
- end;
- end;
- 2: begin
- nz:=1;
- for t:=1 to r[i] do
- begin
- j:=j+1;
- p:=p+1;
- y[p]:=x[j];
- end;
- end;
- end;
- end
- else
- begin
- case (nz) of
- 1: begin
- for t:=1 to r[i] do
- begin
- j:=j+1;
- p:=p+1;
- y[p]:=x[j];
- end;
- end;
- 2: begin
- for t:=1 to r[i] do
- begin
- j:=j+1;
- q:=q+1;
- z[q]:=x[j];
- end;
- end;
- end;
- end;
- end;
- begin
- UnosNiza(n,x);
- UnosNiza(l,r);
- StampaNiza(n,x);
- StampaNiza(l,r);
- razdvajanje(n,x,l,r,p,y,q,z);
- if p>0 then stampaniza(p,y) else writeln ('Niz nema clanova');
- if q>0 then stampaniza(q,z) else writeln ('Niz nema clanova');
- readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement