Advertisement
alvsjo

Najduzi simetrican podniz

Nov 28th, 2016
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.19 KB | None | 0 0
  1. //u zadatom nizu naci najduci simetrican podniz
  2. program simetrican_niz;
  3.  
  4. type
  5.     niz = array[1..20] of integer;
  6. var
  7.  n,l,p,k,m:integer;
  8.  x,y,z: niz;
  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 simetrican(n:integer; x:niz; var p,k:integer);
  31.  var i,j,d,p1,k1:integer; nadjen,r:boolean;
  32.  begin
  33.     d:=n;
  34.     nadjen:=false;
  35.     while(d>1) and not nadjen do
  36.     begin
  37.         p1:=1;
  38.         while(p1<=n+1-d) and not nadjen do
  39.         begin
  40.             k1:=d+p1-1;
  41.             r:=true;
  42.             i:=p1;
  43.             j:=k1;
  44.             while(i<j) and r do
  45.             begin
  46.                 r:=(x[i]=x[j]);
  47.                 i:=i+1;
  48.                 j:=j-1;
  49.             end;
  50.             if(r) then  begin nadjen:=true; p:=p1; k:=k1; end;
  51.  
  52.             p1:=p1+1;
  53.         end;
  54.  
  55.         d:=d-1;
  56.     end;
  57.     if not nadjen then begin p:=1;k:=1; end;
  58.  
  59.  end;
  60.  
  61.  begin
  62.     UnosNiza(n,x);
  63.     StampaNiza(n,x);
  64.     simetrican(n,x,p,k);
  65.     writeln('najduzi simetrican podniz pocinje od pozicicije ',p,' a zavrsava sa ',k);
  66.     readln;
  67.  end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement