- Khao báo biếnmảng một chiều:
b) Hãy viết lại chương trình trên, trong đó không dùng biến xâu p:
Var i,x,n:byte; a,p:string;
BEGIN
write('Nhap vao xau:');readln(a); x:=length(a) div 2;
n:=length(a); for i:=1 to x do
if a[i]<>a[length(a)-i+1] then BEGIN
write('Xau khong doi xung'); readln;
GV: Mỗi lần lấy một kí tự trong xâu (kí tự đầu tiên)
đem so sánh với các kí tự còn lại, nếu bằng thì cập nhật số lần xuất hiện của kí tựï đó. Sau đó xoá hết các kí tự bằng với kí tự đem so sánh. Cứ tiếp tục như vậy cho đến khi xâu đó là xâu rỗng.
GV: Sau khi gợi ý, gọi một học sinh lên bảng viết
chương trình.
GV: Nhận xét, sửa lỗi CT (nếu có) và cho điểm.
GV: Ý tưởng để giải bài toán này: Tìm vị trí xuất
hiện của xâu ‘anh’ trong xâu vừa nhập, nếu tìm thấy thì xoá và thay thế bằng xâu ‘em’.
GV: Làm thế nào để kiểm tra được trong xâu S
không còn xâu ‘anh’.
HS: Pos(‘anh’,S) trả về giá trị =0.
GV: Dùng thủ tục hay hàm nào để tìm vị trí mà xâu
‘anh’ xuất hiện trong S. HS: i:=pos(‘anh’,S);
write('xau doi xung'); readln; end. Bài 2: SGK Program bai2; var s:string; kt:char; i,j,n,slxh:byte; BEGIN
write('Nhap vao mot xau:'); readln(s); while length(s)<>0 do
Begin slxh:=0;
for j:=1 to length(s) do
if upcase(s[1]) = upcase(s[j]) then slxh:=slxh+1;
writeln('So lan xuat hien cua ', s[1],' la:',slxh); kt:=s[1]; i:=pos(s[1],s); while i<>0 do Begin delete(s,i,1); i:=pos(kt,s); end; end; readln; END. Bài 3: SGK program vd; var s:string; i:byte; BEGIN
WRITE('Nhap vao mot xau: '); readln(s); i:=pos('anh',s);
Tuần 24 tiết 36,37.
Ngày soạn: 06/02/2012. Ngày dạy: 07,08/02/2012.
Đề bài dạy: BAØI THỰC HAØNH 5(TH)
I. Mục đích yêu cầu:
- Sử dụng các phép xử lí xâu để viết các chương trình giải các bài toán liên quan đến xâu. - Rèn luyện kĩ năng viết chương trình trên máy.
II. Chuẩn bị của thầy và trò:
Thầy: SGK + Giáo án + Phòng máy.
Troø: SGK + xem trước Nội dung cần thực hành ở nhà.