Giáo án Tin học 11 - Tiết 18 đến tiết 50

Tiết 18: CẤU TRÚC LẶP (tiết 1/3)

I. MỤC TIÊU

1. Kiến thức

- Hiểu nhu cầu của cấu trúc lặp trong biễu diễn thuật toán.

- Biết cấu trúc chung của lệnh lặp với số lần biết trước For trong NNLT Pascal

- Biết sử dụng đúng 2 dạng lệnh lặp For.

2. Kĩ năng:

- Bước đầu sử dụng được lệnh lặp For để lập trình giải quyết 1 số bài toán đơn giản.

 3. Thái độ:

- Học tập nghiêm túc.

- Hình thành và phát triển cho học sinh năng lực tự học, năng lực công nghệ thông tin, năng lực giải quyết vấn đề.

- Mô hình hoá các tình huống trong thực tế bằng cấu trúc For - Do.

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

1. Phương pháp: Thuyết trình, vấn đáp.

2. Phương tiện: Máy chiếu, máy tính, phòng máy, bảng.

III. LƯU Ý SƯ PHẠM.

- Cần tổng kết có ba loại cấu trúc điều khiển: tuần tự, rẽ nhánh và lặp.

- Bước đầu hình thành khái niệm về lập trình có cấu trúc.

 

doc 94 trang Người đăng minhkhang45 Lượt xem 1366Lượt tải 3 Download
Bạn đang xem 20 trang mẫu của tài liệu "Giáo án Tin học 11 - Tiết 18 đến tiết 50", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
 để viết?
- Yêu cầu HS hoàn thành chương trình của câu a.
- Nhận xét, chỉnh sửa bài làm của HS.
Nội dung b:
H1: Nêu thuật toán kiểm tra 1 số có phải là số nguyên tố hay không?
- Yêu cầu HS viết chương trình dựa theo thuật toán.
Hd: Sử dụng câu lệnh nào?
- Yêu cầu HS hoàn thành đoạn chương trình câu b.
- Nhận xét, đánh giá:
- Gợi ý để HS kết hợp hai đoạn chương trình thành một chương trình hoàn chỉnh cho cả bài.
Hs: lªn b¶ng viÕt ch­¬ng tr×nh hoµn chØnh
Var A: array[1..100] of integer;
 i,n,d:integer;
 cs:boolean;
Begin
 repeat 
 write('nhap n<=100'); readln(n);
 until (n>1) and (n<=100)
for i:=1 to n do
begin
 repeat
 write('A[',i,']=');
 readln(A[i]);
 until ABS(A[i]<=1000);
end;
d:=A[2]-A[1];
cs:=true;
for i:=1 to n do
if (A[i]-A[i-1])d then
begin
 cs:=false;
 break;
 end;
if cs then write('day la csc')
else write('khong la csc');
readln;
end.
Hoạt động 4: Giải bài tập 7 trang 79 
Hoạt động của GV và HS
Nội dung
- Yêu cầu HS liệt kê 6 số hạng đầu của dãy Fiponaci.
- Liệt kê: 0, 1, 1, 2, 3, 5
H1: Đoạn chương trình nhập từ bàn phím số nguyện dương như thế nào?
- Viết chương trình lên bảng:
H2: Số hạng tổng quát thứ n như thế nào?
TL: Fn = Fn-1 + Fn-2
- Gợi ý: Để viết chương trình này ta cần bao nhiêu biến phụ?
TL: Dùng 2 biến phụ (F1, F2)
H3: sử dụng câu lệnh nào trong bài này?
- Yêu cầu HS viết chương trình tìm số hạng thứ n.
- Gọi 1 HS hoàn chỉnh lại chương trình.
- Nhận xét, chỉnh sửa, đánh giá bài làm.
.
Var f:array[1..100] of integer;
 i,n:integer;
F[1]:=1;
F[2]:=1;
for i:=3 to n do
begin
 F[i]:=F[i-1]+F[i-2];
F[i-2]:=F[i-1];
F[i-1]:=F[i];
V. CỦNG CỐ
	 Cấu trúc lệnh: While ... do ... và For ... do ...
