Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //ispitati da li je zadati niz periodican
- program niz_period;
- type
- niz = array[1..20] of integer;
- var
- n,p,k,l:integer;
- x,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 StampaNiza1 (n,p,k:integer; x:niz);
- var i:integer;
- begin
- write('Elementi niza: ');
- for i:=p to k-1 do write (x[i],',');
- writeln(x[k]);
- end;
- function periodican(n:integer; x:niz):integer;
- //ako je x periodican rezultat je osnovni period
- //ako x nije periodican rezultat je 0
- var i,d,k,l:integer; nadjen,r:boolean;
- begin
- i:=2;
- nadjen:=false;
- periodican:=0;
- while (i<n) and not nadjen do
- begin
- if(x[1]=x[i]) then
- begin
- d:=i-1;
- r:=true;
- k:=1;
- while (k<i) and r do
- begin
- l:=k+d;
- while (l<=n) and r do
- begin
- //writeln(k:4,l:4, x[k]:4,x[l]:4);
- //readln;
- r:=x[k]=x[l];
- l:=l+d;
- end;
- k:=k+1;
- end;
- if r then begin nadjen:=true; periodican:=d; end
- else i:=i+1;
- end
- else i:=i+1;
- end;
- end;
- begin
- UnosNiza(n,x);
- StampaNiza(n,x);
- p:=periodican(n,x);
- if p>0 then begin writeln(' periodican sa periodom ', p); stampaniza1(n,1,p,x); end
- else writeln('nije periodican');
- readln;
- end.
Add Comment
Please, Sign In to add comment