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]