Pascal | Tìm kiếm vị trí xuất hiện của x trên mảng A

Pascal | Tìm kiếm vị trí xuất hiện của x trên mảng A

Tìm kiếm và thay thế. Tìm kiếm vị trí xuất hiện của x trên mảng A. Thay thế những giá trị Ai là x thành y.

Ví dụ: A:        1   5   6   7   4   1   5   5   1   1

            X=5     Y=15

Kết quả:          Vi tri xuat hien X la 1

Ket qua thay the: 1   15   6   7   4   1   15   15   1   1

Hướng dẫn:

-          Xây dựng hàm tìm kiếm giá trị X trong mảng A, N phần tử. Sử dụng vòng lặp từ 0 đến N-1 để kiểm tra tất cả các giá trị Ai, nếu bằng x thì trả về vị trí i tìm thấy. Nếu thoát vòng lặp mà không tìm thấy thì trả về là –1.

-          Xây dựng hàm thay thế giá trị x bằng y tại vị trí tìm thấy đầu tiên. Tương tự như tìm kiếm, nhưng khi tìm thấy thì tiến hành gán giá trị mới cho Ai là y.

-          Xây dựng hàm thay thế tất cả các giá trị x bằng y tại mỗi vị trí tìm thấy. Sử dụng vòng lặp duyệt qua tất cả các giá trị của Ai, nếu Ai bằng x thì tiến hành gán thành y.

Các hàm xây dựng:

{ 1. Ham tim kiem gia tri X trong mang A voi N phan tu                    }

Function TimKiem ( A:Mang20; N:Integer; X:Integer ):Boolean;
Var Flag : Boolean;
       i:Integer;
Begin
      Flag:=False;
      For  i:=0  to N do
            Begin
                        If (A[i] = x) then
                          Begin
                                    Flag:=True;
                                    Break;              {Tim thay  ==> Tra ve vi tri tim thay }
                          End;
            End;
       TimKiem:=Flag;
End;

{ 2. Thay the phan tu X dau tien tim thay trong mang bang gia tri Y    }

Function ThayThe(Var A:Mang20;Var N, x, y:Integer):Integer;
Var i:Integer;
Begin
       For i:=0 to N do
              If (A[i] = x) then
              Begin
      A[i] := y;               { Tim thay x ==> thay the thanh y }
                  Break;                   { Cham dut qua trinh thay the}
              End;
       ThayThe := i;
End;

{ 3. Thay the tat ca cac phan tu co gia tri X tim thay bang gia tri Y    }

Procedure ThayTheTatCa (Var A:Mang20; Var N, x,y:Integer);
Var i:Integer;
Begin
       For i:=0 to N do
              If(A[i] = x) then                    { Tim thay x ==> thay the thanh y }
                     A[i] := y;
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);
       If (TimKiem(A,N,x)) then
              Writeln( 'Tim thay tai vi tri  trong mang A.', x, k )
       Else
              Writeln( 'Khong tim thay trong mang A', x );
       Write('gia tri y:');  Readln(y);
       ThayThe(A, N, x, y);
       Writeln('Ket qua thay the ',x, y);
       XuatMang1C(A, N);
       ThayTheTatCa(A, N, x, y);
       Writeln('Ket qua thay the tat ca la:',x, y);
       XuatMang1C(A, N);
       Readln;
END.

Mở rộng:  + Tìm kiếm các cặp 2 phần tử gần nhau có tổng chia hết cho 10. Thay thế các phần tử đó bằng tổng của chúng.

Ví dụ: A:  1   19   62   7      8   32   12

Ket qua: 20   20   62   7    40   40   12

Procedure ThayTheBangTong(Var A:Mang20; N:Integer; X, Y:Integer);
Var i,k:Integer;
Begin
       For i:=0 to N do
              If( (A[i-1]+A[i]) mod 10 = 0) then
              Begin
                      k := (A[i-1]+A[i]);
                     A[i-1] := k;
                     A[i] := k;
              End;
End;
Bạn thấy bài viết này như thế nào?: 
Average: 9.9 (594 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

 
50 phím tắt hữu ích cho người dùng Windows và MAC

50 phím tắt hữu ích cho người dùng Windows và MAC

Nếu bạn chưa có thói quen sử dụng phím tắt, hãy cố gắng rèn luyện và ghi nhớ chúng nha.

Cài đặt vitual box cho Web Development ( Virtual Machines )

Cài đặt vitual box cho Web Development ( Virtual Machines )

I develop locally on a virtual server before deploying to a production environment. It's an efficient and flexible workflow and I wanted to share the setup process. This will walk through getting a simple LAMP stack up and running.

Xây dựng Drupal Slideshow  với Views Slideshow.Module

Xây dựng Drupal Slideshow với Views Slideshow.Module

Views Slideshow is the most popular module for creating slideshows in Drupal.

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

 

Diet con trung