Tiết 15: CẤU TRÚC LẶP (Tiết 1) Ngày soạn: Ngày dạy: I/ Mục tiê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, cấu trúc lặp với số lần định trước. - Biết vận dụng đúng đắn cấu trúc lặp vào tình huống 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 đúng các câu 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. 3. Thái độ: Xác định thái độ nghiêm túc trong học tập khi làm quen với nhiều qui định nghiêm ngặt trong lập trình. II/ Chuẩn bị: - Giáo viên: Giáo án – Sách GK - Học sinh: Vở soạn, sách GK, vở học. III/ Phương pháp truyền thụ: Giáo viên giảng giải cho học sinh hiểu IV/ Tiến trình lên lớp: 1. Ổn định lớp:Kiểm tra sĩ số 2. Kiểm tra bài cũ: nêu cấu trúc câu lệnh if- then và sự giống nhau, khác nhau của 2 dạng câu lệnh if- then? V/ Bài mới: Nội dung Hoạt động của GV và HS 1. Lặp: Cấu trúc lặp là một điều kiện thực hiện công việc lặp đi lặp lại khi chưa đủ số lần lặp hoặc khi một điều kiện nào đó còn đúng. VD1: Viết chương trình in ra các số 1 2 3 4 5 theo hàng ngang và dọc. Bài toán 1: Tính và đưa ra kết quả màn hình tổng, với a là số nguyên và a>2 Bài toán 2: Tính và đưa ra kết quả màn hình tổng, với a là số nguyên và a>2 +... cho đến khi * Bài toán 1: Việc tăng giá trị cho tổng S được lặp đi lặp lại 100 lần " Số lần lặp biết trước. * Bài toán 2: Việc tăng giá trị cho tổng S được lặp đi lặp lại cho đến khi " Số lần lặp chưa biết trước. Lặp với số lần lặp biết trước: A>Dạng tiến: 1.Cú pháp For := to do 2.Ý nghĩa các thành phần: + Biến đếm là biến đơn, có kiểu là: kiểu nguyên, kiểu Char (kiểu kí tự). + Giá tri đầu và giá trị cuối phải cùng kiểu với biến đếm và giá trị đầu phải nhỏ hơn hoặc bằng kí tự cuối. + Khi lệnh for chạy thì biến đếm sẽ tăng tự động liên tiếp từ giá trị đầu đến giá trị cuối. B> Dạng lùi 1.Cú pháp For := downto do ; - Biến đếm lần lượt nhận các giá trị giảm liên tiếp từ giá trị cuối đến giá trị đầu. C>Chú ý Trong quá trình thực hiện vòng lặp for đối với dạng tiến máy tự động tăng biến đếm lên 1 sau mối lần lặp (dạng lùi trừ 1) do đó người viết chương trình không được tự động thay đổi biến đếm. VD2: Viết chương trình in ra các số 5 4 3 2 1 theo hàng dọc. - Trong chương trình này giá trị đầu nhỏ hơn giá trị cuối và biến đếm lần lượt giảm từ 5 ..1 VD3: Viết chtrình nhập vào 2 số nguyên dương M,N(M<N), đếm xem có bao nhiêu số chia hết cho 3 hoặc 5 trong phạm vi từ M đến N Program vd3; Uses crt; Var M,N: integer; dem: logint; Begin Clrscr; Write(‘nhâp M,N(MN):’); Readln(M,N); Dem:=0; For i:=M to N do If ((I mod 3)=0) or ((I mod 5)=0) then Dem:=dem+1; Writeln(‘kết qua’,dem); Readln; End. VD4: Với a là số nguyên và a>2, xét bài toán sau: Bài toán 1: Tính và đưa kết quả ra màn hình tổng sau: * Thuật toán: Lặp tiến - B1: S ← 1/a; N ← 0 ; - B2: N ← N + 1; - B2: Nếu N > 100 thì chuyển xuống B5; - B4: S ← S + 1/(a+N) rồi quay lại B2; - B5: Đưa S ra màn hình, rồi kết thúc; * Thuật toán: Lặp lùi - B1: S ← 1/a; N ← 101 ; - B2: N ← N - 1; - B2: Nếu N < 1 thì chuyển xuống B5; - B4: S ← S + 1/(a+N) rồi quay lại B2; - B5: Đưa S ra màn hình, rồi kết thúc GV: Gợi ý đây là lặp lại 5 lần, biết trước số lần lặp. H: VD1 có khai báo biến không, sử dụng bao nhiêu lệnh write và bao nhiêu lệnh writeln. GV: Gọi 2 HS lên bảng viết chương trình HS: Propram inso; Begin Writeln(1); Writeln(2); Writeln(3); Writeln(4); Writeln(5); Readln; End. GV: Đưa ra hai dạng bài toán H: S xuất phát bằng bao nhiêu? lần 1,2,3, ... n HS: S xuất phát , lần 1 .... H: Sau mỗi lần lặp thì S tăng lên bao nhiêu? HS: Tăng lên H: Cấu trúc lặp được phân biệt mấy loại? HS: Hai loại là 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 VD1: Propram inchu; Var i: Integer; Begin For i:=1 to 5 do Writeln(‘Turbo Pascal’); Readln; End. VD2: Propram inso; Var i: Integer; Begin For i:=1 to 5 do Writeln(i); Readln; End. VD3: Propram inso; Var i: Integer; Begin For i:=5 downto 1 do Writeln(i); Readln; End. GV: - Biến đếm thường dùng là biến i - Trước khi dùng vòng lặp for phải khai báo giá trị cuối (nếu có), thường là biến n. Viết chương trình để giải bài toán trên VI/ Củng cố: - Nhắc lại một số khái niệm: Cấu trúc lặp thông qua các ví dụ VII/ Dặn dò: chuẩn bị bài luyện tập VIII/ Rút kinh nghiệm:
Tài liệu đính kèm: