Gi¸o ¸n Tin häc 11 Gi¸o viªn: §ç Vò HiÖp Tuần: 12 Tiết: 12 --------------------------------------------------------------------------------------------------------------------------- Ngày soạn: 18/11/2007 Ngày dạy: Lớp: Chương III: Cấu trúc rẽ nhánh và lặp §10. Cấu trúc lặp I. Mục đích, yêu cầ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; Hiểu cấu trúc lặp với số lần biết trước; Viết được thuật toán của một số bài toán đơn giản. 2. Kỹ năng Biết diễn đạt đúng câu lệnh lặp với số lần lặp biết trước; Bước đầu có khả năng phân tích bài toán đơn giản để áp dụng cấu trúc lặp; Biết tạo câu lệnh ghép khi cần thiết. 3. Thái độ: Tiếp tục tạo sự ham muốn giải các bài tập bằng lập trình trên máy tính; Rèn luyện phẩm chất cần thiết của người lập trình như: xem xét giải quyết vấn đề một cách cẩn thận, chu đáo, có sáng tạo, không thỏa mãn kết quả ban đầu đạt được. II. Phương pháp - phương tiện dạy học: Thuyết trình, nêu câu hỏi, gợi mở, tóm tắt và ghi ý chính; Giáo viên chuẩn bị: Giáo án, phòng máy nối mạng LAN, cài đặt Turbo Pascal; Học sinh chuẩn bị: Đọc trước nội dung bài, sách giáo khoa, vở ghi. III. NộI dung dạy – học: Nội dung bài giảng Hoạt động của thầy Hoạt động của trò Ổn định lớp; Ghi sổ đầu bài. Chào thầy. Cán bộ lớp báo sĩ số. 1. Lặp Trong một số thuật toán, có những thao tác phải thực hiện lặp đi lặp lại một số lần. Cấu trúc lặp mô tả thao tác lặp và phân biệt 2 loại: lặp với số lần biết trước và lặp với số lần chưa biết trước. Mọi ngôn ngữ lập trình đều có các câu lệnh để mô tả cấu trúc lặp. Ghi tên bài. Yêu cầu HS đọc sách và nêu sự khác biệt giữa 2 bài toán. Nhận xét câu trả lời của HS, chốt lại ý chính. Mở sách giáo khoa, vở ghi, ghi bài. Lắng nghe, đọc sách, trả lời. Lắng nghe, quan sát, ghi bài. 2. Lặp với số lần biết trước và câu lệnh for - do Bài toán: Tính tổng 100 1 . 3 1 2 1 1 ++++= S Để mô tả cấu trúc lặp với số lần biết trước, Pascal dùng câu lệnh lặp for – do với 2 dạng: Nêu bài toán đặt vấn đề. Phân tích bài toán: Khởi tạo giá trị cho S = 1; sau đó với i nhận giá trị lần lượt tăng từ 2 đến 100 thì giá trị của S lần lượt được tăng thêm 1/i Lắng nghe, quan sát, ghi bài. Gi¸o ¸n Tin häc 11 Gi¸o viªn: §ç Vò HiÖp Nội dung bài giảng Hoạt động của thầy Hoạt động của trò a) Dạng tiến for <biến đếm>:=<giá trị đầu> to <giá trị cuối> do <câu lệnh>; Ví dụ: S:= 1; for i:=2 to 100 do S := S + 1/i; b) Dạng lùi for <biến đếm>:=<giá trị cuối> downto <giá trị đầu> do <câu lệnh>; Ví dụ: S:= 1; for i:=100 downto 2 do S:=S+1/i; Trong đó: - biến đếm: là biến đơn có kiểu nguyên hoặc kiểu kí tự; - giá trị đầu, giá trị cuối: là biểu thức cùng kiểu với biến đếm và giá trị đầu phải nhỏ hơn hoặc bằng giá trị cuối; - Dạng tiến:Với biến đếm lần lượt nhận các giá trị liên tiếp tăng từ giá trị đầu đến giá trị cuối, thì câu lệnh được thực hiện tuần tự. - Dạng lùi: Với biến đếm lần lượt nhận các giá trị liên tiếp giảm từ giá trị cuối đến giá trị đầu, thì câu lệnh được thực hiện tuần tự. Chú ý: Giá trị của biến đếm được điều chỉnh tự động, vì vậy câu lệnh sau do không được thay đổi giá trị của biến đếm. Thuyết trình cấu trúc lặp, kết hợp nêu ví dụ minh họa. Cấu trúc lặp với số lần biết trước dạng lùi? Nhận xét, chốt lại ý chính. Viết câu lệnh lặp với số lần biết trước dạng lùi để tính tổng của bài toán trên? Nhận xét, chốt lại câu trả lời. Thuyết trình, đặt câu hỏi gợi mở, vấn đáp. Nêu hoạt động của lệnh for – do dạng tiến? Nhận xét, chốt lại ý chính. Nêu hoạt động của lệnh for – do dạng lùi? Nhận xét, chốt lại ý chính. Lắng nghe, quan sát, ghi bài. Lắng nghe, đọc sách, trả lời. Lắng nghe, quan sát, ghi bài. Xung phong trả lời. Lắng nghe, quan sát, ghi bài. Lắng nghe, quan sát, trả lời câu hỏi; ghi bài. Đọc sách, trả lời. Lắng nghe, quan sát, ghi bài. Đọc sách, trả lời. Lắng nghe, quan sát, ghi bài. IV. Củng cố: Cấu trúc câu lệnh for – do dạng tiến? Hoạt động của nó như thế nào? Cấu trúc câu lệnh for – do dạng lùi? Hoạt động của nó như thế nào? V. Dặn dò: Học kỹ nội dung bài hôm nay; xem nội dung các ví dụ áp dụng trong sgk trang 44-45; Làm bài tập:5.a trang 51 sách giáo khoa. VI. Rút kinh nghiệm: . . Gi¸o ¸n Tin häc 11 Gi¸o viªn: §ç Vò HiÖp Tuần: 13 Tiết: 13 --------------------------------------------------------------------------------------------------------------------------- Ngày soạn: 21/11/2007 Ngày dạy: Lớp: Chương III: Cấu trúc rẽ nhánh và lặp §10. Cấu trúc lặp I. Mục đích, yêu cầ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; Hiểu cấu trúc lặp với số lần biết trước; Viết được thuật toán của một số bài toán đơn giản. 2. Kỹ năng Biết diễn đạt đúng câu lệnh lặp với số lần lặp biết trước; Bước đầu có khả năng phân tích bài toán đơn giản để áp dụng cấu trúc lặp; Biết tạo câu lệnh ghép khi cần thiết. 3. Thái độ: Tiếp tục tạo sự ham muốn giải các bài tập bằng lập trình trên máy tính; Rèn luyện phẩm chất cần thiết của người lập trình như: xem xét giải quyết vấn đề một cách cẩn thận, chu đáo, có sáng tạo, không thỏa mãn kết quả ban đầu đạt được. II. Phương pháp - phương tiện dạy học: Thuyết trình, nêu câu hỏi, gợi mở, hoạt động nhóm, tóm tắt và ghi ý chính; Giáo viên chuẩn bị: Giáo án, phòng máy nối mạng LAN, cài đặt Turbo Pascal; Học sinh chuẩn bị: Đọc trước nội dung bài, sách giáo khoa, vở ghi. III. NộI dung dạy – học: Nội dung bài giảng Hoạt động của thầy Hoạt động của trò Ổn định lớp; Ghi sổ đầu bài. Chào thầy. Cán bộ lớp báo sĩ số. Bài cũ: Viết cú pháp lệnh for – do dạng tiến và dạng lùi và nêu hoạt động của lệnh? Nêu câu hỏi. Gọi HS lên viết bảng trả lời. Gọi HS nhận xét. Nhận xét, sửa bài, cho điểm. Lắng nghe. Lên bảng trả lời. Nhận xét. 2. Lặp với số lần biết trước và câu lệnh for - do Ví dụ 1: Chương trình tính tổng: 100 1 . 2 1 1 11 + ++ + + + += aaaa S a. Áp dụng dạng For tiến: Program Tong_1; Uses crt; Var S: real; a, N: integer; Begin Clrscr; Write(‘Nhap gia tri cua a: ‘); Readln(a); S := 1.0/a; For N := 1 to 100 do S := S + 1.0 / (a+N); Nêu ví dụ 1, phân tích bài toán dựa vào thuật toán Tong_1a trong sách giáo khoa trang 43. Áp dụng lệnh For tiến để viết câu lệnh thực hiện tính tổng trên như thế nào? Trình bày chương trình áp dụng dạng For tiến, kết hợp giảng và nêu câu hỏi gợi mở để trả lời. Cần khai báo những biến nào? Kiểu dữ liệu của biến là gì? Vì sao? Lệnh thông báo nhập giá trị cho biến a và lệnh nhập giá trị cho biến a như thế nào? Lắng nghe, đọc sách, ghi bài. Lắng nghe, quan sát, trả lời. Chú ý lắng nghe, quan sát, trả lời và ghi bài. Gi¸o ¸n Tin häc 11 Gi¸o viªn: §ç Vò HiÖp Nội dung bài giảng Hoạt động của thầy Hoạt động của trò Writeln(‘Tong la: S = ‘,S:8:4); Readln End. b. Áp dụng dạng For lùi: Program Tong_2; Uses crt; Var S: real; a, N: integer; Begin Clrscr; Write(‘Nhap gia tri cua a: ‘); Readln(a); S := 1.0/a; For N := 100 downto 1 do S := S + 1.0 / (a+N); Writeln(‘Tong la: S = ‘,S:8:4); Readln End. Lệnh xuất kết quả ra màn hình? Các em gấp sách vở lại, lấy giấy nháp ra thực hiện viết chương trình áp dụng dạng For lùi tính tổng này. Quan sát và hướng dẫn HS thực hiện. Gọi 1 HS lên viết chương trình trên bảng. Gọi HS nhận xét, bổ sung. Nhận xét, sửa bài, cho điểm. Viết chương trình tính tổng áp dụng dạng for lùi. Đặt câu hỏi để được hướng dẫn. Viết chương trình, quan sát. Nhận xét, bổ sung. Lắng nghe, quan sát, ghi bài. Ví dụ 2: Chương trình thực hiện nhập từ bàn phím hai số nguyên dương M và N (M<N), tính và đưa ra màn hình tổng các số chia hết cho 3 hoặc 5 trong phạm vi từ M đến N. Program Vi_du_2; Uses crt; Var M, N, i: integer; T: longint; Begin Clrscr; Writeln(‘Nhap so M < N’); Write(‘M = ‘); Readln(M); Write(‘N = ‘); Readln(N); T := 0; For i := M To N Do If (i mod 3=0)or(i mod 5=0) then T := T + i; Writeln(‘Ket qua: ‘,T); Readln End. Nêu ví dụ 2. Phân tích bài toán, dẫn dắt đi đến áp dụng câu lệnh tương ứng để viết chương trình. Cần có một biến đếm chạy từ M đến N, kiểm tra nếu biến đếm chia hết cho 3 hoặc 5 thì cộng giá trị của biến đếm vào biến tổng. Như vậy, ta cần áp dụng những lệnh nào để giải quyết việc này? Gọi HS lên viết đoạn chương trình thực hiện việc trên. Nhận xét, sửa lại cho đúng. Từ đó, các em hãy hoạt động theo nhóm, suy nghĩ để viết chương trình thực hiện bài toán này. Gọi đại diện mỗi nhóm 1 em lên trình bày bài làm. Nhận xét, chốt lại chương trình đúng. Lắng nghe, ghi bài. Chú ý lắng nghe. Trả lời câu hỏi: Lệnh for – do và lệnh if – then. Xung phong lên viết đoạn chương trình theo yêu cầu. Quan sát, lắng nghe. Hoạt động nhóm, viết chương trình sau đó lên trình bày. Lắng nghe, quan sát, ghi bài. IV. Củng cố: Cách diễn đạt và vận dụng câu lệnh lặp for – do vào bài toán cụ thể. V. Dặn dò: Xem trước nội dung phần 3. của bài 10 trang 45 – 48; Làm các bài tập 1 – 6 trang 50 – 51 sách giáo khoa. VI. Rút kinh nghiệm: . . Gi¸o ¸n Tin häc 11 Gi¸o viªn: §ç Vò HiÖp Tuần: 14 Tiết: 14 --------------------------------------------------------------------------------------------------------------------------- Ngày soạn: 30/11/2007 Ngày dạy: Lớp: Chương III: Cấu trúc rẽ nhánh và lặp §10. Cấu trúc lặp I. Mục đích, yêu cầ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; Hiểu cấu trúc lặp kiểm tra điều kiện trước; Biết cách vận dụng đúng từng loại cấu trúc lặp vào tình huống cụ thể. 2. Kỹ năng Biết diễn đạt đúng câu lệnh lặp kiểm tra điều kiện trước; Bước đầu có khả năng phân tích bài toán đơn giản để áp dụng cấu trúc lặp; Biết tạo câu lệnh ghép khi cần thiết. 3. Thái độ: Tiếp tục tạo sự ham muốn giải các bài tập bằng lập trình trên máy tính; Rèn luyện phẩm chất cần thiết của người lập trình như: xem xét giải quyết vấn đề một cách cẩn thận, chu đáo, có sáng tạo, không thỏa mãn kết quả ban đầu đạt được. II. Phương pháp – phương tiện dạy học: Thuyết trình, nêu câu hỏi, gợi mở, tóm tắt và ghi ý chính; Giáo viên chuẩn bị: Giáo án, phòng máy nối mạng LAN, cài đặt Turbo Pascal; Học sinh chuẩn bị: Đọc trước nội dung bài, sách giáo khoa, vở ghi. III. NộI dung dạy – học: Nội dung bài giảng Hoạt động của thầy Hoạt động của trò Ổn định lớp; Ghi sổ đầu bài. Chào thầy. Cán bộ lớp báo sĩ số. Bài cũ: Viết chương trình tính tổng: 100 1 . 2 1 1 11 + ++ + + + += aaaa S Nêu câu hỏi. Gọi HS lên bảng viết chương trình. Nhận xét, sửa bài, cho điểm. Lắng nghe, quan sát, lên bảng trả lời. 3. Lặp với số lần chưa biết trước và câu lệnh while - do Bài toán: Tính tổng . 1 . 2 1 1 11 + + ++ + + + += Naaaa S cho đến khi .0001,0 1 < + Na Thuật toán: Bước 1: S←1/a; N←0; Bước 2: Nếu 1/(a+N)<0,0001 thì chuyển đền bước 5; Bước 3: N←N+1; Bước 4: S←S+1/(a+N); rồi quay lại bước 2; Bước 5: Xuất S ra MH rồi kết thúc. Nêu bài toán đặt vấn đề. Nêu thuật toán giải bài toán trên. Như vậy, việc lặp với số lần chưa biết trước chỉ kết thúc khi một điều kiện cho trước nhận giá trị là gì? Cấu trúc lặp với số lần chưa biết Lắng nghe, quan sát, ghi bài. Lắng nghe, quan sát, ghi bài. Trả lời: Nhận giá trị đúng. Lắng nghe, đọc sách, Gi¸o ¸n Tin häc 11 Gi¸o viªn: §ç Vò HiÖp Nội dung bài giảng Hoạt động của thầy Hoạt động của trò Để mô tả cấu trúc lặp với số lần chưa biết trước, Pascal dùng câu lệnh lặp while – do có dạng: while <điều kiện> do <câu lệnh>; Trong đó: - điều kiện: biểu thức lôgic; - câu lệnh: là lệnh đơn hoặc lệnh ghép trong Pascal. Ví dụ: S := 1/a; N := 0; while 1/(a+N) >= 0.0001 do begin N := N+1; S := S+1/(a+N); end; Sơ đồ khối: Hoạt động: Trong khi điều kiện còn đúng thì câu lệnh còn được thực hiện. Ví dụ 1: Chương trình tính tổng trên. Program Tong_3; Uses crt; Var S: real; a, N: integer; Begin Write(‘Hay nhap gia tri cho a’); Readln(a); S := 1/a; N := 0; While 1/(a+N) >= 0.0001 do Begin N := N+1; S := S+1/(a+N); End; Writeln(‘Tong S = ‘,S:8:4); Readln End. Ví dụ 2: Tìm ước chung lớn nhất (UCLN) của hai số nguyên dương M và N. (Sgk_trang 47-48) trước trong Pascal như thế nào? Nhận xét, chốt lại ý chính. Viết câu lệnh lặp với số lần chưa biết trước để tính tổng của bài toán trên? Nhận xét, chốt lại câu trả lời đúng. Dựa vào sơ đồ khối hãy nêu hoạt động của lệnh lặp với số lần chưa biết trước while – do? Nhận xét, chốt lại ý chính. Bây giờ, các em hãy gấp sách lại, hoạt động theo nhóm viết chương trình giải bài toán trên. Quan sát, hướng dẫn HS hoạt động, trao đổi viết chương trình. Gọi đại diện các nhóm lên trình bày bài làm của nhóm mình. Gọi HS nhận xét bài làm của từng nhóm. Nhận xét, chốt lại ý chính. Yêu cầu HS đọc sách xem lại thuật toán, sơ đồ khối của bài toán sau đó suy nghĩ viết chương trình. trả lời. Lắng nghe, quan sát, ghi bài. Xung phong trả lời. Lắng nghe, quan sát, ghi bài. Lắng nghe, quan sát, trả lời câu hỏi; ghi bài. Lắng nghe, quan sát, ghi bài. Lắng nghe, hoạt động nhóm. Đại diện nhóm lên trình bày bài. Quan sát, lắng nghe, nhận xét. Lắng nghe, quan sát, ghi bài. Lắng nghe, quna sát, đọc sách, viết chương trình. IV. Củng cố: Cấu trúc rẽ nhánh dạng thiếu; dạng đủ; Câu lệnh ghép; Cấu trúc lặp với số lần biết trước; lặp với số lần chưa biết trước. Đúng Câu lệnh Sai Điều kiện Gi¸o ¸n Tin häc 11 Gi¸o viªn: §ç Vò HiÖp Định lý bohn Jacopini: Mọi quá trình tính toán đều có thể mô tả và thực hiện dựa trên ba cấu trúc cơ bản là: cấu trúc tuần tự; cấu trúc rẽ nhánh và cấu trúc lặp. V. Dặn dò: Học kỹ nội dung bài 10; Làm các bài tập 7, 8 trang 51 sách giáo khoa; Ôn tập kỹ các nội dung trọng tâm đã học trong học kì I. Trả lời các câu hỏi trắc nghiệm do giáo viên phát. Tiết sau ôn tập học kì I. VI. Rút kinh nghiệm: . . . Gi¸o ¸n Tin häc 11 Gi¸o viªn: §ç Vò HiÖp Tuần: 12 Tiết: 12 ---------------------------------------------------------------------------------------------------------------------------. . Gi¸o ¸n Tin häc 11 Gi¸o viªn: §ç Vò HiÖp Tuần: 14 Tiết: 14 ---------------------------------------------------------------------------------------------------------------------------