Advertisement
alvsjo

Drugi po velicini

Nov 21st, 2016
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.87 KB | None | 0 0
  1. program drugivel;
  2. //drugi po velicini i broj njegovih ponavljanja
  3. type
  4.     niz = array[1..20] of integer;
  5. var
  6.  n,max2,br2:integer;
  7.  x: niz;
  8.  r: boolean;
  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 DrugiMax(n:integer;x:niz;var max2,br2:integer; var r:boolean);
  31.  //max2 drugi can po velicini u nizu x
  32.  //br2 broj njegovih ponavljanja u nizu
  33.  //r ima vrijednost false ako su svi elementi niza jednaki (nema drugog clana)
  34.  //r je true ako ima bar 2 razlicita
  35.  var max1,br1,i:integer;
  36.  begin
  37.     max1:=x[1];
  38.     br1:=1;
  39.     i:=2;
  40.     r:=false;
  41.     while (i<=n)and not r do
  42.         begin
  43.         if x[1]=x[i] then br1:=br1+1 else r:=true;
  44.         i:=i+1;
  45.         end;
  46.     if r then
  47.         begin
  48.         if max1<x[i-1] then
  49.             begin
  50.             max2:=max1;
  51.             max1:=x[i-1];
  52.             br2:=br1;
  53.             br1:=1;
  54.             end
  55.         else
  56.             begin
  57.             max2:=x[i-1];
  58.             br2:=1;
  59.             end;
  60.         while (i<=n) do
  61.             begin{
  62.             if max1<x[i]
  63.             then
  64.                 begin
  65.                 max2:=max1;
  66.                 max1:=x[i];
  67.                 br2:=br1;
  68.                 br1:=1;
  69.                 end
  70.             else if max1=x[i] then br1:=br1+1
  71.                 else if max2<x[i]
  72.                     then
  73.                     begin
  74.                         max2:=x[i];
  75.                         br2:=1;
  76.                     end
  77.                     else if max2=x[i] then br2:=br2+1;}
  78.             if (max2=x[i]) then br2:=br2+1;
  79.             if (max2<x[i]) and (x[i]<max1) then begin max2:=x[i]; br2:=1; end ;
  80.             if (max1=x[i]) then br1:=br1+1;
  81.             if (max1<x[i]) then begin max2:=max1; br2:=br1; max1:=x[i];br1:=1; end;
  82.             i:=i+1;
  83.             end;
  84.         end;
  85.    
  86. end;
  87.  
  88.  
  89.  
  90.  begin
  91.     UnosNiza(n,x);
  92.     StampaNiza(n,x);
  93.     drugimax(n,x,max2,br2,r);
  94.         if r then writeln(max2:8, br2:8)
  95.         else writeln ('Svi clanovi niza su isti');
  96.     readln;
  97.  end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement