Viết chương trình sắp xếp mảng và cho biết phần tử x xuất hiện bao nhiêu lần trong dãy, (dùng procedure và function)
0 bình luận về “Viết chương trình sắp xếp mảng và cho biết phần tử x xuất hiện bao nhiêu lần trong dãy, (dùng procedure và function)”
program b1; uses crt; type mang=array[1..100] of longint; var n,i,x,dem:integer; a:mang; procedure nhap(var a:mang; var n:integer); var i:integer; begin write(‘nhap n:’); readln(n); for i:=1 to n do begin write(‘a[‘,i,’]=’); readln(a[i]); end; end; {——————————————-} procedure xuat(a:mang; n:longint); var i:integer; begin for i:=1 to n do write(a[i],’ ‘); writeln; end; {——————————————–}
procedure sapxep(a:mang; n:longint); var i,j,z:integer; begin for i:=1 to n-1 do for j:=i+1 to n do if(a[i]>a[j]) then begin z:=a[i]; a[i]:=a[j]; a[j]:=z; end; write(‘ket qua sau khi sap xep la:’); for i:=1 to n do write(a[i]:5); end; {——————————————} function timkiem1(a:mang; n,x:longint):boolean; var dau,cuoi,giua:longint; kt:boolean; begin dau:=1; cuoi:=n; kt:=false; while (dau<=cuoi) do begin giua:=(dau+cuoi) div 2; if x=a[giua] then begin kt:=true; break; end; if x>a[giua] then dau:=giua+1; if x<a[giua] then cuoi:=giua-1; end; exit(kt); end; {——————————————} function biendem(a:mang;n,x:longint):longint; var i,dem:integer; begin dem:=0; for i:=1 to n do if a[i]=x then begin dem:=dem+1; biendem:=dem; end; end; begin nhap(a,n); xuat(a,n); sapxep(a,n); writeln; write(‘x=’); readln(x); if timkiem1(a,n,x)=false then write(x,’ ko co trong mang’) else write(x,’ co trong mang’); writeln; write(‘x=’); readln(x); write(‘so lan ‘,x,’ xuat hien trong day la:’,biendem(a,n,x)); readln end.
program b1;
uses crt;
type mang=array[1..100] of longint;
var n,i,x,dem:integer;
a:mang;
procedure nhap(var a:mang; var n:integer);
var i:integer;
begin
write(‘nhap n:’); readln(n);
for i:=1 to n do
begin
write(‘a[‘,i,’]=’); readln(a[i]);
end;
end;
{——————————————-}
procedure xuat(a:mang; n:longint);
var i:integer;
begin
for i:=1 to n do
write(a[i],’ ‘);
writeln;
end;
{——————————————–}
procedure sapxep(a:mang; n:longint);
var i,j,z:integer;
begin
for i:=1 to n-1 do
for j:=i+1 to n do
if(a[i]>a[j]) then
begin
z:=a[i];
a[i]:=a[j];
a[j]:=z;
end;
write(‘ket qua sau khi sap xep la:’); for i:=1 to n do
write(a[i]:5);
end;
{——————————————}
function timkiem1(a:mang; n,x:longint):boolean;
var dau,cuoi,giua:longint;
kt:boolean;
begin
dau:=1;
cuoi:=n;
kt:=false;
while (dau<=cuoi) do
begin
giua:=(dau+cuoi) div 2;
if x=a[giua] then
begin
kt:=true;
break;
end;
if x>a[giua] then dau:=giua+1;
if x<a[giua] then cuoi:=giua-1;
end;
exit(kt);
end;
{——————————————}
function biendem(a:mang;n,x:longint):longint;
var i,dem:integer;
begin
dem:=0;
for i:=1 to n do
if a[i]=x then begin
dem:=dem+1;
biendem:=dem;
end;
end;
begin
nhap(a,n);
xuat(a,n);
sapxep(a,n);
writeln;
write(‘x=’); readln(x);
if timkiem1(a,n,x)=false then write(x,’ ko co trong mang’)
else write(x,’ co trong mang’);
writeln;
write(‘x=’); readln(x);
write(‘so lan ‘,x,’ xuat hien trong day la:’,biendem(a,n,x));
readln
end.