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:

-          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ử). Ý tưởng thuật toán:

+ 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

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

+ 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

Một số bài tập lập trình Pascal

Vấn đề 2: 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ố

o       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: 4 (3 votes)
Ảnh của Tommy Tran

Tommy Tran 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
  • Phone/Zalo: (+84) 944 225 212
  • WhatsApp: (+84) 944 225 212
  • Line Messenger: (+84) 944 225 212
  • Email: asaleotestf@gmail.com
  • Telegram Messenger: https:/t.me/tommytran0401

Quảng cáo việc làm

 

Thích hợp các bạn nữ mảng thợ may làm việc tại nước NGA

Đơn hàng Tuyển dụng 100 Thợ may đi Nga(đợt 1 tháng 3.2021, đợt 2 tháng 5.2021). Lương thực lãnh 800 USD, bao ăn ở, vé máy bay và visa, phí xuất cảnh(1800 USD)trả khi đi làm có lương. Bạn có thể liên hệ CÔNG TY qua Phone/Zalo: (+84) 944 225 212. Công ty sẽ tư vấn cho bạn.

Xem chi tiết: >>> https://bit.ly/3o9NOfR

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

 
Total Video Converter : Phần mềm đổi đuôi file video

Total Video Converter : Phần mềm đổi đuôi file video

Total Video Converter là chương trình chuyển đổi định dạng file multimedia toàn diện nhất hiện nay.

Filter code trong Drupal từ Stripping Out Code

Filter code trong Drupal từ Stripping Out Code

Code can be dangerous. The right code in the right place brings your site to life, but there are many places where it can be a huge security risk.

70 Best Free Google Android Apps(P3)

Những ứng dụng video android

Some months back we mentioned about 21 Best Google Android Applications, now today we present you 70 Free Google Android apps...