Giáo án Tin Học 11 đầy đủ

TIẾT 30: KIỂU XÂU

I. MỤC ĐÍCH, YÊU CẦU

- Biết xâu là một dãy kí tự (có thể coi xâu là mảng một chiều);

- Biết cách khai báo xâu, truy cập phần tử của xâu;

- Biết một số hàm và thủ tục thông dụng về xâu.

II. PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC

1. Phương pháp:

- Giải quyết vấn đề

- Thuyết trình

2.Phương tiện:

- Bảng + SGK

III. NỘI DUNG

1. Ổn định lớp: Kiểm tra sĩ số, nề nếp.

2. Nội dung:

 

doc77 trang | Chia sẻ: dung89st | Lượt xem: 1659 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Giáo án Tin Học 11 đầy đủ, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Ngày soạn: 4/02/2015
Dạy các lớp: 11A11
TIẾT 27: BÀI TẬP
I. MỤC ĐÍCH, YÊU CẦU
Cũng cố kiến thức về kiểu mảng;
Rèn luyện kỹ năng sử dụng kiểu mảng để giải quyết một số bài toán đơn giản.
II. PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC
1. Phương pháp:
Vấn đáp
Giải quyết vấn đề
2.Phương tiện:
Bảng + SGK
III. NỘI DUNG
1. Ổn định lớp: Kiểm tra sĩ số, nề nếp.
2. Nội dung: 
Hoạt động của GV và HS
Nội dung
GV: Yêu cầu HS nghiên cứu câu 6b SGK Trang 79 , xác định bài toán và thực hiện viết chương trình.
HS: Thực hiện theo yêu cầu
GV: Hướng dẫn , số nguyên tố là số như thế nào?
HS: là số chỉ có hai ước số là 1 và chính nó
GV: Yêu cầu HS xác định bài toán
HS: Xác định bài toán
GV: Hướng dẫn
 HS: Theo dõi, viết chương trình.
Bài 1: câu 6b (SGK T79)
Program bai1;
Var A: array[1..100] of integer;
 NT, I, u : integer;
