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)

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)”

  1. 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.

    Bình luận

Viết một bình luận