Về nhà làm các bài tập tiếp theo
. VI. RÚT KINH NGHIỆM, BỔ SUNG: 
 	.....
............................................................................................................................................................................................................................................................................................................................
Ngµy so¹n
03/03/2018
 Ngµy d¹y
Líp
 11B1
 11B2
Ngµy
08/03/2018
08/03/2018
Điều chỉnh
Tiết 34: Bài 12: KIỂU XÂU (tiết 1)
I. MỤC TIÊU
	1. Về kiến thức
Biết được một kiểu dự liệu mới, biết được khái niệm kiểu xâu.
Phân biệt được sự giống và khác giữa kiểu mảng với kiểu xâu.
Biết được cách khai báo biến, nhập/xuất dữ liệu, tham chiếu dến từng kí tự của xâu.
Biết các phép toán liên quan đến xâu.
 2. Về kĩ năng
Khai báo được biến kiểu xâu trong ngôn ngữ lập trình Pascal.
Sử dụng biến xâu và các phép toán trên xâu để giải quyết một bài toán đơn giản.
 3. Tư duy, thái độ
Có thái độ nghiêm túc trong học tập, làm việc khoa học và có hứng thú giải các bài toán bằng lập trình.
 4. Phát triển năng lực 
Hình thành và phát triển cho học sinh năng lực tự học, năng lực công nghệ thông tin, năng lực giải quyết vấn đề.
Mô hình hoá các tình huống trong thực tiễn bằng kiểu dữ liệu xâu qua việc khai báo xâu và một số thao tác với xâu.
II. PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC
 1. Phương pháp: Thuyết trình, vấn đáp, kết hợp hoạt động nhóm
 2. Phương tiện:
	- GV: Máy vi tính, Máy chiếu để giới thiệu ví dụ.
	- HS: SGK, vở để ghi chép.	
III. LƯU Ý SƯ PHẠM
Cần cung cấp cho học sinh một số hàm và thủ tục chuẩn vì học sinh chưa học chương trình con nên chưa thực sự phân biệt được hàm và thủ tục. Tuy nhiên không nên trình bày sâu về hàm và thủ tục.
Có thể hình dung xâu kí tự như mảng một chiều với phần tử thuộc kiểu char.
IV. TIẾN TRÌNH BÀI DẠY
 1. Ổn định lớp: (Thời lượng:........)
 2. Kiểm tra bài cũ, gợi động cơ (Thời lượng:..........)
	Câu hỏi 1: Viết khai báo mảng một chiều cho mảng hoten gồm 10 phần tử kiểu kí tự.
	Câu hỏi 2: Viêt tham chiếu đến phần tử thứ 8 của mảng họ tên.
	Trả lời: 1. Var hoten: Array [1..10] of char;
	 2. hoten[8]
	3. Nội dung bài giảng :
	 - Bài toán đặt vấn đề: Nhập vào họ tên của 1 học sinh từ bàn phím, in kết quả ra màn hình.
 	 - Nếu bài toán yêu cầu nhập vào họ tên của 5 học sinh, thì ta sẽ phải tạo 5 mảng để lưu họ tên của 5 học sinh. Vậy nếu là 20, 50 học sinh thì sẽ mất thời gian.
	 - NNLT Pascal đưa ra một kiểu dữ liệu mới : Kiểu xâu
Hoạt động của GV và HS
Nội dung
Hoạt động 1: Tìm hiểu về xâu và quy ước về xâu.
GV: - Đưa ra một ví dụ minh hoạ. Sau đó yêu cầu học sinh tìm hiểu và trả lời về định nghĩa xâu?
 VD: 'tin hoc' 
 '2014'
 'THPT Hang Hai?'
