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

 
Hạn chế thay đổi các thiết lập cá nhân trong hệ điều hành Windows 7

Hạn chế thay đổi các thiết lập cá nhân trong hệ điều hành Windows 7

Trong hệ điều hành Windows 7 cho phép để hạn chế thay đổi các thiết lập cá nhân, đó là tính năng khá hữu ích. Giả sử máy tính cá nhân của bạn, để tránh tình trạng người khác sử dụng làm thay đổi nền, chủ đề, âm thanh, cấu hình máy tính..hướng dẫn dưới đây sẽ giúp bạn làm điều đó một cách chính xác.

Quỳnh Hoa khẳng định bản thân muốn làm nghề chân chính chứ không đi đường tắt

Siêu mẫu Quỳnh Hoa tiết kiệm được từ 150 triệu đến 200 triệu đồng mỗi tháng

Giải vàng Siêu mẫu Việt Nam 2018 xác nhận chuyện từng được một đại gia yêu mến, ngỏ ý tặng xe, mua nhà với giá 20 tỉ đồng. Tuy nhiên, vì muốn theo đuổi và làm nghề nghiêm túc nên chân dài từ chối.

www.OSTraining.com miễn phí 1 tháng học Drupal

www.OSTraining.com miễn phí 1 tháng học Drupal

Drupal Global Training Days is an initiative by the Drupal Association (D.A.) to introduce new and beginning users to Drupal.

Tomdesgin.vn

 

Drupal Services