Tin học 11 Bài tập và thực hành 5

  1. Tác giả: LTTK CTV
    Đánh giá: ✪ ✪ ✪ ✪ ✪

    Tóm tắt lý thuyết
    1. Mục đích, yêu cầu
    Làm quen với việc tìm kiếm, thay thế và biến đổi xâu.

    2. Nội dung
    Bài 1: Nhập từ bàn phím một xâu. Kiểm tra xâu đó có phải là xâu đối xứng hay không?
    Gợi ý làm bài:

    Xâu đối xứng có tính chất: Đọc nó từ trái sang phải cũng thu được kết quả giống như đọc từ phải sang trái (còn được gọi là xâu Palindrome).
    • Xác định bài toán:
      • Input: Nhập vào xâu.
      • Output: Xuất ra kết quả có phải là xâu đối xứng?
    • Mô tả thuật toán:
      • Bước 1: Nhập Xâu S;
      • Bước 2: Tính chiều dài xâu S;
      • Bước 3: Tạo xâu P (xâu rỗng);
      • Bước 4: Với I = length(S) à 1 thì P:=P+S;
        [*]Bước 5: Nếu S=P thì S là xâu đối xứng, ngược lại thì không phải là xâu đối xứng.

      [*]Cài đặt chương trình:

    PHP:
    1. var  i, x: byte;
    2.       a, p: string;
    3. BEGIN
    4.   write(‘Nhap vao xau:);
    5.   readln(a);
    6.   x:= length(a);
    7.   p:= ' ';
    8.   for i:=x downto 1 do
    9.   p:= p+a[i];
    10.   if a=p then
    11.   write(‘Xau la  Palindrome’)
    12.   else
    13.   write(‘Xau  khong la  Palindrome’);
    14.   readln;
    • Viết lại chương trình trên trong đó không dùng biến xâu p:
    PHP:
    1. Uses crt;
    2. Var s: string;
    3.       x,i: byte;
    4.      palin: Boolean;
    5. Begin
    6.      Clrscr;
    7.      Write(' Nhap xau s=');
    8.      readln(s);
    9.      x:=length(s);
    10.      palin:=true;
    11.     For i:=1 to (x div 2) do
    12.     begin
    13.   If s[i]<> s[x-i+1] then palin:=false;
    14.   break;
    15.    end;
    16.   If palin then write('doi xung')
    17. else write('khong doi xung');
    18.   readln;

    Bài 2: Viết chương trình nhập từ bàn phím một xâu kí tự S và thông báo ra màn hình số lần xuất hiện của mỗi chữ cái tiếng Anh trong S (không phân biệt chữ hoa hay chữ thường ).
    Gợi ý làm bài:
    • Xác định bài toán:
      • Input: Nhập vào xâu
      • Output: Xuất ra số lần xuất hiện của các chữ cái tiếng Anh trong xâu vừa nhập.
    • Mô tả thuật toán:
      • Bước 1: Nhập vào xâu S.
      • Bước 2: Tạo mảng A lưu trữ số lần xuất hiện của chữ cái tiếng Anh.
      • Bước 3: Khởi tạo cho từng phần tử mảng.
      • Bước 4: Nếu trong xâu S chữ cái A \(\rightarrow\) Z thì tăng giá trị của phần tử trong mảng.
      • Bước 5: Xuất ra mảng vừa tạo.
    • Cài đặt chương trình:
    PHP:
    1. Program bai02;
    2. Uses crt;
    3. Var  a: array['A'.. 'Z'] of byte;
    4.       s: string;
    5.       i: byte;
    6.       c: char;
    7. Begin
    8.       clrscr;
    9.         write('nhap xau :');
    10.         readln(s);
    11.       for c:='A' to 'Z' do a[c]:=0;
    12.       for i:=1 to length(s) do
    13.   begin
    14.   s[i]:=upcase(s[i]);
    15.           if (s[i]>='A') and (s[i]<='Z') then
    16.   a[s[i]]:=a[s[i]]+1;
    17.   end;
    18.       for c:='A' to 'Z' do
    19.        if a[c]<>0 then
    20.    writeln( 'So lan xuat hien', c,': ',a[c]);
    21. readln;

    Bài 3: Nhập vào từ bàn phím một xâu. Thay thế tất cả các cụm kí tự 'anh' bằng cụm kí tự 'em'.
    Gợi ý làm bài:
    • Xác định bài toán:
      • Input: Nhập vào một xâu.
      • Output: Xuất ra xâu kết quả đã thay thế cụm từ ‘anh’ bằng cụm từ 'em'.
    • Mô tả thuật toán:
      • Bước 1: Tìm vị trí bắt đầu của xâu 'anh';
      • Bước 2: Xóa xâu 'anh' vừa tìm thấy;
      • Bước 3: Chèn xâu 'em' vào xâu S tại vị trí trước đây xuất hiện xâu 'anh' (lặp lại các bước trên cho đến khi không còn xâu 'anh');
    • Bước 4: In ra xâu S.
    • Cài đặt chương trình:
    PHP:
    1. Uses crt;
    2. Var s: string;
    3.        i: byte;
    4. Begin
    5.      Clrscr;
    6.      Write('Nhap xau S:'); Readln(s);
    7.      i:=Pos('anh',s);
    8.      While i<> 0 do
    9.        Begin
    10.           Delete(s,i,3);
    11.           Insert('em',s,i);
    12.           I:=Pos('anh',s);
    13.        End;
    14.      writeln(S);
    15.      readln;