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

 
Làm gì để consulting project Drupal 7 thành công

Làm gì để consulting project Drupal 7 thành công

Soon after I started working at Lullabot, I got my first client, and like all clients this one had a problem. They were a university whose site was running on Drupal

State of Drupal presentation (June 2014)

Dries Buytaert phát biểu về State của Drupal presentation tại DrupalCon Austin

I gave my traditional State of Drupal presentation this week at DrupalCon Austin.

Xử lý trạng thái node flagged trong Drupal 7 theme

Xử lý trạng thái node flagged trong Drupal 7 theme

I was recently working on a Drupal 7 project which required updating an Image style on a node based on whether or a flag was set or not.

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

 

Diet con trung