Begin 
 Write(‘Nhap vao N’); readln(N);
 For i:=1 to N do
 begin
 Write(‘phan tu thu’,i); readln(A[i]);
 End;
 NT:=0;
 For i:=1 to N -1 do
 If (A[i] > 1) then 
 Begin
 U:=2;
 While ((u0 ) do u:=u+1;
 If u>sqrtA[i] then NT:=NT+1;
 Else writeln(‘so luong so nguyen to la:’,NT);
 Readln
End.
Bài 2: câu 7 (SGK T79)
IV. CŨNG CỐ:
- Nhắc một số lỗi học sinh thường gặp và yêu cầu học sinh rút kinh nghiệm trong các bài tập sau.
- Yêu cầu học sinh về nhà làm các bài tập trong sách bài tập
Ngày soạn: 9/02/2015
Dạy các lớp: 11A11
TIẾT 28: BÀI TẬP THỰC HÀNH 4 (T1)
I. MỤC ĐÍCH, YÊU CẦU
Cũng cố kiến thức về kiểu mảng 2 chiều;
Làm quen với dữ liệu có cấu trúc và bài toán sắp xếp.;
II. PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC
1. Phương pháp:
Giải quyết vấn đề
Thực hành
2.Phương tiện:
Bảng + SGK + Phòng thực hành
III. NỘI DUNG
1. Ổn định lớp: Kiểm tra sĩ số, nề nếp.
2. Nội dung: 
* Hoạt động 1: Tìm hiểu và chạy thử chương trình 1a (SGK T65)
Hoạt động của GV và HS
Nội dung
GV: yêu cầu tìm hiểu và chạy thử chương trình.
HS: Theo dõi, tìm hiểu, mở chương trình trong máy và chạy thử
GV: Gợi ý để HS nhớ lai thuật toán sắp xếp tăng dần đã học ở lớp 10.
HS: Theo dõi
GV: Hỏi: Biến i, j trong chương trình có vai trò gì?
Mỗi vòng lặp for ứng với mỗi lần duyệt
HS: dùng làm chỉ số
GV: Hỏi: đoạn lệnh nào thực hiện việc tráo đổi? tráo đổi bằng cách nào?
HS: Trả lời: tráo đổi bằng cách dùng biến trung gian
.
 Bµi to¸n 1: ViÕt ch­¬ng tr×nh s¾p xÕp c¸c phÇn tö cña m¶ng theo thø tù kh«ng gi¶m.
 Uses CRT;
 Const nmax=250;
 type arrint=array[1..nmax] of integer;
 Var n, i, j, y:integer;
 a:arrint;
 Begin
 clrscr;
 Randomize;
 Write(‘nhap n=’);
 Readln(n);
 For i:=1 to n do a[i]:=random(300) – random (300);
 For i:=1 to n do write(a[i]:5);
 Writeln;
 For i:=n dowto 2 do
 For i:=1 to i – 1 do
 If a[i] >a[i+1] then
 Begin
 t:=a[i];
 a[i]:=a[i+1]; 
 a[i+1]:=t;
 End;
 Writeln(‘day so sau khi sap xep’);
 For i:=1 to n do write(a[i]:7);
 Writeln; readln;End.
* Hoạt động 2: Thực hiện câu 1b (SGK T66)
Hoạt động của GV và HS
Nội dung
GV: Yêu cầu HS thực hiện câu 1b (SGK T66)
HS: Nghiên cứu yêu cầu và viết chương trình.
GV: Khai báo biến dem như thế nào?
HS: đặt ở phần khai báo biến: var dem: integer;
GV: Vì dem để đếm số lần tráo đổi nên khi chưa thực hiện tráo đổi ta gán giá trị cho biến đếm bằng 0, theo em nên để câu lệnh này ở đâu?
HS: đặt sau câu lệnh writeln; và trước câu lệnh duyệt để tráo đổi (dem:=0;).
GV: Khai nào thực hiện tráo đổi thì ta tăng dem lên một đẻ đếm, vậy câu lệnh tăng dem này đặt ở đâu?
HS: Đặt ngay sau lệnh tráo đổi A[i+1]:=t; dem:=dem+1;
1b) Khai báo thêm biến dem và bổ sung vào chương trình những câu lệnh cần thiết để biến dem tính số ần thực hiển tráo đổi trong thuật toán. Đưa kết quả ra màn hình.
- dem:=0;
- dem:=dem+1;
IV. CŨNG CỐ:
	Thuật toán sắp xếp đơn giản và chương trình thực hiện
:
Ngày soạn: 23/02/2015
Dạy các lớp: 11A11
TIẾT 29: BÀI TẬP THỰC HÀNH 4 (T2)
I. MỤC ĐÍCH, YÊU CẦU
Cũng cố kiến thức về kiểu mảng 2 chiều;
Biết nhận xét, phân tích, đề xuất thuật toán giải bài toán sao cho chương trình chạy nhanh hơn;
II. PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC
1. Phương pháp:
Giải quyết vấn đề
Thực hành
2.Phương tiện:
Bảng + SGK + Phòng thực hành
III. NỘI DUNG
1. Ổn định lớp: Kiểm tra sĩ số, nề nếp.
2. Nội dung: 
Tìm hiểu câu 2 (SGK T66) và đề xuất cách giải bài toán nhanh hơn
Hoạt động của GV và HS
Nội dung
GV: Yêu cầu HS xác định bào toán
HS: Xác định bài toán
GV: yêu cầu HS nghiên cứu chương trình sau đó cho biết trình tự thực hiện của chương trình?
HS: Nghiên cứu, trả lời
GV: Trong chương trình phải thực hiện bao nhiêu phép cộng?
HS: n(n+1)/2 phép cộng
GV: Hỏi: Có cách nào để số phép cộng nhỏ hơn hay không?
HS: Có: ta sử dụng kết quả đã tính ở bước i-1 để tính bước i
GV: Vậy phải sửa đổi chương tình như thế nào?
HS: Thay đoạn lệnh tạo B là:
 For j:=1 to i do B[i]:=B[i]+A[j];
