Giáo án Tin học 11 tiết 27+ 28: Bài tập và thực hành số 5

Hoạt động của Thầy và Trò

Hoạt động 2:

-Nội dung: Rèn luyện kỹ năng lập trình.

-Mục tiêu: HS biết phân tích yêu cầu để viết moat chương trình hòan chỉnh.

-Các bước tiến hành:

GV: Hướng dẫn HS phân tích yêu cầu của bài 2 (SGK tr.73)

 -Input, output của bài toán?

 -Nêu các nhiệm vụ chính cần thực hiện khi giải quyết bài toán.

 -Cấu trúc dữ liệu phải sử dụng ntn?

 -Sử dụng hàm nào?

HS: Nghe và trả lời:

 -Input: Một xâu S;

 Output: Dãy các số ứng với sự xuất hiện của mỗi loại kí tự trong xâu.

 -Thuật tóan: Duyệt từ trái sang phải, thêm moat đơn vị cho kí tự đọc được.

 -Cấu trúc dữ liệu: Dem[A . . Z]

 -Dùng hàm: Upcase(ch); Length(S)

GV: Hướng dẫn HS viết chương trình

HS: Viết chương trình trên máy.

 

doc6 trang | Chia sẻ: dung89st | Lượt xem: 3514 | Lượt tải: 2download
Bạn đang xem nội dung tài liệu Giáo án Tin học 11 tiết 27+ 28: Bài tập và thực hành số 5, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
 Ngày soạn: 10/02/2008
 BÀI TẬP VÀ THỰC HÀNH SỐ 5
I. MỤC TIÊU BÀI HỌC:
1. Kiến thức: Củng cố cho HS những kiểu xâu.
2. Kỹ năng: 
-Rèn luyện kĩ năng sử dụng kiểu xâu: Khai báo kiểu xâu; 
-Nhập dữ liệu cho xâu, đưa ra màn hình giá trị của xâu; 
-Duyệt qua tất cả các kí tự của xâu để thực hiện xử lí tương ứng với từng kí tự đó.
	-Sử dụng được các hàm và thủ tục chuẩn liên quan đến xâu.
3. Thái độ: Rèn luyện tư duy lập trình, tích cực chủ động trong thực hành.
II. CHUẨN BỊ:
1. Tài liệu, bài tập: SGK, SBT, SGV.
2. Dụng cụ, thiết bị: Phòng máy vi tính.
III. TIẾN TRÌNH LÊN LỚP:	(Tiết PPCT: 27)
1. Ổ định, tổ chức lớp: CBL báo cáo sĩ số.
2. Kiểm tra bài cũ:	 thông qua bài tập thực hành trên máy.
3. Bài giảng:
Hoạt động của Thầy và Trò
Nội dung ghi bảng
Hoạt động 1:
-Nội dung: Tìm hiểu về xâu đối xứng (xâu palindrome)
-Mục tiêu: HS hiểu thuật toán kiểm tra tính đối xứng của xâu. 
-Các bước tiến hành:
Câu a/ bài 1 (SGK tr.73):
GV: Yêu cầu HS xác định bài toán.
HS: Đưa ra input, output của bài toán.
GV: Cho VD minh họa về xâu đối xứng.
HS: Chú ý theo dõi.
GV: Gợi ý HS tìm thuật toán kiểm tra xâu đối xứng.
HS: Suy nghĩ và đưa ra thuật toán.
GV: Nhận xét và bổ sung (nếu cần). 
 Cho HS thực hiện chương tình trên máy. 
HS: Thực hiện chương trình trên máy.
*Câu b/ Viết lại CT ở câu a, không dùng biến xâu p:
GV Gợi ý: -Nếu không dùng biến xâu p, thì ta kiểm tra bằng cách so sánh các cặp kí tự ở vị trí đối xứng nhau để kết luận xâu có đối xứng hay không.
 -VD xâu a có độ dài là k. Cặp kí tự ở vị trí nào là đối xứng nhau?
HS:
 a[1] đối xứng với a[k]; ( = a[k -1+1])
 a[2] đối xứng với a[k-1]; (= a[k -2+1])
 . . . . . . . . . . . . . . . . .
 GV: a[i] đối xứng với a[?]
 HS: a[i] đối xứng với a[k-i+1].
GV: So sánh bao nhiêu cặp kí tự trong xâu?
HS: k div 2.
GV: -Để so sánh các cặp kí tự trong xâu, ta dùng vòng lặp: For i := to k div 2 do. 
 -Trong lúc so sánh chỉ cần phát hiện 1 cặp kí tự khác nhau thì ta kết luận xâu đó không đối xứng. Ta dùng một biến logic để ghi nhận sự phát hiện này.
