HS: Hai kí tự trong từng cặp đó giống nhau GV: Như vậy, nếu xét một xâu có độ dài x thì kí tự đầu xâu đối xứng với kí tự ...?. Nếu theo ý tưởng này chúng ta nên chọn vòng lặp nào tốt hơ[r]
(1)Tuần : 26 Ngày soạn / / 09
Chương IV KIỂU DỮ LIỆU CÓ CẤU TRÚC BÀI TẬP VÀ THỰC HÀNH 5
A- Mục tiêu học:
1. Kiến thức :
- Củng cố hiểu biết xâu
- Nắm số thuật toán xâu: tạo xâu mới, đếm số lần xuất kí tự đó, tìm kiếm thay từ từ khác,
2. Kĩ năng:
- Khai báo biến kiểu xâu - Nhập, xuất giá trị cho biến xâu - Duyệt qua tất kí tự xâu
- Sử dụng hàm thủ tục chuẩn trình bày SGK 3 Thái độ
- Tích cực, chủ động thực hành B- Phương pháp:
HS thực hành hướng dẫn GV
C- Chuẩn bị giáo viên học sinh:
Giáo viên: Giáo án, phòng máy thực hành 2 Học sinh: Sách giáo khoa, tập nhà D- Tiến trình lên lớp:
1 Ổn định lớp:
- Chào, lớp trưởng báo cáo sỉ số lớp 2 Kiểm tra cũ:
3 Bài mới:
3.1 Đặt vấn đề:
3.2 Triển khai mới:
Hoạt động giáo viên học sinh Nội dung
Hđ1 Tìm hiểu xâu palindrome? GV: Hãy cho biết xâu Palindrome? HS: Xâu Palindrome xâu đối xứng, đọc từ phải sang trái thu kết giống đọc từ trái sang phải
GV: Hãy cho ví dụ xâu Palindrome xâu Palindrome
GV gọi HS, HS cho ví dụ xâu
HS: Xâu Palindrome: ‘abcdcba’ , ‘12344321; Xâu không Palindrome: ‘abcabc’ , ‘2abba’ GV: Đọc chương trình SGK cho biết biến xâu p dùng để làm gì?
HS: biến xâu p dùng để chứa xâu đảo ngược xâu a
GV: Hãy gõ chương trình vào máy chạy thử để kiểm tra
HS: Gõ chương trình, chạy chương trình
Hđ2 Cải tiến chương trình.
GV: Đặt vấn đề:Hãy viết lại chương trình mà không sử dụng biến trung gian p
GV: Các em có nhận xét cặp kí tự vị
BÀI TẬP VÀ THỰC HÀNH 5 Bài 1.
Nhập vào xâu từ bàn phím Kiểm tra xâu có phải xâu Palindrome hay khơng?
- Chương trình Var i, x: byte;
a, p: string; begin
write(‘Nhap mot xau bat ki:’); readln(a);
x:=length(a); p:=’’;
for i:=x downto do p:=p+a[i];
if a=p then
write(‘Xau la Palindrome’) else
write(‘Xau khong la Palindrome’); readln
end. TIẾT
(2)trí đối xứng xâu Polindrome? HS: Hai kí tự cặp giống GV: Như vậy, xét xâu có độ dài x kí tự đầu xâu đối xứng với kí tự ? Kí tự thứ hai xâu đối xứng với kí tự ?
HS: Cuối xâu (kí tự thứ x) Kề trước kí tự cuối xâu (kí tự thứ x-1)
GV: Vậy kí tự thứ i đối xứng với kí tự thứ ?
HS: x– i +
GV: Cần so sánh nhiều cặp kí tự xâu để biết xâu có xâu Palindrome hay khơng?
HS: So sánh tối đa x div cặp
GV: Ta dùng cấu trúc để thực việc so sánh này?
HS: Cấu trúc lặp: vòng lặp For While GV: Chỉ cần phát cặp kí tự vị trí đối xứng khác ta kết luận xâu khơng phải xâu Palindrome Nếu theo ý tưởng nên chọn vòng lặp tốt HS: Vòng lặp While
GV: Vòng lặp kết thúc việc thực nào? HS: Khi so sánh hết cặp có cặp kí tự vị trí đối xứng khác
GV: Hãy viết chương trình hồn chỉnh Theo dõi, hướng dẫn HS hồn thành chương trình
- Chương trình cải tiến: khơng dùng biến p Var i, x: byte;
a: string; begin
write(‘Nhap mot xau bat ki:’); readln(a);
x:=length(a); i:=1;
while (i <= (x div 2)) and
(a[i]=a[x-i+1]) do i:=i+1;
if i <= (x div 2) then
write(‘Xau la Palindrome’) else
write(‘Xau khong la Palindrome’); readln
end.
IV- Củng cố :(2 phút)
- Khai báo xâu:
Var <tên biến> : string[độ dài tối đa xâu];
- Tham chiếu đến phần tử mảng: tên_biến[chỉ số]
- Nhập biến xâu: readln(tên biến xâu);
- Xuất biến xâu: write(tên biến xâu);
- Các thao tác xử lí xâu: phép ghép xâu, phép so sánh, hàm thủ tục chuẩn
- Một số thuật toán đơn giản liên quan đến xâu ký tự: Kiểm tra xâu đối xứng, tìm tần suất xuất ký tự có xâu
V- Dặn dò : ( phút)
Làm hai tập cịn lại cho tiết thực hành hơm sau VI Rút kinh nghiệm: