Giáo án Tin 11 - Cấu trúc lặp

Trong lập trình, có những thao tác

phải lặp lại nhiều lần, khi đó ta gọi là

cấu trúc lặp.

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 .

NNLT nào cũng cung cấp một số câu

lệnh để mô tả các cấu trúc lặ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.

pdf7 trang | Chia sẻ: maiphuongdc | Lượt xem: 7928 | Lượt tải: 5download
Bạn đang xem nội dung tài liệu Giáo án Tin 11 - Cấu trúc lặp, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
§10 CẤU TRÚC LẶP I. MỤC ĐÍCH YÊU CẦU  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 cấu trúc lặp vào tình huống cụ thể .  Mô tả 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 lặp kiểm tra điều kiện trước, lệnh lặp với số lần lặp trước .  Viết được thuật toán của một số bài toán đơn giản . II. PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC :  Phương pháp : Thuyết trình, vấn đáp .  Phương tiện : Máy chiếu, máy tính, phòng chiếu hoặc bảng . III. LƯU Ý SƯ PHẠM :  Cần tổng kết 3 loại cấu trúc điều khiển: tuần tự, rẽ nhánh và lặp  Bước đầu hình thành khái niệm lập trình có cấu trúc cho học sinh.  Cần xây dựng các bài thực hành và tổ chức thực hiện tại phòng máy để học sinh đạt được những kỹ năng theo yêu cầu  Khi dạy lệnh lặp, với mỗi một dạng lệnh lặp, tốt nhất viết một ví dụ cụ thể, với số lần lặp nhỏ rồi viết mô tả việc hoạt động của vòng lặp bằng cấu trúc tuần tự (thể hiện sự tương đương trong công việc nhưng lệnh lặp diễn tả ngắn hơn nhiều) điều đó cũng giúp học sinh hiểu hơn về vòng lặp) IV. NỘI DUNG BÀI GIẢNG : Hoạt động của Giáo viên và Học sinh Nội dung Ổn định lớp:  Chào thầy cô.  Cán bộ lớp báo cáo sỉ số  Chỉnh đốn trang phục GV : Đưa ra bài toán, yêu cầu học sinh tìm cách để lập trình giải các bài toán này . HS : Đưa ra cách giải của mình, học sinh có thể đưa ra những cách giải khác nhau . GV : Đưa ra cách giải cho bài toán . Giải theo các lệnh tuần tự S1:=0; If (1/a>0.0001) then S1:=S1+ 1/a; If (1/(a+1)>0.0001) then S1:=S1+ 1 /(a+1); If (1/(a+2)>0.0001) then S1:=S1+ 1 /(a+2); If (1/(a+3)>0.0001) then S1:=S1+ 1 /(a+3); 1. Khái niệm 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 S2= ...1... 2 1 1 11        Naaaa Với điều kệin 0001.01   Na Cách giải : - Bắt đầu S được gán giá trị 1/a. - Tiếp theo mỗi lần cộng thêm vào S là 1/(a+N) với N = 1, 2, 3, … … HS : Nhận xét với việc giải bài toán theo cách đó ? Với N = 100 thì lặp 100 lần như thế nhưng theo việc kiểm tra điều kiện thì không biết phải làm theo cách nào? Theo cả hai trường hợp thì đều quá dài. Để học sinh hiểu được khái niệm lặp, giáo viên đưa ra một số ví dụ trong thực tế được tính toán lặp đi 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 đang gửi hay nói cách khác gốc của tháng sau = gốc + lãi tháng trước. VD 2: Tính tổng của một đoạn số nguyên mà không được dùng công thức. - Với bài toán 1, việc cộng thêm dừng khi 1/(a+N) số lần lặp chưa biết. - Với bài toán 2, việc cộng thêm dừng khi N = 100, => số lần lặp đã biết trước. Trong lập trình, có những thao tác phải lặp lại nhiều lần, khi đó ta gọi là cấu trúc lặp. 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 . NNLT nào cũng cung cấp một số câu lệnh để mô tả các cấu trúc lặ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. 2. Lặp có số lần biết trước và câu lệnh for – do Trong Pascal, có 2 lọai câu lệnh lặp có số lần biết trước : GV : Đưa ra 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) rồi quay lại B2; B5: Đưa ra S rồi 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) rồi quay lại B2; B5: Đưa ra S rồi kết thúc. GV : Gọi một số học sinh nhận xét về 2 thuật toán trên về một 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 nhau như thế nào?  Cái gì thay đổi trong thuật toán này? - Lặp dạng tiến: For := to do ; - Lặp dạng lùi For := downto do ; 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.  Ở 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 mỗi giá trị của biến đếm, câu lệnh sau do thực hiện 1 lần Sau khi so sánh hai thuật toán trên, giáo viên đưa ra hai cách lặp trong ngôn ngữ Pascal, giải thích ý nghĩa của các thành phần trong câu lệnh . GV : Lấy ví dụ minh họa trong Pascal để các em thấy được sự thay đổi giá trị của biến đếm trong một chương trình thực sự của Pascal . Với 2 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 trong 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ề lặp không biết trước số lần Đưa thêm ví dụ : Nhắc lại bài toán gửi tiền vào ngân hàng: Nếu có số tiền là A, muốn gửi vào ngân hàng để được số tiền là B > A thì cần gửi trong bao lâu với lãi suất là k%. Yêu cầu học sinh đưa ra cách giải 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 3 hoặc 5 trong phạm vi từ M đến N (M<N). 3. Lặp với số lần chưa biết trước và câu lệnh while – do Để giải bài toán 2 ta dùng thuật toán như 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) rồi quay lại cho bài toán này . GV : Phân tích phương án trả lời của học sinh sau đó đưa ra lời giải cho bài toán. GV : Đưa ra cấu trúc câu lệnh While – Do Trong Pascal, giải thích ý nghĩa các thành phần. HS : Lắng nghe và ghi chép. GV: Nên gõ sãn những 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 trong Pascal. Riêng với VD 2, trước khi đưa ra thuật toán, GV nên cho học sinh xây dựng thuật toán tìm ước chung lớn nhất (đã bước 2; Bước 5: Đưa kết qủa S ra màn hình rồi kết thúc - Từ bước 2 đến bước 4 được lặp lại nhiều lần nếu điều kiện 1/(a+N) < 0.0001 chưa được thỏa mãn. _ Pascal sử dụng câu lệnh lặp While - Do để tổ chức lặp với số lần chưa viết như sau While Do ; Trong đó - Điều kiện là biểu thức quan hệ hoặc logic. - Câu lệnh là một câu lệnh trong Pascal. Ý nghĩa : Khi điều kiện còn đúng thì còn thực hiện 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 của bài toán 1. học ở lớp 10) Chạy chương trình với nhiều cặp M, N khác nhau. Tốt nhất chạy từng bước, cho học sinh thấy sự thay đổi của các biến. Ví dụ 2 : Tìm ước chung lớn nhất của M và N. Thuật toán : B1: Nếu M = N thì ƯCLN := M; Kết thúc. B2: Nếu M > N thì M := M – N rồi quay lại B1, ngược lại N := N – M rồi quay lại B1 Sau đây là chương trình tìm UCLN; V. CỦNG CỐ , DẶN DÒ:  Nhắc lại một số khái niệm mới  Nhắc lại cấu trúc câu lệnh.  Cho bài tập về nhà

Các file đính kèm theo tài liệu này:

  • pdf10_cau_truc_lap_8687.pdf
Tài liệu liên quan