ch ỉ thực hiện n-1 phép cộng
HS: Chạy chương trình
GV: Yêu cầu HS chạy chương trình và quan sát kết quả
Cho màng A gồm n phần tử. Hãy viết chương trình tạo mảng B[1..n], trong B[i] là tổng của i phần tử đầu tiên của A.
Const nmax=100;
 Type myarray=array[1..nmax] of integer;
 Var n, i, j:integer;
 a,b:arrint;
 Begin
 Randomize;
 Write(‘nhap n=’);
 Readln(n);
 For i:=1 to n do a[i]:=random(300) – random(300);
 For i:=1 to n do write(a[i]:5);
 Writeln;
 For i:=1 to n do
 Begin
 B[i]:=0;
 For j:=1 to i do B[i]:=B[i]+A[j];
 End;
 For i:=1 to n do write(B[i]:5);
 Readln;
End.
IV. CŨNG CỐ: Cùng một bài toán nhưng có thể có những chương trình cài đặt khác nhau, người lập trình luôn phải có ý thức chọn cách cài đặt sao cho số phép toán máy tính thực hiện càng ít càng tốt.:
Ngày soạn: 24/02/2015
Dạy các lớp: 11A11
TIẾT 30: KIỂU XÂU 
I. MỤC ĐÍCH, YÊU CẦU
Biết xâu là một dãy kí tự (có thể coi xâu là mảng một chiều);
Biết cách khai báo xâu, truy cập phần tử của xâu;
Biết một số hàm và thủ tục thông dụng về xâu.
II. PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC
1. Phương pháp:
Giải quyết vấn đề
Thuyết trình
2.Phương tiện:
Bảng + SGK 
III. NỘI DUNG
1. Ổn định lớp: Kiểm tra sĩ số, nề nếp.
2. Nội dung: 
* Hoạt động 1: Tìm hiểu về xâu và cách sử dụng 
Hoạt động của GV và HS
Nội dung
GV: Dữ liệu trong các bài toán ngoài kiểu số ra còn có kiểu phi số - dạng kí tự. Ví dụ bài toán nhập vào danh sách học sinh của lớp 11A, thì họ tên của các em là dạng các kí tự. Để biểu diễn dãy các kí tự người ta dùng kiểu xâu.
HS:Theo dõi, lắng nghe
GV:Giới thiệu về xâu
HS: Nghe, ghi nhớ kiến thức
GV: Như vậy, có thể xem xâu là mảng một chiều mà mỗi phần tử là một kí tự.
- Xâu là dãy các kí tự trong bộ mã ASCII, mỗi kí tự được gọi là một phần tử của xâu. Số lượng các kí tự trong xâu được gọi là độ dài của xâu. Xâu có độ dài bằng 0 gọi là xâu rỗng (Kí hiệu ‘’).
- Ví dụ: ‘Nguyen Le Huyen’
	‘ ‘àđây là xâu chỉ chứa một kí tự trống.
