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.
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:
- BT va TH 5_T27-28.doc