chương trình chú ý nhiều đến lệnh lặp GV: Đưa ra thuật toán hoặc có thể yêu cầu học sinh tự xây dựng thuật toán giải bài toán 2, nếu tự xây dựng được thuật toán thì các em sẽ hiểu hơn về[r]
(1)Ngày sọan: Tiết PPCT: Tuần: Bài 10: CẤU TRÚC LẶP Mục tiêu Kiến thức: Hiểu nhu cầu cấu trúc lặp 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 cấu trúc lặp vào tình cụ thể Kĩ năng: Mô tả thuận toán số bài toán đơn giản có sử dụng lệnh lặp Viết đúng các lệnh lặp kiểm tra điều kiện trước, lệnh lặp với số lần định trước Viết thuật toán số bài toán đơn giản Thái độ: Phương pháp và phương tiện dạy học Phương pháp: Thuyết trình, vấn đáp, thảo luận nhóm Phương tiện: SGK , bảng, phấn, Slide bài giảng Hoạt động dạy – học Ổn định lớp, kiểm tra sỉ số Kiểm tra bài cũ: Câu 1: Nêu cú pháp và hoạt động câu lệnh if-then dạng thiếu và đủ x , neu x la so chan y x 1, neu x la so le Câu 2: Viết câu lệnh rẽ nhánh để tính Nội dung bài mới: Nội dung chính Hoạt động giáo viên và học sinh Khái niệm lặp GV: Đưa bài toán, yêu cầu học sinh tìm - Xét bài toán sau với a>2 là số nguyên cho cách để lập trình giải các bài toán này trước: HS: Đưa cách giải mình, học sinh có thể đưa cách giải khác Bài toán 1: Tính tổng GV: Đưa cách giải cho bài toán 1 1 S1 Giải theo các lệnh a a 1 a a 100 S1: = 0; Bài toán 2: Tính tổng If(1/a>0,0001) then S1: = S1+ 1/a; 1 1 If(1/(a+1)>0.0001) then S1: = S1+1/(a+1); aN S2 = a a a If(1/(a+2)>0.0001) then S1: = S1+1/(a+2); If(1/(a+3)>0.0001) then S1: = S1+1/(a+3); 0.0001 a N … với điều kiện HS: Nhận xét với việc giải bài toán theo cách Cách giải: đó? - Bắt đầu S gán giá ttrị 1/a - Tiếp theo lần cộng thêm vào S là 1/(a+N) với Với N = 100 thì lặp 100 lần theo việc kiểm tra điều kiện thì không biết N = 1, 2, 3, 4, … - Với bài toán 1, việc cộng thêm dừng 1/(a+N) < phải làm theo cách nào? Theo hai trường hợp thì quá dài 0.0001, số lần lặp chưa biết trước - Với bài toán 2, việc cộng thêm dừng N = 100, Để học sinh hiểu khái niệm lặp, giáo Lop11.com (2) số lần lặp đã biết trước Trong lập trình, có thao tác phải lặp lại nhiều lần, đó ta gọi là cấu trúc lặp Lặp thường có loại: - Lặp với số lần biết trước - Lặp với số lần không biết trước NNLT nào cung cấp số câu lệnh để mô tả các cấu trúc lặp trên Sau đây chúng ta tìm hiểu các câu lệnh lặp ngôn ngữ Pascal Lặp có số lần biết trước và câu lệnh for – Trong Pascal, có loại câu lệnh lặp có số lần biết trước: - Lặp dạng tiến: For <biến đếm>:= <giái trị đầu>to <giá trị cuối> <câu lệnh>; - Lặp dạng lùi For <biến đếm>:= <giá trị cuối> downto <giá trị đầu> <câu lệnh>; Trong đó: - Biến đếm thường là biến kiểu số nguyên - Giá trị đầu, giá trị cuối là các biểu thức cùng kiểu với biến đếm Giá trị đầu phải nhỏ hay giá trị cuối - Ở dạng lặp tiến: Biến đếm tự tăng dần từ giá trị đầu đến giá trị cuối - Ở dạng lặp lùi: Biến đếm tự giảm dần từ giá trị cuối đến giá trị đầu Tương ứng với giá trị biến đếm, câu lệnh thực lần Ví dụ 1: Hai chương trình cài đặt thuật toán tong_1a và tong_1b Ví dụ 2: Tính tổng các số nguyên chia hết cho phạm vi từ M đến N (M<N) Lặp với số lần chưa biết trước và câu lệnh while – Để giải bài toán ta dùng thuật toán sau: 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) quay lại bước 2; Bước 5: Đưa kết S màn hình rồikết thúc - Từ bước đến bước lặp lại nhiều lần điều kiện 1/(a+N) < 0.0001 chưa thỏa mãn - Pascal sử dụng câu lệnh lặp while Lop11.com viên đưa số ví dụ thực tế tính toán lặp lặp lại nhiều lần VD1: Bài toán gửi tiền vào ngân hàng Hằng tháng phải tính lãi và cộng thêm vào gốc gửi hay nói cách khác gốc tháng sau = gốc + lãi tháng trước VD2: Tính tổng đoạn số nguyên mà không dùng công thức GV: Đưa ví dụ: So sánh hai thuật toán sau: Thuật toán Tong_1a B1: S:=1/a; N:=0; B2: N:= N + 1; B3: Nếu N > 100 Thì chuyển sang bước 5; B4:S:=S+1/(a+N) quay lại B2; B5: Đưa S kết thúc Thuật toán Tong_1b B1: S:=1/a;N:=101; B2: N:= N-1; B3: Nếu N<1 thì chuyển sang bước 5; B4: S:=S+1/(a+N) quay lại B2; B5: Đưa S kết thúc GV: Gọi số học sinh nhận xét thuật toán trên số vấn đề: - Thuật toán có lặp không? - Lặp bao nhiêu lần? - Hai thuật toán giống và khác nào? - Cái gì thay đổi thuật toán này? Sau so sánh kỹ thuật toán trên, giáo viên đưa cách lặp ngôn ngữ Pascal, giải thích ý nghĩa các thành phần câu lệnh GV: Lấy ví dụ minh họa Pascal để các em thấy thay đổi giá trị biến đếm chương trình thực Pascal Với ví dụ này, giáo viên nên gõ sẵn chương trình và cho học sinh quan sát việc chạy chương trình, giáo viên vừa cho chạy chương trình vừa giải thích ý nghĩa các lệnh (3) - Do để tổ chức lặp với số lần chưa biết sau: While<điều kiện>Do<câu lệnh>; Trong đó: - Điều kiện là biểu thức quan hệ logic - Câu lệnh là câu lệnh Pascal Ý nghĩa: điều kiện còn đúng thì còn thực câu lệnh sau Do sau đó lại quay lại kiểm tra điều kiện Ví dụ 1: Chương trình bài toán chương trình (chú ý nhiều đến lệnh lặp) GV: Đưa thuật toán có thể yêu cầu học sinh tự xây dựng thuật toán giải bài toán 2, tự xây dựng thuật toán thì các em hiểu lặp không biết trước số lần Yêu cầu học sinh đưa cách giải cho bài toán này GV: Phân tích phương án trả lời học sinh sau đó đưa lời giải cho bài toán GV: Đưa cấu trúc câu lệnh While – Do Pascal, giải thích ý nghĩa các thành phần Ví dụ 2: Tìm ước chung lớn M, N HS: Lắng nghe và ghi chép GV: Nên gõ sẵn ví dụ này để học sinh có thể quan sát chương trình, giáo viên chạy thử chương trình Pascal Thuật toán: B1: Nếu M = N thì UCLN:= M; Riêng với VD 2, trước đưa thuật toán, Kết thúc GV nên cho học sinh xây dựng thuật toán tìm B2: Nếu M > N thì M:= M - N quay lại B1, ước chung lớn (đã học lớp 10) ngược lại Chạy chương trình với nhiều cặp M, N khác N:= N – M quay lại B1 Chương trình tìm UCLN (SGK) Tốt chạy bước, cho học sinh thấy thay đổi giá trị các biến - Lấy ví dụ cụ thể tìm ước số chung hai số 15 và 25 m n 15 25 15 10 10 5 Trả lời: là ước số chung lớn - Hỏi: Điều kiện để tiếp tục lặp là gì? - Điều kiện: m<>n - Hỏi: Các lệnh cần lặp lại là gì? - Lệnh cần lặp: m:=m-n; n:=n-m; - Yêu cầu học sinh: Nêu thuật toán để tìm ước số chung hai số đó? Đánh giá cuối bài: Nhắc lại kiến thức cần nắm Yêu cầu học sinh tóm tắt lại Nhận xét rút kinh nghiệm: Lop11.com (4) Lop11.com (5)