- Cách tham chiếu : 
Ví dụ : Biến Hoten lưu hằng xâu ‘ Nguyen Le Huyen’ thì Hoten[6] cho ta kí tự ‘n’.
Hoạt động 2 : Tìm hiểu cách khai báo kiểu dữ liệu xâu
Hoạt động của GV và HS
Nội dung
GV :Giới thiệu khai báo biến xâu
HS :Theo dõi, ghi nhớ kiến thức
GV : Yêu cầu HS lấy ví dụ
HS : Lấy ví dụ
1. Khai báo
- Cú pháp :
Var  : string[độ dài lớn nhất của xâu] ;
- Ví dụ :
Var Hoten :string[26];
- Nếu trong khai báo không chỉ ra độ dài lớn nhất thì ngầm định là 255 kí tự. Ví dụ: var Hoten:string; àbiến Hoten lưu trữ xâu có độ dài lớn nhất là 255 kí tự
Hoạt động 3 : Tìm hiểu các thao tác xử lý xâu
Hoạt động của GV và HS
Nội dung
GV : Giới thiệu các thao tác xử lý xâu rồi yêu cầu HS lấy ví dụ
GV : Lưu ý HS phép so sánh có thứ tự ưu tiên thấp hơn so với phép ghép xâu và được thực hiện theo thứ tự từ điển
HS : Theo dõi, ghi nhớ kiến thức
GV : Tiếp tục giới thiệu các hàm và thủ tục chuẩn thường dùng đối với kiểu xâu
HS : Theo dõi, ghi bài
GV : yêu cầu HS thực hiện được ví dụ GV đưa ra và lấy được ví dụ khác
HS :Theo dõi, cho ví dụ
2. Các thao tác xử lý xâu
a) Phép ghép xâu : sử dụng dấu cộng (+)
- ví dụ : ‘Quynh’+’Luu’ à QuynhLuu
‘Quynh ‘+’Luu’à Quynh Luu
b) Phép so sánh: =, , , =, thứ tự ưu tiên thực hiện thấp hơn phép ghép xâu, và tuân theo các quy tắc sau :
- xâu A > xâu B nếu như kí tự đầu tiên khác nhau giữa chúng tính từ trái sang trong xâu A có mã ASCII lớn hơn. Ví dụ : ‘A’<’B’.
- Nếu xâu A và xâu B có độ dài khác nhau và A là đoạn đầu của B thì A<B. Ví dụ : ‘may tinh’ < ‘may tinh của toi’.
- Hai xâu được coi là bằng nhau nếu như chúng giống nhau hoàn toàn. Ví dụ : ‘tin’ = ‘tin’.
c) Thủ tục delete(st,vt,n) : xoá n kí tự của xâu st bắt đầu từ vị trí vt
Ví dụ : st=’tin hoc’
àdelete(st,4,4)= ‘tin’
d) Thủ tục Insert(s1,s2,vt): chèn xâu s1 vào xâu s2 bắt đầu từ vị trí vt
Ví dụ: s1=’ toi do’, s2=’lop’
àinsert(s1,s2,4)=’lop toi do’
e) Hàm copy(s,vt,n): tạo xâu gồm n kí tự liên tiếp bắt đầu từ vị trí vt của xâu s
Ví dụ: s=’truong toi rat dep’à copy(s,1,10)=’truong toi)
f) Hàm length(s): cho độ dài xâu s.
Ví dụ: s=’truong toi rat dep’à length(s)=18.
g) Hàm pos(s1,s2): cho vị trí xuất hiện đầu tiên của xâu s1 trong xâu s2
Ví dụ: s1=’hoc’, s2=’tin hoc 11’ à pos(s1,s2)= 10
h) Hàm upcase(ch): chữ cái in hoa ứng với ch
Ví dụ: ch=’a’àupcase(ch)=’A’
IV. CŨNG CỐ:
Cách khai báo biến xâu, hằng xâu
Một số thao tác xử lý đối với dữ liệu kiểu xâu
Ngày soạn: 1/03/2015
Dạy các lớp: 11A7,A11	
TIẾT 31: KIỂU XÂU (Tiếp)
I. MỤC ĐÍCH, YÊU CẦU
HS cài đặt được một số chương trình đơn giản có sử dụng xâu.
II. PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC
1. Phương pháp:
Giải quyết vấn đề
Hỏi đáp
2.Phương tiện:
Bảng + SGK 
III. NỘI DUNG
1. Ổn định lớp: Kiểm tra sĩ số, nề nếp.
2. Bài cũ: 
	1) Trình bày cách khai báo dữ liệu kiểu xâu và cho ví dụ?
	2) Viết chương trình thông báo độ dài của xâu ‘em yeu truong em!’
3. Bài mới:
* Hoạt động 1: Tìm hiểu ví dụ 1 SGK 
Hoạt động của GV và HS
Nội dung
GV: Yêu cầu HS xác định bài toán
HS: Xác định bài toán
GV: Hỏi: như vậy với bài toán này ta cần khai báo bao nhiêu biến? và biến thuộc kiểu dữ liệu nào?
HS: cần khai báo hai biến xâu để lưu trữ họ tên của hai người
GV: Hỏi: làm thế nào để biết xâu nào dài hơn? 
HS: ta so sánh độ dài hai xâu bằng cách dùng hàm length(s)
GV:yêu cầu HS viết chương trình
HS: thực hiện viết chương trình
3. Một số ví dụ
Ví dụ 1: Viết chương trình nhập họ tên của hai người vào hai biến xâu và đưa ra màn hình xâu dài hơn, nếu bằng nhau thì đưa ra xâu nhập sau
Var a, b: string;
Begin 
 Write(‘nhap ho ten thu nhat:’);
 Readln(a);
 Write(‘nhap ho ten thu hai:’);
 Readln(b);
 If length(a)> length(b) then 
 Write(a)
 Else write(b);
 Readln
End.
* Hoạt động 2: Tìm hiểu ví dụ 2 SGK
Hoạt động của GV và HS
Nội dung
GV: Yêu cầu HS xác đinh bài toán
HS: Xác định bài toán
GV: Hỏi: Làm thế nào để biết được kí tự cuối cùng của xâu thứ hai?
HS: ta phải xác định được độ dài của xâu b, giả sử là x thì kí tự cuối cùng sẽ là b[x]
GV: Hỏi: Như vậy chúng ta cần so sánh gì?
HS: so sánh a[1] và b[x], nếu bằng nhau thì thông báo là trùng nhau, ngược lại thì thông báo là khác nhau.
GV: yêu cầu HS viết chương trình
HS: thực hiện
Ví dụ 2: Viết chương trình nhập hai xâu từ bàn phím và kiểm tra kí tự đầu tiên của xâu thứ nhất có trùng với kí tự cuối cùng của xâu thứ hai không.
Var x: byte;
 a, b: string;
begin
 write(‘nhap xau th nhat’);
 readln(a);
 write(‘nhap xau thu hai’);
 readln(b);
 x:=length(b);
 if a[1] = b[x] then 
write(‘trung nhau’)
 else write)’khac nhau’);
 readln
end.
* Hoạt động 3: Tìm hiểu ví dụ 4
GV: Yêu cầu HS xác định bài toán
HS: Xác định bài toán
GV: Hỏi: làm thế nào để tạo một xâu mới bằng cách loại bỏ các dấu cách từ xâu cũ?
HS: ban đầu khởi tạo xâu mới rỗng, sau đó thực hiện kiểm tra lần lượt các kí tự trong xâu cũ , nếu gặp dấu cách thì ta bỏ qua, ngược lại ta thêm kí tự đó vào xâu mới
GV: yêu cầu HS viết chương trình
HS: thực hiện
Ví dụ 4: Chương trình nhập một xâu vào từ bàn phím và đưa ra màn hình xâu thu được từ nó bởi việc loại bỏ các dấu cách nếu có.
IV. CŨNG CỐ:
 GV hướng dẫn các ví dụ 3, 5, yêu cầu HS về nhà thực hiện
Ngày soạn: 4/03/2015
Dạy các lớp: 11A11
TIẾT 32: BÀI TẬP
I. MỤC ĐÍCH, YÊU CẦU
Cũng cố kiến thức về kiểu xâu;
Rèn luyện kỹ năng sử dụng kiểu xâu để giải quyết một số bài toán đơn giản.
II. PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC
1. Phương pháp:
Vấn đáp
Giải quyết vấn đề 
2.Phương tiện:
Bảng + SGK
III. NỘI DUNG
1. Ổn định lớp: Kiểm tra sĩ số, nề nếp.
2. Nội dung: 
Hoạt động của GV và HS
Nội dung
 GV: Yêu cầu HS nghiên cứu câu 10 SGK Trang 80 , xác định bài toán và thực hiện viết chương trình.
