Pascal | Viết thủ tục và chương trình chèn phần tử X vào vị trí k trong mảng A, N phần tử

Pascal | Viết thủ tục và chương trình chèn phần tử X vào vị trí k trong mảng A, N phần tử

Viết thủ tục và chương trình chèn phần tử X vào vị trí k trong mảng A, N phần tử. Xoá phần tử ở vị trí h trong mảng A.

Ví dụ: A :        12    2   3     6     5     17

X = 20 ,           k = 3                h = 2

Kết quả chèn:  12    2   3     20   6     5    17

Kết quả xoá:    12    2   20   6     5    17

Hướng dẫn:

Ý tưởng thuật toán:

Viết thủ tục chèn một phần tử X vào vị trí k nào đó cho mảng A (có N phần tử).

+ Dịch chuyển các phần tử từ vị trí k đến N-1 lùi một vị trí, trở thành các phần tử từ vị trí k+1 đến N. Lưu ý, để tránh trường hợp các phần tử đè lên nhau, giải thuật phải tiến hành di dời các phần tử sau trước….đến các phần tử k sau.

+ Gán giá trị cho A[k] là x.

+ Tăng số lượng phần tử của A lên 1, như thế N phải được truyền theo dạng tham biến

Ý tưởng thuật toán

Viết thủ tục xoá một phần tử ở vị trí k trên mảng A (có N phần tử).

+ Dịch chuyển các phần tử từ vị trí k đến N-1 tiến về trước một vị trí, trở thành các phần tử từ vị trí k-1 đến N-2.

+ Giảm số lượng phần tử của A xuống 1, như thế N phải được truyền theo dạng tham biến .

Nội dung các thủ tục chính xây dựng:

{ 1. Thu tuc chen phan tu }

Procedure ChenPhanTu( A:Mang20;Var N : Integer; k, X:Integer);

Var i :Integer;

Begin

For i:=N downto k+ 1 do

            A[i] := A[i-1];

      A[k] := X;

      N:=N+1;

End;

{ 2. Thu tuc xoa phantu }

Procedure XoaPhanTu( A:Mang20; Var N ,k:Integer);

Var i :Integer;

Begin

       For  i:=k to N-1 do

              A[i] := A[i+1];

       N:=N-1;

End;

Source code chương trình chính:

BEGIN

       NhapMang1C(A, N);                   { Ham nhap xuat khong lam lai nua }

       XuatMang1C(A, N);                    { Su du let qua o truoc }

       Write('Gia tri x:'); Readln(x);

       Write('Vi tri k,h:');            Readln(k,h);

       Writeln('Ket qua chen vao la:');

       ChenPhanTu(A, N, k, x);

       XuatMang1C(A, N);

       Writeln('Ket qua xoa phan tu o vi tri la:', h);

       XoaPhanTu(A, N, h);

       XuatMang1C(A, N);

       Readln;

END

Chương trình con: Thủ tục và Hàm

Viết chương trình chuyển đổi số tự nhiên N cho trước sang hệ cơ số 2 bằng việc xây dựng hàm chuyển đổi.

Hướng dẫn:

Xây dựng hàm Dec2Bin( ) chuyển đổi từ số tự nhiên sang số nhị phân.

o       Sử dụng biến S để lưu giá trị số nhị phân của N. Khởi gán bằng 0.

o       Tiến hành lặp chuyển đổi cơ số: Lặp trong khi mà N > 0

        SoDu = số dư của N chia cho 2.

        N = N chia cho 2.

        Bổ sung chữ số SoDu vào số S thành một chữ số

Trả về kết quả cuối cùng của S.

Viết thân chương trình chính với nội dung dùng để kiểm tra kết quả thực hiện của hàm.

o       Khai báo biến N, M

o       Thông báo nhập, nhập giá trị cho biến N

o       Gán giá trị M bằng kết quả trả về của hàm Dec2Bin( N )

o       In thông báo về kết quả số nhị phân chuyển đổi được (giá trị của M)

o       Gọi hàm readln trước khi kết thúc chương trình

Chương trình:

Program Doi_Co_So;

Uses crt;

Var N:integer;

{ 1. Thu tuc chuyen so tu nhien n cho truoc sang ket qua tra ve he co so 2 }

Function Dec2Bin (  n:integer ):integer;

Var S,So,Du:integer;

Begin

      S := 0; So := n ;

      While ( So > 0) do

      Begin

           Du := So mod 2 ;

           So := So div 2 ;

           S := S * 10 + Du;

      End;

      Dec2Bin:= S ;

End;

{ 2. Than chuong trinh chinh dap ung yeu cau bai toan }

BEGIN

      clrscr;

      write( 'Nhap so N =' ); readln(N );

      writeln(' Dang nhi phan cua N la ', Dec2Bin(N) );

      readln;

END.
Bạn thấy bài viết này như thế nào?: 
Average: 8.1 (32 votes)
Ảnh của Tommy Tran

Tommy owner Express Magazine

Drupal Developer having 9+ year experience, implementation and having strong knowledge of technical specifications, workflow development. Ability to perform effectively and efficiently in team and individually. Always enthusiastic and interseted to study new technologies

  • Skype ID: tthanhthuy

Advertisement

 

jobsora

Dich vu khu trung tphcm

Dich vu diet chuot tphcm

Dich vu diet con trung

Quảng Cáo Bài Viết

 
CEO Mike Lazaridis của BlackBerry giới thiệu PlayBook năm ngoái

Cạnh tranh với Kindle Fire: PlayBook hạ giá còn 199 USD

Giá mới nhất này được đưa ra bởi Staples - công ty chuyên bán lẻ PlayBook- trong Black Friday nhằm tăng số lượng sản phẩm BlackBerry bán ra.

Thời đại Big Data - Amazon đạt doanh thu tới 74 tỷ USD

Thời đại Big Data - Amazon đạt doanh thu tới 74 tỷ USD

Thế giới đang bước vào kỷ nguyên Big Data, khi các quyết định được đưa ra không dựa trên chuyên gia mà dựa vào các tập hợp dữ liệu lớn. 

Theo dõi đơn hàng trong Drupal Commerce với Google Analytics

Theo dõi đơn hàng trong Drupal Commerce với Google Analytics

Knowing what your customers are doing before spending money in your Drupal Commerce store can be valuable information for your business.

Công ty diệt chuột T&C

 

Diet con trung