HS: Chú ý lắng nghe.
GV: Hướng dẫn HS viết lại chương trình.
HS: Viết chương trình trên máy.
Bài 1: (SGK tr.73)
-Xác định bài toán:
Input: Nhập một xâu từ bàn phím.
Output: Kiểm tra xâu đó có phải là xâu đối xứng không.
VD: ‘abcdcba’ là xâu đối xứng.
 ‘abcdcbe’ là xâu không đối xứng.
TT: B1: Nhập xâu a;
 B2: Tạo xâu p là xâu đảo ngược của xâu a;
 B3: Nếu a = p thì đưa ra thông báo a là xâu đối xứng, rồi kết thúc; ngược lại, thì đưa ra thông báo a là xâu không đối xứng, rồi kết thúc.
Chương trình (SGK tr.73).
b/ Chương trình được viết lại như sau:
var a: string;
 i, k : byte;
 kt : boolean;
Begin 
 write(‘Nhap vao xau a: ‘);
 readln(a);
 k:= Length(a);
 kt:= true;
 for i:= 1 to k div 2 do
 if a[i] a[k-i+1] then 
 kt := false;
 if kt then write(‘xau doi xung’)
 else write(‘xau khong doi xung’);
 readln
End.
4.Tổng kết nội dung, đánh giá cuối bài: 
	Thuật toán Kiểm tra một xâu đối xứng.
5.Dặn dò, kế hoạch học tập tiết sau: 
	Làm trước bài: 2, 3 SGK tr.73.
IV. NHỮNG VẤN ĐỀ CẦN RÚT KINH NGHIỆM:
Ngày soạn: 10/02/2008
 BÀI TẬP VÀ THỰC HÀNH SỐ 5 (tt)
III. TIẾN TRÌNH LÊN LỚP:	(Tiết PPCT: 28)
1. Ổ định, tổ chức lớp: CBL báo cáo sĩ số.
2. Kiểm tra bài cũ:	 thông qua bài tập thực hành trên máy.
3. Bài giảng:
Hoạt động của Thầy và Trò
Nội dung ghi bảng
Hoạt động 2:
-Nội dung: Rèn luyện kỹ năng lập trình.
-Mục tiêu: HS biết phân tích yêu cầu để viết moat chương trình hòan chỉnh. 
-Các bước tiến hành:
GV: Hướng dẫn HS phân tích yêu cầu của bài 2 (SGK tr.73)
 -Input, output của bài toán?
 -Nêu các nhiệm vụ chính cần thực hiện khi giải quyết bài toán.
 -Cấu trúc dữ liệu phải sử dụng ntn?
 -Sử dụng hàm nào?
HS: Nghe và trả lời:
 -Input: Một xâu S;
 Output: Dãy các số ứng với sự xuất hiện của mỗi loại kí tự trong xâu.
 -Thuật tóan: Duyệt từ trái sang phải, thêm moat đơn vị cho kí tự đọc được.
 -Cấu trúc dữ liệu: Dem[‘A’ . . ‘Z’]
 -Dùng hàm: Upcase(ch); Length(S)
GV: Hướng dẫn HS viết chương trình
HS: Viết chương trình trên máy.
Bài 2: (SGK tr.73)
Chương trình hòan chỉnh:
var Dem:array['A'..'Z'] of integer;
 S:string;
 ch: char;
 i, k: integer;
Begin
 write('Nhap xau S:'); readln(S);
 for ch:='A' to 'Z' do Dem[ch]:=0;
 k:= length(S);
 for i:=1 to k do
 if ('A' <= upcase(S[i])) and (upcase(S[i]) <= 'Z') then 
 begin
 ch:= upcase(s[i]);
 Dem[ch]:= Dem[ch] + 1;
 end;
 for ch :='A' to 'Z' do
 if Dem[ch] 0 then writeln(ch,': ', Dem[ch]);
 readln
end.
4.Tổng kết nội dung, đánh giá cuối bài: 
	-Thuật toán Tìm số lần xuất hiện của các kí tự trong xâu;
	-Giải bài 2 bằng cách khác như sau:
var dem:array[65..90] of integer;
 s:string;
 i, k: integer;
begin
 write('Nhap xau s:'); 
 readln(s);
 for i:=65 to 90 do 
 dem[i]:=0;
 k:= length(s);
 for i:=1 to k do
 if ('A' <= upcase(s[i])) and (upcase(s[i]) <= 'Z') then
 dem[ord(upcase(s[i]))] := dem[ord(upcase(s[i]))] +1;
 for i:= 65 to 90 do
 if dem[i] 0 then writeln(chr(i),': ',dem[i]);
 readln