HS: Thực hiện theo yêu cầu
GV: Hướng dẫn, ta sẽ duyệt lần lượt từng kí tự trong xâu s, nếu kí tự nào là chữ số thì đếm. GV: Hỏi: dùng cấu trúc nào để duyệt hết tất cả các kí tự của xâu s?
 HS: For i:=1 to length(s) do
 If (‘0’=’9’) then 
 dem:=dem+1;
GV: yêu cầu HS xác định bài toán
HS: xác định bài toán
GV:Hỏi: làm thế nào để chuyển một kí tự là chữ cái thường sang chữ in hoa?
HS: dùng hàm Upcase(ch).
HS: viết chương trình
GV: Yêu cầu HS xác định bài toán
HS: Xác định bài toán
GV: Hướng dẫn
HS: Theo dõi, viết chương trình.
Bài 1: câu 10 (SGK T80)
Program bai1;
Var s: string[100];
 i, dem: byte;
Begin 
 Writeln(‘Nhap vao xau ki tu khong qua 100’); readln(s);
 dem:=0;
 For i:=1 to length(s) do
 If (‘0’=’9’) then 
 dem:=dem+1;
 writeln(‘trong xau s co’,dem,’chu so’);
 Readln
End.
Bài 2: Viết chương trình nhập vào một xâu ký tự từ bàn phím. Đổi xâu ký tự đó sang chữ in hoa rồi in kết quả ra màn hình.
	Ví dụ :Xâu abCdAbcD sẽ cho ra xâuABCDABCD.
Var s: string;
 i: byte;
Begin 
 Writeln(‘Nhap vao mot xau:’); readln(s);
 for i:=1 to length(s) do
 s [i ]:= Upcase(s [i ]);
 writeln(‘xau sau khi chuyen sang chu hoa’, s );
 readln
end.
Bài 3: Viết chương trình nhập vào xâu kí tự từ bàn phím s1, tạo xâu s2 từ xâu s1 sau khi đã loại bỏ các chữ số, đưa kết quả ra màn hình.
Program B3;
Uses crt;
Var s1, s2: string;
 i: byte;
Begin 
 Clrscr;
 Write(‘nhap vao xau s1: ‘);
 Readln(s1);
 s2:=’’;
 For i:=1 to length(s1) do 
 If (s1[i] =’9’) then
 s2:=s2+s1[i];
 Writeln(‘xau s2 la: ’,s2);
 readln;
End. 
IV. CŨNG CỐ: ra bài tập về nhà, hướng dẫn qua
- Bài 1: Viết chương trình nhập vào một xâu ký tự từ bàn phím. Đổi xâu ký tự đó sang chữ thường rồi in kết quả ra màn hình.
	Ví dụ :Xâu abCdAbcD sẽ cho ra xâu abcdabcd.
