BÀI10:CẤUTRÚCLẶP I. Mục đích, yêu cầu: 1. Kiến thức: - Hiểu nhu cầu của cấutrúclặp trong biểu thức thuật toán. - Hiểu được ý nghĩa của cấutrúclặp với số lần biết trước. - Biết vận dụng đúng đắn 2 dạng cấutrúclặp trong các bài toán cụ thể. 2. 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 được thuật toán của một số bài toán đơn giản. 3. Thái độ học tập: - Nghiêm túc. - Nhận thức được tầm quan trọng của cấutrúc lặp. II. Chuẩn bị: 1. Giáo viên: - Nghiên cứu tài liệu,SGK tin học 11,SGV tin học 11,soan giáo án, bảng phụ. 2. Học sinh: - Đọc trước bài mới, SGK tin học 11. III. Phương pháp giảng dạy : - Vấn đáp, minh họa. IV. Tiến trình lên lớp : 1. Ổn định lớp, tổ chức lớp: - Kiểm tra sĩ số, vệ sinh lớp. - Ổn định trật tự, tạo tâm lý tốt bắt đầu tiết học. 2. Kiểm tra bài cũ: Câu 1 : Trình bày cấutrúc rẽ nhánh? Sự khác nhau giữa các dạng rẽ nhánh đó? Câu 2: Viết CT nhập vào 2 số a, b và thực hiện đưa ra màn hình giá trị của số lớn hơn. program SLN; uses crt; var a, b, max:… ; begin clrscr; write('Nhap ……. = '); ………….; ……(a>b) then max:=……; else max:=b; write('So lon nhat la : ', max); readln; end. Giới thiệu bài mới: Trong cuộc sống hàng ngày chúng ta thường hay gặp hay làm những công việc cứ lặp đi lặp lại nhiều lần, Mỗi năm cứ vào ngày 2/9 thì cả nước lại tổ chức kỉ niệm ngày quốc khánh nước CHXHCN Việt Nam, Việc tổ chức ngày quốc khánh cứ lặp lại mỗi năm. Hôm nay chúng ta sẽ tìm hiểu cấutrúc có liên quan đến việc lặp đó trong Pascal, cấutrúc đó là: “Cấu trúc lặp”. 3. Nội dung bài: Nội dung Hoạt động của GV và HS 1. Lặp: - Xét 2 bài toán như sau với a > 2 là số nguyên cho trước : Bài toán 1 : Tính tổng S1= 100 1 . 2 1 1 11 + ++ + + + + aaaa Bài toán 2 : Tính Tổng - GV: Qua lời dẫn,yêu cầu HS cho VD có liên quan đến việc lặp? - HS: Chú ý lắng nghe và tìm hiểu. - GV: Nhận xét và cho thêm VD: + Cứ mỗi năm trường ĐHAG lại tổ chức cho sinh viên khoa sư phạm đi kiến tập, việc đi kiến tập của SV được lặp lại mỗi năm. + Vậy, một công việc mà ta cứ thực hiện đi thực hiện lại nhiều lần gọi là lặp. Trong lập trình, những thao tác phải lặp lại nhiều lần, ta gọi là cấutrúc lặp. - GV: Quan sát bài toán 1, bài toán 2 SGK_42 và cho biết giữa hai bài toán khác nhau ở điểm nào? - HS: Chú ý quan sát và trả lời. - GV: Nhận xét và bổ sung: + Ở bài toán 1 : Quá trình thực hiện cộng diễn ra 100 lần ( lặp đi lặp lại đúng 100 lần) => biết trước số lần lặp. + Ở bài toán 2: quá trình cộng lặp lại hoài cho S= . 1 . 2 1 1 11 + + ++ + + + + Naaaa Với điều kiện 0001.0 1 < + Na Lặp thường có 2 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 . 2. Lặp với số lần biết trước và câu lệnh for – do: đến khi thỏa điều kiện 0001.0 1 < + Na => Số lần chưa biết trước. - GV: Vậy, ở bài toán hai việc lặp phụ thuộc vào hệ số nào? - HS: Chú ý lắng nghe, suy nghĩ và trả lời. - GV: Nhận xét và hoàn chỉnh: Phụ thuộc vào hệ số a. a càng lớn thì số lần lặp càng ít. - HS: Chú ý lắng nghe. - GV: Qua hai bài toán các em hãy cho biết có mấy loại cấutrúc lặp? - HS: Trả lời. - GV: Ngôn ngữ lập trình nào cũng cung cấp một số câu lệnh để mô tả các cấutrúclặp như trên. Sau đây chúng ta sẽ tìm hiểu các câu lệnh trong ngôn ngữ Pascal. - GV: Xét VD sau đây: a. Tính của 20 số tự nhiên đầu tiên. b. Tính tổng của n số tự nhiên đầu tiên vói n <=20. - GV: Chia lớp thành 6 nhóm và yêu cầu các em lên viết thuật toán - HS: Tập trung suy nghĩ và trả lời. - GV: Nhận xét và bổ sung: Có sự lặp lại nhưng giá trị của nó thay đổi: S sau = S trước +1 ( i chạy từ 1 đến 20). Mô tả thuật toán: Thuật toán 1: B1: S=0; n=0 B2: n → n +1 B3: Nếu n > 20 thì chuyển đến B5 B4: S= S + n rồi quay lai b2 B5: Đưa S ra màn hình và kết thúc Thuật toán 2: B1: S=0; n=20 B2: n → n -1 Trong Pascal, có 2 lọai câu lệnh lặp có số lần biết trước : a. Lặp dạng tiến: For <biến đếm> := <giá trị đầu> to <giá trị cuối> do <câu lệnh>; b. Lặp dạng lùi For <biến đếm> := <giá trị cuối> downto <giá trị đầui> do <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ỏ hơn hay bằng giá trị cuối. Hoạt động của For – Do: + Dạng lặp tiến: câu lệnh viết sau từ khóa DO được thực hiện tuần tự, 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, + Dạng lặp lùi: câu lệnh viết sau từ khóa DO được thực hiện tuần tự, 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. Tương ứng với mỗi giá trị của biến đếm, câu lệnh sau do thực hiện 1 lần B3: Nếu n < 1 thì chuyển đến B5 B4: S= S + n rồi quay lai b2 B5: Đưa S ra màn hình và kết thúc. - GV: Từ 2 ví dụ trên các em hãy cho biết có mấy dạng cấutrúclặp lại với số lần biết trước? - HS: Trả lời. - GV: Dạng tiến và dạng lùi biến đếm là như nhau. Dạng tiến thì giá trị đầu < = giá trị cuối. Còn ở dạng lùi thì ngược lại. - GV: Yêu cầu HS nghiên cứu SGK và nêu hoạt động của lệnh For – Do. - HS: Trả lời. - GV: Giải thích các thông số trong câu lệnh. - HS: Chú ý lắng nghe và ghi chép cẩn thận. - GV: Viết chương trình của VD trên. - HS: Thực hiện. - GV: Nhận xét và bổ sung: program vd; uses crt; var s,i,n: integer; begin clrscr; writeln('nhap n= '); readln(n); s:=0; for i:=1 to n do s:= s+i; writeln( ' s=:',s); readln; end. 4. Củng cố: Các câu lệnh Pascal sau đây câu nào không hợp lệ? vì sao? a) For i:=100 to 1 do Writeln(‘A’); b) For i:= 1 to 10 do Writeln(‘A’); c) For i:=1.5 to 10.5 do Writeln(‘A’); d) For i:=1 to n do Writeln(‘A’); Đáp án: a, c. 5. Dặn dò: Giải bài tập SGK/51. . BÀI 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 thức thuật toán. - Hiểu được ý nghĩa của cấu trúc. khánh cứ lặp lại mỗi năm. Hôm nay chúng ta sẽ tìm hiểu cấu trúc có liên quan đến việc lặp đó trong Pascal, cấu trúc đó là: Cấu trúc lặp . 3. Nội dung bài: