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

- 0 / 0
(Tài liệu chưa được thẩm định)
Nguồn:
Người gửi: Nguyễn Hoàng Hà Linh
Ngày gửi: 11h:17' 22-02-2012
Dung lượng: 284.9 KB
Số lượt tải: 147
Nguồn:
Người gửi: Nguyễn Hoàng Hà Linh
Ngày gửi: 11h:17' 22-02-2012
Dung lượng: 284.9 KB
Số lượt tải: 147
Số lượt thích:
0 người
Tiết 33:
Bài tập và thực hành 5
- Input: Nhập vào xâu.
- Output: Xuất ra kết quả có phải là xâu đối xứng
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 ?
Xác định Input,Output?
1 2 3 4 5 6 7 8 9 10 11
Ví dụ:
a := ‘I was saw I’
I
I
11 10 9 8 7 6 5 4 3 2 1
I
I
Đọ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âu đối xứng có tính chất gì?
Bước 1: Nhập Xâu a
Bước 2: Tính chiều dài xâu a
Bước 3: Tạo xâu p (xâu rỗng)
Bước 4: Với i = length(a) 1 thì p:=p+a[i].
Bước 5: Nếu a=p thì a là xâu đối xứng, ngược lại thì không phải là xâu đối xứng
THUẬT TOÁN
var i, x: byte;
a, p: string;
BEGIN
write(‘Nhap 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.
1 2 3 4 5 6 7 8 9 10 11
b) Hãy viết lại chương trình trên:
Trong đó không dùng biến xâu p
I
I
Bước 1: Giả sử xâu này là xâu đối xứng (palindrome).
Bước 2: So sánh các kí tự ở vị trí 111, 210,… nếu có kí tự khác nhau thì không phải là xâu đối xứng.
Chúng ta sẽ có x div 2 lần xét
Sẽ có bao nhiêu lần xét?
Uses crt;
Var a: string;
x,i: byte;
palin: Boolean;
Begin
Clrscr;
Write(` Nhap xau a=`);
readln(a);
x:=length(a);
palin:=true;
For i:=1 to (x div 2) do
If a[i]<> a[x-i+1] then palin:=false;
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)
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.
Bài tập và thực hành 5
- Input: Nhập vào xâu.
- Output: Xuất ra kết quả có phải là xâu đối xứng
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 ?
Xác định Input,Output?
1 2 3 4 5 6 7 8 9 10 11
Ví dụ:
a := ‘I was saw I’
I
I
11 10 9 8 7 6 5 4 3 2 1
I
I
Đọ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âu đối xứng có tính chất gì?
Bước 1: Nhập Xâu a
Bước 2: Tính chiều dài xâu a
Bước 3: Tạo xâu p (xâu rỗng)
Bước 4: Với i = length(a) 1 thì p:=p+a[i].
Bước 5: Nếu a=p thì a là xâu đối xứng, ngược lại thì không phải là xâu đối xứng
THUẬT TOÁN
var i, x: byte;
a, p: string;
BEGIN
write(‘Nhap 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.
1 2 3 4 5 6 7 8 9 10 11
b) Hãy viết lại chương trình trên:
Trong đó không dùng biến xâu p
I
I
Bước 1: Giả sử xâu này là xâu đối xứng (palindrome).
Bước 2: So sánh các kí tự ở vị trí 111, 210,… nếu có kí tự khác nhau thì không phải là xâu đối xứng.
Chúng ta sẽ có x div 2 lần xét
Sẽ có bao nhiêu lần xét?
Uses crt;
Var a: string;
x,i: byte;
palin: Boolean;
Begin
Clrscr;
Write(` Nhap xau a=`);
readln(a);
x:=length(a);
palin:=true;
For i:=1 to (x div 2) do
If a[i]<> a[x-i+1] then palin:=false;
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)
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.
 
↓ CHÚ Ý: Bài giảng này được nén lại dưới dạng ZIP và có thể chứa nhiều file. Hệ thống chỉ hiển thị 1 file trong số đó, đề nghị các thầy cô KIỂM TRA KỸ TRƯỚC KHI NHẬN XÉT ↓







Các ý kiến mới nhất