- Bài 2: Viết chương trình nhập một xâu từ bàn phím. In ra xâu đó sau khi xóa hết các ký tự trắng thừa trong xâu. (Ký tự trắng thừa là các ký tự trắng đầu xâu, cuối xâu và nếu ở giữa xâu có 2 ký tự trắng liên tiếp nhau thì có 1 ký tự trắng thừa).
- Yêu cầu HS chuẩn bị trước các bài 1b, 2 và 3 của bài tập và thực hành 5.
Ngày soạn: 8/03/2015
Dạy các lớp: 11A11
TIẾT 33: BÀI TẬP THỰC HÀNH 5 
I. MỤC ĐÍCH, YÊU CẦU
Cũng cố cho HS những hiểu biết về kiểu xâu;
Tổ chức những hoạt động trong phòng máy để HS có được các kĩ năng cơ bản làm việc với xâu trong lập trình;
Cung cấp một số thuật toán đơn giản và cơ bản thường gặp trong xử lý văn bản;
Góp phần hình thành và rèn luyện tư duy lập trình, tác phong của người lập trình.
II. PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC
1. Phương pháp:
Giải quyết vấn đề
Thực hành
2.Phương tiện:
Bảng + SGK + Phòng thực hành
III. NỘI DUNG
1. Ổn định lớp: Kiểm tra sĩ số, nề nếp.
2. Nội dung: 
* Hoạt động 1: Tìm hiểu chương trình được cài đặt sẵn (bài 1a sgk)
Hoạt động của GV và HS
Nội dung
GV: Gọi một HS cho biết nội dung đề bài
HS: đứng tại chỗ trả lời
GV: Yêu cầu HS lấy ví dụ về xâu palindrom và xâu không phải palidrom
HS: cho ví dụ:
 + aadaa, abcba,..
 + abcde, noan,...
- thực hiện
GV: hướng dẫn HS mở chương trình được cài đặt sẵn trong máy, chạy thử chương trình với các bộ dữ liệu khác nhau (chẳng hạn những bộ dữ liệu đã lấy ví dụ).
GV: Chương trình cho kết quả gì?
HS: tương ứng với từng xâu nhập vào thì chương trình in ra màn hình “xâu là palindrom” hoặc “xau khong la palindrom”.
 Var i, x:Byte; a,p:string;
 Begin
 Write(‘nhap vao mot xau’);
 readln(a);
 x:=length(a);
 p:= ‘’;
 For i:=x downto 1 do p:=p+a[i];
 If a=p then write(‘xau la Palindrom’)
 else write(‘xau khong la Palindrom’);
 Readln;
End.
* Hoạt động 2: Cải tiến chương trình (tìm hiểu câu 1b sgk)
GV: Nêu yêu cầu mới
HS: theo dõi
GV: yêu cầu HS nhận xét về các cặp kí tự đối xứng nhau trong một xâu palindrom
HS: các kí tự ở các vị trí này giống nhau
GV: kí tự thứ i đối xứng với kí tự ở vị trí nào?
HS: kí tự thứ i trong xâu a đối xứng với kí tự ở vị trí length(a)-i+1
GV: Phải so sánh bao nhiêu cặp kí tự trong xâu để biết được xâu đó có phải là xâu palindrom hay không? Hãy dùng vòng lặp để thực hiện các phép so sánh này.
HS: phải so sánh tối đa length(a) div 2 cặp kí tự. Có thể dùng vòng lặp for hoặc while
GV: yêu cầu HS gõ chương trình, chạy thử với các bộ dữ liệu giáo viên đưa ra, thông báo kết quả
HS: gõ chương trình, chạy thử các bộ dữ liệu GV đưa ra, thông báo kết quả
GV:quan sát HS, xác nhận những bài làm đúng
GV:Yêu cầu HS xác định bài toán
HS: nghiên cứu và xác định bài toán
GV: Hướng dẫn: để ghi nhận số lần xuất hiện của các kí tự trong xâu s có thể dùng một mảng với chỉ số là kí tự từ ‘A’ đến ‘Z’
HS:theo dõi
GV: Hỏi: để giải quyết vấn đề không phân biệt chữ hoa hay chữ thường ta làm thế nào?
HS: nghiên cứu và xác định bài toán
GV: đưa ra dàn ý chương trình và yêu cầu HS chi tiết hoá bằng các câu lệnh để được một chương trình chạy đúng
GV: quan sát, bổ sung
GV: lập một vài bộ test, yêu cầu HS chạy thử chương trình rồi báo cá kết quả
GV: Yêu cầu HS xác định bài toán
HS: nghiên cứu và xác định bài toán
GV: Hướng dẫn: để thay thế tất cả các cụm kí tự ‘anh’ bằng cụm kí tự ‘em’, ta có thể làm một cách tự nhiên: 
 + tìm vị trí bắt đầu của xâu ‘anh’
 + xoá xâu ‘anh’ vừa tìm thấy
 + chèn xâu ‘em’ vào xâu s tại vị trí đó.
