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

 
Khởi động Google Code từ Dec 1st trong đó có Drupal, năm 2014

Khởi động Google Code từ Dec 1st trong đó có Drupal, năm 2014

The Code-In contest will end January 19th 2015 and Drupal has an awesome chance to connect

PHP – Ruby – Python

Sự khác nhau giữa các ngôn ngữ PHP – Ruby – Python

Cũng giống như Tiếng Việt, Tiếng Anh, Tiếng Nhật… trong lập trình cũng có rất nhiều ngôn ngữ. Mỗi ngôn ngữ đều có những ưu điểm, khuyết điểm, và các thế mạnh cũng như môi trường, mục đích sử dụng khác nhau

Hướng dẫn Solr Integrations với Drupal Sarnia Module

Hướng dẫn Solr Integrations với Drupal Sarnia Module

Every day, companies and organizations with lots of content are weighing the pros and cons of adopting Drupal.

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

 

Diet con trung