end.
5.Dặn dò, kế hoạch học tập tiết sau: 
-Bài 3 SGK tr.73: GV hướng dẫn HS về nhà làm:
GV hướng dẫn dàn ý:
{Phần khai báo}
Begin
 {Nhập xâu S}
 Chừng nào còn tìm thấy xâu con ‘anh’ trong xâu S còn làm ba việc sau:
 -Tìm vị trí bắt đầu của xâu ‘anh’;
 -Xóa xâu ‘anh’ vừa tìm thấy;
 -Chèn xâu ‘em’ vào xâu S tại vị trí
 trước nay xuất hiện xâu ‘anh’;
 {in xâu S kết quả}
End.
Chương trình như sau:
var vt : byte;
 S : string;
Begin
 write(‘Nhap vao mot xau S’);
 readln(S);
 while pos(‘anh’, S) do
 begin
 vt:= pos(‘anh’, S);
 Delete(S, vt, 3);
 Insert(‘em’, S, vt);
 end;
 write(S);
 readln
End.
-Xem lại tất cả các kiến thức đã học;
-Xem trước bài: Kiểu bản ghi.
IV. NHỮNG VẤN ĐỀ CẦN RÚT KINH NGHIỆM:
ĐỀ TRẮC NGHIỆM TIN HỌC LỚP 11 (15PHÚT)
Câu 1: Cho đoạn chương trình sau:
Begin
x:=a;
if a<b then x:=a;
end.
Cho a=20, b=15. x nhận giá trị nào sau đây?
a/ 10 	b/ 20 	c/ 25 	d/ 15
Câu 2: Cho đoạn chương trình sau:
i:=1 ; M:= 0;
while i<10 do
begin
M:=M+2;
i:=i+1;
end.
M nhận giá trị nào sau đây?
a/ 10 	b/ 18 	c/ 14	d/ 20
Câu 3: Cấu trúc câu lệnh if-then là:
a/ if then 
b/ if then else 
c/ a, b đều đúng.
d/ a, b đều sai.
Câu 4: Chọn câu sai:
a/ Trong câu lệnh rẽ nhánh điều kiện là biểu thức lơgic.
b/ Cấu trúc rẽ nhánh dùng để mơ tả cấu trúc lặp.
c/ Trong câu lệnh while-do câu lệnh sau do sẽ được thực hiện ít nhất một lần.
d/ Câu lệnh, câu lệnh1, câu lệnh2 trong câu lệnh if-then là một câu lệnh của ngơn ngữ pascal.
Câu 5: Điền vào chỗ trống dưới đây để được đoạn chương trình tìm giá trị lớn nhất trong 2 số a và b:
Begin
if b>a then max:=b;
end.
a/ if b<=a then max:=a;	b/ else max:=a;	c/ a, b đúng.	d/ a, b sai.
Câu 6: Cho đoạn chương trình sau:
T:= 0
For i:=1 to 100 do
If (I mod 2 = 0) and (I mod 3 = 0) then T:= T+i;
Chọn câu đúng:
a/ Chương trình đưa ra tổng các số tự nhiên từ 1 đến 100.
b/ Chương trình đưa ra tổng các số tự nhiên chia hết cho 6.
c/ Chương trình đưa ra tổng các số tự nhiên chia hết cho 6 trong phạm vi từ 1 đến 100.
d/ a, b, c đều đúng.
Câu 7: Chọn câu đúng:
a/ Cĩ thể tổ chức mọi loại chu trình với câu lệnh while-do.
b/ Trong lệnh while-do sau từ khĩa do được phép viết nhiều câu lệnh.
c/ Trong lệnh while-do sau từ khĩa do cĩ thể là một lệnh while-do.
d/ a, b, c đều đúng.
Câu 8: Cho đoạn chương trình sau:
If a=3 then x:=y+2
Chọn câu đúng:
a/ a=2; y=3; x=5	b/ a=1; y=6; x=8	c/ a=3 y=4; x=6	d/ a, b, c đều đúng.
Câu 9: Cho bài tốn: tính tổng và đếm các số tự nhiên chia hết cho 3 trong phạm vi từ 1 đến 100.
S:=0; dem:=0
For i:=1 to 100 do
If .. then
S:=S+1; .
end;
Chọn câu đúng điền vào chỗ trống ở trên.
a/ i mod 3 = 0; begin; dem:=dem+1	b/ i div 3 = 0; dem:=dem+1; begin
c/ i mod 3 0; dem:=dem+1; begin	d/ a, b, c đều đúng
Câu 10: Cho A, B, X là các biến số thực. Chọn câu đúng:
a/ if A<B; then X:=X+1;	b/ if A<B then X:=A+B;
c/ f A<B then X:=A; else X:=B;	d/ i if A<B then X:=A else X:=B;
ĐÁP ÁN ĐỀ TRẮC NGHIỆM 15PHÚT:
Câu1
Câu2
Câu3
Câu4
Câu5
Câu6
Câu7
Câu8
Câu9
Câu10
a
x
x
b
x
x
x
c
x
x
x
d
x
x

File đính kèm:

  • docBT va TH 5_T27-28.doc