HS: Nắm được khái niệm về xâu và tự lấy ví dụ khác
GV cùng HS tìm hiểu các quy ước đối với xâu. GV hỏi HS đọc SGK trả lời
- Độ dài xâu được xác định ntn?
- Xâu rỗng là xâu ntn?
- Chỉ số phần tử được đánh ntn?
- Cách tham chiếu đến một phần tử của xâu ntn?
GV đưa ra 3 VD yêu cầu HS quan sát, nhận xét và trả lời
+ 'Tin hoc' là xâu có độ dài bằng bao nhiêu?
+ ' ' là xâu gì?
+ Giả sử biến xâu hoten lưu giá trị hằng xâu 'Le Thu Ha' muốn tham chiếu đến kí tự 'T' thì viết ntn?
HS trả lời được: 
+ Xâu có độ dài bằng 7
+ Là xâu rỗng
+ hoten[4]
Hoạt động 2: Tìm hiểu cách khai báo biến xâu.
GV: đưa ra cú pháp của phương pháp khai báo biến xâu, sau đó lấy ví dụ minh hoạ và yêu cầu HS nhận xét?
HS: Trả lời
Hoạt động 3: Tìm hiểu cách nhập/xuất dữ liệu cho biến xâu.
GV giới thiệu cấu trúc chung của các thủ tục nhập/xuất dữ liệu cho biến xâu.
GV: đưa ra một chương trình làm VD minh hoạ (Bảng phụ)
Var 
 hoten : string[25];
 chuthich :string;
Begin
 Readln(hoten);
 Chuthich:= 'hoc sinh truong THPT Mac Dinh Chi';
 Writeln(hoten, chuthich);
end.
GV:Khi chạy chương trình nếu nhập xâu 'Nguyen Lan Anh' cho biến xâu hoten thì kết quả thu được là gi?
HS: Nguyen Lan Anh hoc sinh truong THPT Mac Dinh Chi
Hoạt động 4: Tìm hiểu phương pháp ghép xâu.
GV: đưa ra phương pháp ghép xâu sau đó đưa ra 2 trường hợp làm VD 
1. Hai' + ' ' + ' Phong'
2. hoten + 'hoc sinh trương THPT Mac Dinh Chi' giả sử biến xâu hơten lưu giữ hằng xâu 'Nguyen Lan Anh' 
HS thảo luận nhóm và trả lời
Hoạt động 5: Tìm hiểu phép so sánh 2 xâu với nhau.
GV đưa ra những quy ước của phép so sánh xâu. Sau đó đưa ra 3 trường hợp yêu cầu HS lựa chọn dấu so sánh và đặt vào vị trí thích hợp
Ví dụ:
 1. 'Tin' + 'học' 'Tin hoc'
 2. ' Ha Noi' ' Ha Nam'
 3. 'Xau' ' Xau ki tư'
I. Khái niệm và khai báo
1. Khái niệm và quy ước
a. Khái niệm: 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. 
b. Quy ước:
- Độ dài xâu được xác định bằng số lượng kí tự trong xâu.
- Xâu rỗng là xâu có độ dài bằng 0.
- Chỉ số phần tử được đánh theo số thứ tự của kí tự trong xâu, tính từ trái bắt đầu bằng 1.
- Tham chiếu đến 1 phần tử của xâu: Tên biến xâu [chỉ số]
Ví dụ:
+ ' Tin hoc' → Xâu có độ dài bằng 7
+ ' ' → Là xâu rỗng
+ Giả sử biên xâu hoten lưu trữ giá trị hằng xâu 'Le Thu Ha' muốn tham chiếu tới kí tự 'T' → hoten[4]
2. Khai báo biến xâu
 Var : string[n];
 Trong đó: n là độ dài lớn nhất của xâu,
1<=n <=255
Ví dụ 1: Var hoten: String[25];
Ví dụ 2: Var st1, st2: String[255];
Ví dụ 3: Var st1, st2: String;
Chú ý: - Khi khai báo xâu có thể bỏ qua phần khai báo [độ dài lớn nhất], khi đó độ dài lớn nhất của xâu sẽ nhận giá trị ngầm định là 255
- Khai báo độ dài xâu phải dựa trên phạm vi kí tự phù hợp.
II. Các thao tác xử lí xâu
1. Nhập/xuất dữ liệu cho biến xâu
a. Nhập dữ liệu vào từ bàn phím
Read();
Readln();
b. Nhập bằng phép gán
 := ;
c. Xuất dữ liệu
Write();
Writeln();
2. Phép ghép xâu
Sử dụng kí hiệu ' + ' để ghép nhiều xâu thành một xâu
Ví dụ:
1. Hai' + ' ' + ' Phong'→ ' Hai Phong'
2. hoten + 'hoc sinh trương THPT Mac Dinh Chi' → 'Nguyen Lan Anh hoc sinh truong THPT Mac Dinh Chi'
3. Các phép so sánh xâu
Sử dụng kí hiệu =, , =, > để so sánh xâu
Quy ước
1. Phép so sánh có thứ tự ưu tiên thấp hơn phép ghép xâu.
2.Xâu A=B nếu 2 xâu giống hệt nhau.
3. Xâu A>B nếu kí tự khác nhau đầu tiên giữa chúng kể từ trái sang trong xâu A có mã ASCII lớn hơn.
4. Xâu A là đoạn đầu của xâu B thì xâu A<B
Ví dụ:
 1. 'Tin' + 'học' = 'Tin hoc'
 2. ' Ha Noi' > ' Ha Nam'
 3. 'Xau' < ' Xau ki tư'
 V. CỦNG CỐ
Ghi nhớ
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. 
Khai báo: Var :String[n]
	Trong đó: n là độ dài lớn nhất của xâu, 1=n <=255
