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

Tóm tắt bài

1.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.

1.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[i];
    • 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:

var i, x: byte;

a, p: string;

BEGIN

write[‘Nhap vao xau:’];

readln[a];

x:= length[a];

p:= ' ';

for i:=x downto 1 do

p:= p+a[i];

if a=p then

write[‘Xau la Palindrome’]

else

write[‘Xau khong la Palindrome’];

readln;

END.

  • Viết lại chương trình trên trong đó không dùng biến xâu p:

Uses crt;

Var s: string;

x,i: byte;

palin: Boolean;

Begin

Clrscr;

Write[' Nhap xau s='];

readln[s];

x:=length[s];

palin:=true;

For i:=1 to [x div 2] do

begin

If s[i] s[x-i+1] then palin:=false;

break;

end;

If palin then write['doi xung']

else write['khong doi xung'];

readln;

End.

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:

Program bai02;

Uses crt;

Var a: array['A'.. 'Z'] of byte;

s: string;

i: byte;

c: char;

Begin

clrscr;

write['nhap xau :'];

readln[s];

for c:='A' to 'Z' do a[c]:=0;

for i:=1 to length[s] do

begin

s[i]:=upcase[s[i]];

if [s[i]>='A'] and [s[i]

Chủ Đề