Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program drugivel;
- //drugi po velicini i broj njegovih ponavljanja
- type
- niz = array[1..20] of integer;
- var
- n,max2,br2:integer;
- x: niz;
- r: boolean;
- 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 DrugiMax(n:integer;x:niz;var max2,br2:integer; var r:boolean);
- //max2 drugi can po velicini u nizu x
- //br2 broj njegovih ponavljanja u nizu
- //r ima vrijednost false ako su svi elementi niza jednaki (nema drugog clana)
- //r je true ako ima bar 2 razlicita
- var max1,br1,i:integer;
- begin
- max1:=x[1];
- br1:=1;
- i:=2;
- r:=false;
- while (i<=n)and not r do
- begin
- if x[1]=x[i] then br1:=br1+1 else r:=true;
- i:=i+1;
- end;
- if r then
- begin
- if max1<x[i-1] then
- begin
- max2:=max1;
- max1:=x[i-1];
- br2:=br1;
- br1:=1;
- end
- else
- begin
- max2:=x[i-1];
- br2:=1;
- end;
- while (i<=n) do
- begin{
- if max1<x[i]
- then
- begin
- max2:=max1;
- max1:=x[i];
- br2:=br1;
- br1:=1;
- end
- else if max1=x[i] then br1:=br1+1
- else if max2<x[i]
- then
- begin
- max2:=x[i];
- br2:=1;
- end
- else if max2=x[i] then br2:=br2+1;}
- if (max2=x[i]) then br2:=br2+1;
- if (max2<x[i]) and (x[i]<max1) then begin max2:=x[i]; br2:=1; end ;
- if (max1=x[i]) then br1:=br1+1;
- if (max1<x[i]) then begin max2:=max1; br2:=br1; max1:=x[i];br1:=1; end;
- i:=i+1;
- end;
- end;
- end;
- begin
- UnosNiza(n,x);
- StampaNiza(n,x);
- drugimax(n,x,max2,br2,r);
- if r then writeln(max2:8, br2:8)
- else writeln ('Svi clanovi niza su isti');
- readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement