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 https://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.