Tham chiếu đến 1 phần tử của xâu: Tên biến xâu [chỉ số
Một số thao tác xử lí xâu: Ghép xâu, so sánh, chèn, xoá....
Bài tập củng cố
Bài 1: Hãy lựa chọn đáp án đúng sai
Xâu là dãy các kí tự trong bộ mã ASCII có độ dài không quá 255.
Xâu rỗng là xâu chỉ có một kí tự cách trống.
Tham chiếu đến kí tự đầu của xâu lưu giữ trong biến st là: st[1];
Có thể gán giá trị là một kí tự cho một biến xâu kí tự.
Khai báo biến xâu st có độ dài tối đa 26 là: Var st: string[26];
'Hai'+' '+'Phong' ='HaiPhong'
Nhập dữ liệu cho biến xâu st chỉ có một dấu cách: Read(st);
In giá trị của biến xâu st ra màn hình là: Write(st)
'Tin Hoc'>'Tin hoc'
Bài 2: Hãy khai báo các biến xâu: hoten, st1, st2, st3 với độ dài xâu lớn nhất tương ứng là 260, 255, 0, 45.
Hướng dẫn về nhà
Ôn lại kiến thức về kiểu xâu.
Hãy nêu sự giống và khác nhau giữa mảng một chiều và xâu
Xem trước một số hàm và làm việc với xâu và các ví dụ trang 71,72 trong SGK.
VI. RÚT KINH NGHIỆM, BỔ SUNG: 
 	.....
............................................................................................................................................................................................................................................................................................................................
Ngµy so¹n
06/03/2018
 Ngµy d¹y
Líp
 11B1
 11B2
Ngµy
15/03/2018
14/03/2018
Điều chỉnh
Tiết 35: KIỂU XÂU(2/2)
 I. Mục tiêu:
Kiến thức:
Hiểu được lợi ích của các hàm và thủ tục liên quan đến xâu tring ngôn ngữ lập trình Pascal.
Nắm được cấu trúc ching và chức năng của một số hàm liên quan đến xâu.
Kỹ năng:
Bước đầu sử dụng được một số hàm, thủ tục thông dụng về xâu.
Có thể cài đặt được một số chương trình đơn giản có sử dụng xâu
Thái đô:
Rèn luyện tác phong tư duy lập trình tự giác, tích cực, chủ động và sáng tạo trong tìm kiếm kiến thức.
 4. Phát triển năng lực 
Hình thành và phát triển cho học sinh năng lực tự học, năng lực công nghệ thông tin, năng lực giải quyết vấn đề.
Mô hình hoá các tình huống trong thực tiễn bằng kiểu dữ liệu xâu qua việc khai báo xâu một số thao tác xử lí xâu và một số ví dụ về xâu.
II. PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC
 1 . Phương pháp: 
Đặt vấn đề.
Thuyết trình, vấn đáp.
Diễn giải, dùng bảng để ghi lại các chi tiết quan trọng trong ví dụ
 2. Phương tiện:
GV: Máy tính, máy chiếu.
HS: Sách GK.
III. LƯU Ý SƯ PHẠM
GV không nên giới thiệu sâu về hàm và thủ tục, nhưng cũng cần nhấn mạnh để học sinh biết được sự khác nhau cơ bản của hàm và thủ tục: Thủ tục thì không trả về kết quả qua tên gọi của nó còn hàm thì có.
IV. TIẾN TRÌNH BÀI HỌC
Ổn định lớp (Thời lượng:.....................).
Kiểm tra bài cũ
Câu 1: Xâu là gì? Cách khai báo biến xâu.
Câu 2: Nêu quy ước khi so sánh xâu? Lấy VD cụ thể
Nội dung bài:
 Các bước tiến hành:
Hoạt động của thầy và trò
Nội dung
Hoạt động 1: Tìm hiểu ý nghĩa của thủ tục Insert, Delete.
GV đưa ra cú pháp và ý nghĩa của 2 thủ tục. vad
GV đưa ra 2 tình huống và yêu cầu HS sử dụng 2 thủ tục Delete và Insert ?
Hoạt động 2: Tìm hiểu ý nghĩa của một số hàm
GV đưa ra cú pháp và ý nghĩa của các hàm: Coppy, Pos, Length, Upcase
GV đưa ra 4 tình huống và yêu cầu HS sử dung 4 loại hàm để làm
Hoạt động 3: Tìm hiểu một số ví dụ
GV: Yêu cầu HS quan sát bảng phụ chứa các VD và nhận xét
4. Một số thủ tục làm việc với xâu
Thủ tục
Ý nghĩa
Ví dụ
Delete(st,vt, n);
Xoá n kí tự của xâu st bắt đầu từ vị trí vt.
st:='Hai Phong';
Delete(st, 1,4)
→ st:='Phong'
Insert(s1, s2,vt)
Chèn xâu s1 vào xâu s2 bắt đầu từ vị trí vt.
s1:='hoc'; s2:='tin 11';
Insert(s1,s2,4)
→ st:='tin hoc11'
5. Một số hàm làm việc với xâu
Hàm
Ý nghĩa
Ví dụ
Copy(S, vt, n)
Tạo xâu mới gồm N kí tự liên tiếp bắt đầu từ vị trí vt của xâu S
s:='Hai Phong';
Copy(s, 1,3)
→ s:='Hai'
Pos(S1, S2)
Cho biết vị trí xuất hiện đầu tiên của S1 trong S2.
s1:='hoc'; s2:='tin hoc11';
Pos(s1,s2)
→ KQ=5
Length(S)
Cho độ dài của xâu S.
S:='Hai Phong';
Length(S)
→ KQ:=9
Upcase(ch)
Cho chữ cái viết hoa tương ứng với chữ trong ch
Upcase('a')
→ KQ:= 'A'
III. Một số VD
Bảng phụ chứa ví dụ 1
Ues crt;
Var a, b: string;
Begin
 Clrscr;
 Write(‘ nhap ho ten thu nhat: ‘);
 Realn (a);
 Write(‘ nhap ho ten thu hai: ‘);
 Realn (b);
 If length(a)>length(b) then
 Write(a) else writer(b);
Realn
End.
Bảng phụ chứa ví dụ 2
Bảng phụ chứa ví dụ 3
Bảng phụ chứa ví dụ 4
Bảng phụ chứa ví dụ 5
V. CỦNG CỐ
- Nhắc lại một số hàm và thủ tục liên quan đến xâu.
- Nhắc lại cấu trúc câu lệnh.
 Bài tập về nhà: Giải bài tập số 10 trang 80.
VI. RÚT KINH NGHIỆM, BỔ SUNG: 
 	.....
............................................................................................................................................................................................................................................................................................................................
Ngµy so¹n
10/03/2018
 Ngµy d¹y
Líp
 11B1
 11B2
Ngµy
15/03/2018
15/03/2018
Điều chỉnh
Tiết 36: BÀI TẬP VÀ THỰC HÀNH 5 (Tiết 1)
I.MỤC ĐÍCH, YÊU CẦU:
1.Kiến thức: 
 Hs tự xây dựng một số thật toán về xâu và soạn thảo trong NNLT Pascal.
 Khắc sâu thêm phần kiến thức về lý thuyết kiểu xâu kí tự, đặc biệt các hàm và thủ tục liên quan.
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 cả các ký tự của xâu.
Sử dụng được các hàm và thủ tục chuẩn.
 3.Thái độ:
Tích cực vàc chủ động trong thực hành.
4. Phát triển năng lực 
Hình thành và phát triển cho học sinh năng lực tự học, năng lực công nghệ thông tin, năng lực giải quyết vấn đề.
Vận dụng kiểu dữ liệu xâu để xử lí bài toán kiểm tra xâu đôi xứng.
II.PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC:
 1. Phương pháp: 	Thực hành + Vấn đáp tái hiện
 2. Phương tiện
Giáo viên: Giáo án, SGK, máy chiếu.
Học sinh: Chuẩn bị bài ở nhà.
Tiến trình dạy học
III. LƯU Ý SƯ PHẠM
Nên cho học sinh lấy VD trước về xâu palindrome trước khi cho học sinh tìm hiểu chương trình.
IV. TIẾN TRÌNH BÀI DẠY
1.Ổn định lớp
2. Kiểm tra bài cũ:
 Câu 1: Hãy nêu cú pháp và ý nghĩa các thủ tục cơ bản xử lý xâu? Mỗi thủ tục lấy một ví dụ?
 Câu 2: Hãy nêu cú pháp và ý nghĩa các hàm cơ bản xử lý xâu? Mỗi hàm lấy một ví dụ?
3. Nội dung bài giảng
Dấn dắt: Hôm nay chúng ta học bài “Bài tập và Thực hành5(t1)” để kiểm tra một số thuật toán, một số thủ tục và hàm xử lý xâu.
HOẠT ĐỘNG CỦA GV VÀ HS
NỘI DUNG 
Hoạt động 1:Tìm hiểu bài 1 mục a
Gv:Đưa nội dung bài tập lên máy chiếu
Hãy gõ chương tình và chạy thử với các bộ test như sau:
A=’abccba’
A=’fgđhfs’
Hs:Quan sát trên màn hình máy chiếu và SGK để gõ chương trình vào NNLT Pascal.
Gv: Quan sát Hs gõ chương trình và đưa ra câu hỏi thảo luận như sau:
 Với hai bộ test trên thì kết quả xuất ra màn hình như thế nào?
Hs: Thực hành rồi trả lời kết qủa
Hoạt động 2:Tìm hiểu bài 1 mục b
Gv: Hãy sửa lại chương trình trên mà không sử dụng biến P?
Hs:Thảo luận theo nhóm (2Hs/máy)
 -Dùng biến kt (khởi tạo kt, tạm coi xâu a là xâu đối xứng)
 -Soạn thảo chương trình
 - So sánh cặp kí tự đối xứng
 -Chạy thử chương trình với bộ Test trên.
Gv:
-Quan sát rồi đưa chương trình hoàn chỉnh lên máy chiếu để Hs so sánh
-Ngoài ra còn có cách thứ 2:
While i<=(x div2) And (a[i]=a[x-i+1] Do 
 i:=i+1
If i>(x div 2) Then Write(‘Xau là palindrome) Else Write(‘Xau khong phai la palindrome);
I.Soạn thảo chương trình và tìm hiểu cách khai báo biến và một số câu lệnh:
 Bài 1: Nhập vào 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âu đối xứng có tính chất: đọc nó từ phải sang trái cũng thu được kết quả giống như đọc từ trái sang phải (Còn gọi xâu là palindrome). 
a.Hãy chạy thử chương trình sau:
 Var 
 i,x:Byte;
 a,p:String;
 Begin
 Write(‘Nhap xau a=’); Readln(a);
 P:=’’;
 For i:=length(a) Downto 1 Do p:=p+a[i];
 If a=p Then Write(‘Xau là palindrome)
 Else Write(‘Xau khong phai la palindrome);
 Readln;
 End.
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:Byte;
 a:String;
 Kt:Boolean;
Begin
 Write(‘Nhap xau a=’); Readln(a);
 Kt:=True;
 X:=length(a); 
 For i:=1 To x div 2 Do
 If a[i] a[x-i+1] Then
 Begin 
 kt:=False;
 Break;
 end;
 If Kt Then 
 Write(‘Xau là palindrome)
 Else 
 Write(‘Xau khong phai la palindrome);
Readln;
End. 
V.CỦNG CỐ 
Nhận xét buổi thực hành=>đưa ra một số lổi thường gặp khi thực hành.
 Cần nắm cách khai báo biến xâu, các hàm và thủ tục xử lý xâu,...
Cần nắm thuật toán kiểm tra xâu đối xứng.
 Bài tập về nhà: Bài 2, 3 (SGK/73)
VI. RÚT KINH NGHIỆM, BỔ SUNG: 
 	.....
......................................................................................................................................................................................................................................................................................................
Ngµy so¹n
16/03/2018
 Ngµy d¹y
Líp
 11B1
 11B2
Ngµy
22/03/2018
21/03/2018
Điều chỉnh
BÀI TẬP VÀ THỰC HÀNH 5 (Tiết 2)
I.MỤC ĐÍCH, YÊU CẦU:
1.Kiến thức: 
 Hs tự xây dựng một số thật toán về xâu và soạn thảo trong NNLT Pascal.
 Khắc sâu thêm phần kiến thức về lý thuyết kiểu xâu kí tự, đặc biệt các hàm và thủ tục liên quan.
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 cả các ký tự của xâu.
Sử dụng được các hàm và thủ tục chuẩn.
3.Thái độ:
Tích cực vàc chủ động trong thực hành.
4. Phát triển năng lực 
Hình thành và phát triển cho học sinh năng lực tự học, năng lực công nghệ thông tin, năng lực giải quyết vấn đề.
Vận dụng kiểu dữ liệu xâu để viết một số chương trình đơn giản.
II.PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC:
 1. Phương pháp: 	Thực hành + Vấn đáp tái hiện
 2. Phương tiện
Giáo viên: Giáo án, SGK, máy chiếu.
Học sinh: Chuẩn bị bài ở nhà.
Tiến trình dạy học
III. LƯU Ý SƯ PHẠM
Tuỳ từng đối tượng HS mà GV có thể đưa ra những yêu cầu về dàn ý chương trình hoặc chi tiết hoá bằng các câu lệnh.
IV. TIẾN TRÌNH BÀI DẠY
1.Ổn định lớp
2. Kiểm tra bài cũ:
 Câu 1: Hãy nêu cú pháp khai báo xâu? lấy một ví dụ?
 3. Nội dung bài giảng
HOẠT ĐỘNG CỦA THẦY VÀ TRÒ
NỘI DUNG KIẾN THỨC
Hoạt động 1:Rèn luyện kĩ năng lập trình (Bài 2)
Gv:Đưa câu hỏi lên máy chiếu
S=’AbaCDacd’
 Hãy cho biết 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)?
Hs:Đếm rồi trả lời.
Gv: Hãy nêu Input và Output của bài toán?
Hs:
 Input:Nhập xâu S
 Output: Đếm số lần xuất hiền chữ cái tiếng anh 
Gv:
 Trong bảng chữ cái tiếng anh có bao nhiêu chữ cái?
Hs:Gồm có 26 chữ cái
Gv:Hướng dẫn 
 Dem[A]:=0;
 Dem[B:=0; 
 Dem[Z=0;
 Hãy viết câu lệnh khởi tạo các biến trên như thế nào?
Hs:Sử dụng câu lệnh For
Gv: Hãy viết đoạn chương trình đếm số lần xuất hiện chữ cái trong tiếng Anh?
Hs: Suy nghĩ trả lời
If S[i] in ['A'..'Z'] Then 
 Begin
 S[i]:=upcase(S[i]); 
 Dem[S[i]]:=Dem[s[i]]+1;
 End;
 Gv:Yêu cầu hoạt động theo nhóm (2Hs/1máy tính) theo mẫu sau:
Var
 Dem:array['A'..'Z'] Of Byte;
 S:...;
 i:...;
 ch:...;
Begin
 Write('Nhap xau S='); Readln(S);
 For ch:='A' To 'Z' Do Dem[ch]:=......;
 For i:=1 to Length(S) Do
 If S[i] in ['A'..'Z'] Then 
 Begin
 ............
 End;
 For ch:='A' to 'Z' Do 
 If Dem[S[i]] 0 Then
 Writeln(..................);
 Readln;
 End.
 Hãy viết chương trình đầy đủ và chạy thử chương trình để để tra xem kết quả đúng?
Hs:Thảo luận theo nhóm để điền và chạy chương trình rồi báo cáo kết quả.
Gv:Quan sát và đưa toàn bộ chương trình lên máy chiếu và chạy thử để Hs quan sát.
Hoạt động 3:Rèn luyện kĩ năng lập trình (Bài 3)
Phần khai báo
Begin
Nhập xâu
Chừng nào còn tìm thấy xâu 'anh' trong xâu S thì còn thực hiện ba công việc sau
- 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 vị trí trước đây xuất hiện xâu 'anh'
In xâu kết quả
end.
II.Vận dụng kiểu dữ liệu xâu để lập trình: 
Bài 2: Viết chương trình nhập từ bàn phím một xâu S và thông báo 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 xâu S
 Output: Đếm số lần xuất hiền chữ cái tiếng anh 
Var
 Dem:array['A'..'Z'] Of Byte;
 S:string;
 i:Byte;
 ch:char;
Begin
 Write('Nhap xau S='); Readln(S);
 For ch:='A' To 'Z' Do Dem[ch]:=0;
 For i:=1 to Length(S) Do
 If S[i] in ['A'..'Z'] Then 
 Begin
 S[i]:=upcase(S[i]); 
 Dem[S[i]]:=Dem[s[i]]+1;
 End;
 For ch:='A' to 'Z' Do 
 If Dem[S[i]] 0 Then
 Writeln('so lan xuat hien ',ch,' la',Dem[ch]);
 Readln;
 End.
Bài 3: Nhập từ bàn phím một xâu. Thay thế tất cả các cụm từ 'anh' bằng cụm từ 'em' 
Var vt: byte;
 st: String;
Begin
 Write('Nhap vao mot xau:');
 Readln(st);
 While pos ('anh', st)0 do
 Begin
 Vt:=pos('anh',st);
 Delete(st,vt,3);
 insert('em',st,vt); 
 end;
write(st);
readln
End. 
IV.CỦNG CỐ(2’): 
 Nhận xét buổi thực hành=>đưa ra một số lổi thường gặp khi thực hành.
Cần nắm cách khai báo biến xâu, các hàm và thủ tục xử lý xâu,...
Cần nắm thuật toán đếm số lần xuất hiện chữ cái tiếng anh.
Bài tập về nhà: Bài 10 (SGK/80)	
VI. RÚT KINH NGHIỆM, BỔ SUNG: 
 	.....
............................................................................................................................................................................................................................................................................................................................
Ngµy so¹n
18/03/2018
 Ngµy d¹y
Líp
 11B1
 11B2
Ngµy
22/03/2018
22/03/2018
Điều chỉnh
BÀI TẬP
I. MỤC ĐÍCH, YÊU CẦU:
1. Kiến thức: 
 Khắc sâu thêm phần kiến thức về lý thuyết kiểu xâu kí tự, đặc biệt các hàm và thủ tục liên quan.
 Nắm được một số thuật toán cơ bản: tạo xâu mới, đếm số lần xuất hiện một ký tự,...
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 cả các ký tự của xâu.
S

Tài liệu đính kèm:

  • docGiao an hoc ki 2_12265134.doc