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.5 (156 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

 
VPN, Client

Mười mẹo bảo vệ mạng riêng ảo client

Mạng riêng ảo (VPN) ngày càng khẳng định được ưu thế lợi nhuận trong hiệu suất và giá cả của mình.

Việc ly dị cũng có thể được thực hiện qua Facebook

Việc ly dị cũng có thể được thực hiện qua Facebook

Cần phải làm thế nào nếu việc gửi đơn ly dị ra tòa gặp trở ngại do người chồng hoặc vợ không thể

Ngày 8 học HDFS là viết tắt của Hadoop Distributed File System

Ngày 8 học HDFS là viết tắt của Hadoop Distributed File System

HDFS là viết tắt của Hadoop Distributed File System và nó là 1 hệ thống lưu trữ chính được dùng bởi Hadoop. Nó cung cấp truy cập hiệu suất cao đến dữ liệu trên các cụm Hadoop

Tomdesgin.vn

 

Drupal Services