Hướng dẫn pascal tìm x

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;

2019-12-06T03:31:15+11:00 2019-12-06T03:31:15+11:00 Viết chương trình giải bài toán sau:
Bài 1: Tính x^y [ Với x, y là số thực].
Bài 2: Tính x^n [Với n là số nguyên không âm].
Lập trình Pascal, tính x mũ n, tính x mũ y //baikiemtra.com/uploads/news/2019_11/bai-tap-lap-trinh-pascal.jpg

Bài 1: Tính xy [ Với x, y là số thực].

Program X_LUYTHUA_Y;
Uses crt;
Var x,y,z:real;
Begin
Writeln[‘TINH X LUY THUA Y:’];
Writeln['----------------------------------'];
Write['Nhap x = ']; readln[x];
Write['nhap y = ']; readln[y];
If x>=0 then
   Begin
         z:=exp[y*ln[x]];
         Writeln['x ^ y = ',z:4:2];
   End
   Else
   Writeln['Khong tinh duoc do x la so am'];
Readln;
End.

Bài 2: Tính xn [Với n là số nguyên không âm].

Program TINH_X_LUY_THUA_N;
Uses crt;
Var i,n,x:integer;
lt:real;
Begin
   Writeln[' TINH X LUY THUA Y:'];
   Writeln['----------------------------------'];
   Write['Nhap x =']; readln[x];
   Write['Nhap n =']; readln[n];
   lt:=1;
   For i:=1 to n do
     lt:=lt*x;
    Writeln[x, '^',n,' = ',lt:4:2];
    Readln;
End.

Bài Viết Liên Quan

Chủ Đề