HS: theo dõi
GV: Hỏi: với các hàm và thủ tục đã biết đối với kiểu xâu có thể làm được những việc đó hay không?
HS: có
GV: yêu cầu HS viết chương trình
1b) Hãy viết lại chương trình mà không dùng biến xâu p
Var i, x: byte;
 a: string;
 kq:boolean;
Begin
 Write(‘nhap vao xau:’);
 Readln(a);
 x:= length(a);
 kq:=true;
 For i:=1 to x div2 do
 If a[i] a[x-i+1] then kq:=false;
 If kq:=false then Writeln(‘xau khong la palindrom’)
 else Writeln(‘xau la palindrom’) ;
 Readln
End.
Cách 2 : 
Var i, x :byte ;
 a : string ;
Begin
 Write(‘nhap vao xau: ’);
 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 div2) then writeln(‘xau la palindrom’)
 Else writeln(‘xau khong la palindrom’);
 Readln
End. 
Bài 2: (sgk T73)
Dàn ý chương trình:
{phần khai báo}
Begin
 { nhập xâu s}
 N:=length(s);
 {khởi trị cho mảng dem}
 For i:= 1 to N do
 {nếu s[i] là chữ cái thì đếm tăng cho s[i] }
 For c:= ‘A’ to ‘Z’ do
 { Thông báo số lần xuất hiện của c}
End.
Bài 3: (sgk T73)
Var vt: byte;
 S: string;
Begin
 Write(‘nhap vao mot xau: ‘);
 Readln(s);
 While pos(‘anh’,s) 0 do
 Begin
 Vt:=pos(‘anh’,s);
 Delete(s,vt,3);
 Insert(‘em’,s,vt);
 End;
 Write(s);
 Readln
End.
IV. CŨNG CỐ:
- Giải đáp một số thắc mắc của HS về bài nếu có
- yêu cầu về nhà nghiên cứu bài tập 2, 3 của bài thực hành chuẩn bị cho tiết thực hành sau
Ngày soạn: 10/03/2015
Dạy các lớp: 11A11
CHƯƠNG V. TỆP VÀ THAO TÁC VỚI TỆP
TIẾT 34: KIỂU DỮ LIỆU TỆP VÀ THAO TÁC VỚI TỆP. 
I. MỤC ĐÍCH, YÊU CẦU
Biết khái niệm và vai trò của kiểu tệp;
Biết hai cách phân loại tệp: theo cách tổ chức dữ liệu và theo cách truy cập;
Hiểu bản chất của tệp văn bản;
II. PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC
1. Phương pháp:
Giải quyết vấn đề
thuyết trình
2.Phương tiện:
Bảng + SGK 
III. NỘI DUNG
1. Ổn định lớp: Kiểm tra sĩ số, nề nếp.
2. Bài mới: 
Tìm hiểu về vai trò của kiểu tệp và cách phân loại tệp
Hoạt động 1: Tìm hiểu về Kiểu dữ liệu tệp
Hoạt động của GV và HS
Nội dung
GV: Hỏi: Các kiểu dữ liệu trước được lưu trữ ở bộ nhớ nào?
HS: bộ nhớ ngoài (RAM)
GV: Hái: V× sao em biÕt ®­îc ®iÒu ®ã?
HS: dữ liệu bị mất khi tắt máy
GV: Để lưu giữ dữ liệu lâu dài nhằm khai thác, xử lí thông tin đó ta phải lưu nó ở bộ nhớ ngoài thông qua kiểu dữ liệu tệp.
GV: Yêu cầu học sinh nghiên cứu sách giáo khoa và nêu đặc 

File đính kèm:

  • docgiao_an_tin_11_day_du_20150727_011245.doc