I. MUCH ĐÍCH, YÊU CẦU
1. Về 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, cấu trúc lặp với số lần định trước.
Biết cách vận dụng đúng đắn từng loại cấu trúc lặp vào tình huống cụ thể.
2. Về kĩ năng
Mô tả được thuật toán của một số bài toán đơn giản có sử dụng lệnh lặp.
Viết đúng các lệnh kiểm tra điều kiện trước, lệnh lặp với số lần định trước.
Viết được thuật toán giải một số bài toán đơn giản.
Bài 10. CẤU TRÚC LẶP (tiết 1) Ngày soạn: Ngày giảng: Người soạn: Lê Thị Hương Gv hướng dẫn: Nguyễn Văn Trường I. MUCH ĐÍCH, YÊU CẦU Về 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, cấu trúc lặp với số lần định trước. Biết cách vận dụng đúng đắn từng loại cấu trúc lặp vào tình huống cụ thể. Về kĩ năng Mô tả được thuật toán của một số bài toán đơn giản có sử dụng lệnh lặp. Viết đúng các lệnh kiểm tra điều kiện trước, lệnh lặp với số lần định trước. Viết được thuật toán giải một số bài toán đơn giản. II. PHƯƠNG PHÁP VÀ PHƯƠNG TIỆN DẠY HỌC Phương pháp: thuyết trình, giảng giải, đàm thoại, trực quan, gợi mở vấn đề Phương tiện: Giáo án, sgk, sgv, bảng phụ mô tả 2 thuật toán Tong_1a và Tong_2a bằng phương pháp liệt kê. III. NỘI DUNG CHƯƠNG TRÌNH Ổn định tổ chức lớp Lớp: Vắng: Sĩ số: Có phép: Không phép: Kiểm tra bài cũ Câu hỏi: Em hãy lên bảng trình bày cấu trúc của câu lệnh If-then và dùng câu lệnh đó để biểu diễn mệnh đề sau: (10đ) Nếu b> a thì số lớn nhất là b, ngược lại số lớn nhất là a. Trả lời: Cấu trúc của câu lệnh if-then Dạng thiếu: if then ; Dạng đủ: if then else ; If b> a then max:=b else max:=a; 3. bảng phân phối thời gian STT Nội dung Thời gian 1 Ổn định tổ chức lớp 1’ 2 Kiểm tra bài cũ 5’ 3 Lặp 15’ 4 Lặp với số lần biết trước và câu lệnh For-Do 20’ 5 Củng cố, dặn dò 2’ 4. Bài mới Đặt vấn đề: Để in ra màn hình 10 dòng chữ “Thi dua dạy tốt, học tập tốt” ta phải làm thế nào? Học sinh trả lời: ta phải dùng 10 câu lệnh writeln(‘Thi đua dạy tốt học tập tốt’); GV: Nếu chương trình viết đi viết lại các câu lệnh thực hiện những câu lệnh trên thì rõ ràng là không thuận tiện dễ dẫn tới nhàm chán. Vì thế ngôn ngữ lập trình đưa ra cấu trúc điều khiển lặp, chỉ cần viết câu lệnh thực hiện viêc in ra một dòng chữ sau đó cho phép chương trình tự thực hiện việc việc lặp lại các câu lệnh để in ra các dòng tiếp theo. BÀI 10. CẤU TRÚC LẶP Hoạt động của GV Hoạt động của HS 1.Lặp Gv: Với a là số nguyên dương và a> 2, xét các bài toán sau đây: Bài toán 1: Tính và đưa kết quả ra màn hình tổng: S= Bài toán 2: Tính và đưa kết qủa ra màn hình tổng S= Cho đến khi Gv: Hai dãy số trên sẽ cho kết quả cụ thể khi ta thay bất kỳ một giá trị nào của a, thỏa mãn yêu cầu của bài toán. Gv: Việc tính tổng S trong 2 bài toán trên được thực hiện như sau: - Xuất phát S được gán giá trị - Tiếp theo cộng vào tổng S một giá trị =, với N=1, 2, 3, Gv: Em nào hãy cho cô biết việc cộng vào tổng S ở bài toán 1 được lặp đi lặp lại bao nhiêu lần ? Gv: Vậy việc cộng vào tổng S sẽ kết thúc khi nào? Gv: Đúng vậy, đối với bài toán 1 số lần lặp là biết trước, việc tính lặp sẽ chấm dứt khi số lần lặp đã được thực hiện đủ 100. Đây là lặp đã biết trước số lần lặp. Gv: Tương tự trên thì em nào hãy cho cô biết việc cộng vào tổng S ở bài toán 2 được lặp đi lặp lại bao nhiêu lần ? Gv: Vậy việc cộng vào tổng S sẽ kết thúc khi nào ? Gv: Đúng vậy, chúng ta không thể biết được số lần lặp là bao nhiêu. Tuy nhiên việc cộng vào tổng S sẽ kết thúc khi điều kiện được thoả mãn. Đó gọi là lặp chưa biết trước số lần lặp. Gv: -Trong một chương trình có những thao tác, những công việc, những câu lệnh được lặp đi lặp lại gọi là lặp - Cấu trúc lặp mô tả thao tác lặp và được phân làm 2 loại là lặp với số lần biết trước (hữu hạn) và lặp với số lần chưa biết trước. Gv: Để tìm hiểu cấu trúc và hoạt động của câu lệnh lặp ta chuyển sang phần 2 2. Lặp với số lần biết trước và câu lệnh for-do. Gv: Có 2 thuật toán Tong_1a và Tong_1b để giải bài toán 1 như sau: Gv: Các em quan sát bảng phụ mô tả 2 thuật toán bằng phương pháp liệt kê như sau Gv: Giải thích theo từng bước trong thuật toán Gv: Trong thuật toán Tong_1a, giá trị N khi bắt đầu tham gia vòng lặp là 1 và sau mỗi lần lặp N tăng lên 1 cho đến khi N> 100 (N=101) thì kết thúc lặp (thực hiện đủ 100 lần). Như vậy giá trị biến điều khiển N cho biết số lần lặp ( khi 1< N< 100 thì thực hiện lặp, sau khi lặp lần thứ 100 thì kết thúc lặp). Gv: Như vậy, em nào có thể cho cô biết trong thuật toán này những bước nào được lặp đi lặp lại? Gv: Yêu cầu học sinh so sánh thuật toán Tong_1a với thuật toán Tong_1b để trả lời các câu hỏi sau: - Giá trị N khi bắt đầu tham gia vòng lặp là bao nhiêu ? sau mỗi lần lặp thì giá trị cua N thay đổi như thế nào? Khi nào thì kết thúc lặp? Gv: Trong thuật toán Tong_1b này thì những bước nào được lặp đi lặp lại? Gv: Đưa ra nhận xét và kết luận Gv: Ta nói cách lặp trong thuật toán Tong_1a là dạng tiến và trong thuật toán Tong_1b là dạng lùi Gv: Để 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 tiến và lùi như sau a) Cấu trúc * Dạng lặp tiến For:= to do ; VD: s:=1; for i:=2 to 100 do s:= s+1; * Dạng lặp lùi For := downto do ; VD: s:=1; for i:=100 downto 2 do s:=s+; Trong đó: - For, to, downto, do là các từ khóa. - , có cùng kiểu dữ liệu và là kiểu vô hướng đếm đựơc (Integer, byte, kí tự, lô gic). phải bé hơn hoặc bằng - có thể là một câu lệnh đơn hoặc một câu lệnh ghép. - Giá trị 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ị biến đếm b) Hoạt động của câu lệnh * Dạng lặp tiến - B1: Biến đếm nhận gtđ - B2: Kiểm tra điều kiện( Biến đếm <= gtc hay không?) - B3: Nếu điều kiện ở B2 đúng thì câu lệnh sau Do được thực hiện và 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. Ngược lại thì thoát khỏi vòng For- do và thực hiện câu lệnh sau For - do (nếu có). * Dạng lặp lùi - B1: Biến đếm nhận gtc - B2: Kiểm tra điều kiện (Biến đếm >= gtđ hay không?) - B3: Nếu điều kiện ở B2 đúng thì câu lệnh sau Do được thực hiện và 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. Ngược lại thì thoát khỏi vòng For - Do và thực hiện câu lệnh sau For - Do (nếu có) * Chú ý - Số lần lặp = giá trị cuối – giá trị đầu +1. - Giá trị cuối >= giá trị đầu thì câu lệnh For mới thực hiện được. Gv: Sau đây là 2 chương trình cài đặt các thuật toán Tong_1a và Tong_1b Gv: Các em chú ý vào sgk cô sẽ giải thích một số câu lệnh trong chương trình. Gv: Giải thích các câu lệnh tương ứng với các bước trong thuật toán bằng cách liệt kê đã nêu ở trên. Gv: các em về nhà xem ví dụ 2 hôm sau cô sẽ kiểm tra - HS: Ghi bài - HS: Lắng nghe - HS: Ghi bài - HS trả lời: Lặp lại 100 lần - HS trả lời: Khi thực hiện việc cộng đủ 100 lần. - HS trả lời: Không biết trước được - HS trả lời: Kết thúc khi điều kiện được thoả mãn. - HS: Quan sát, Lắng nghe và phân tích thuật toán. - HS trả lời: bước 2, bước 3 và bước 4 - HS trả lời: Giá trị N khi bắt đầu tham gia vòng lặp là 100 và sau mỗi lần lặp N giảm đi 1 cho đến khi N < 1 (N=0) thì kết thúc lặp (thực hiện đủ 100 lần) - HS: bước 2, bước 3, bước 4 - HS: Lắng nghe - HS: Ghi bài - HS: Ghi bài - HS: Ghi bài - HS: Ghi bài - HS: Quan sát và lắng nghe GV giải thích - HS: Lắng nghe và phân tích - HS: Lắng nghe IV. Củng cố, dặn dò 1. Củng cố. - Bài hôm nay cô đã giới thiệu cho các em một câu lệnh có cấu trúc mới: For- Do. Các em cần nắm chắc cú pháp- cách thức làm việc của câu lệnh For- Do. - Cú pháp và cách thức làm việc của 2 dạng lặp tương tự giống nhau 2. Bài tập về nhà. Các em về nhà làm các bài tập trong sgk và các bài tập trong SBT ( 3.29, 3.31, 3.33) và đọc trước phần 3- Lặp với số lần chưa biết trước và câu lệnh while-do 3. Bài tập làm thêm. Nhập vào một số nguyên dương n rồi tính: S1:= 1+3+5+7++(2*n+1). S2:= 13+23+33++n3. NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Tài liệu đính kèm: