Câu lệnh sau 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... Lặp với số lần biết trước và câu lệnh For-do.[r]
(1)SỞ GD – ĐT THÁI NGUYÊN TRƯỜNG THPT LƯƠNG PHÚ Bài 10 Cấu trúc lặp (tiết 1) TRƯỜNG THPT LƯƠNG PHÚ Giáo viên: PHAN HOÀNG THẢO (2) Nội dung Edit by Phan Hoàng Thảo, 2013 Tìm hiểu Lặp Lặp với số lần biết trước: For - Bài tập ví dụ và luyện tập (3) Lặp Các bài toán đặt vấn đề : Tính tổng S, với a là số nguyên và a>2 Bµi to¸n 1: 1 1 S a a 1 a a 100 Bµi to¸n 2: 1 1 S a a 1 a aN 0.0001 aN (4) TÌM HIỂU BÀI TOÁN XuÊt ph¸t S a LÇn 1 a 1 LÇn LÇn N a2 +… aN thªm bao nhiªu? Mçi lÇn thùc hiÖn gi¸ trÞ tæng S t¨ng Sau mçi lÇn thùc hiÖn gi¸ trÞ tæng S t¨ng thªm ( víi N=1; 2; ; ) a+N (5) Bµi to¸n 1: Bµi to¸n 2: 1 1 S a a 1 a a 100 1 1 S a a 1 a aN Cho đến a N 0.0001 • ViÖc t¨ng gi¸ trÞ cho tæng • ViÖc t¨ng gi¸ trÞ cho đợc lặp lặp lại cho hãy xác địnhSviệc tổng S đợc lặp Em lÆp đếnSkhi tăng giá trị cho tổng l¹i 100 lÇn lặp lại bao nhiêu lần? 0.0001 aN Sè lÇn lÆp biÕt tríc Sè lÇn lÆp cha biÕt tríc (6) Từ các ví dụ, em hãy cho biết khái niệm Lặp? Lặp là các công việc (thao tác) giống thực nhiều lần chương trình THPT Nguyễn Văn Trỗi (7) Lặp với số lần biết trước và câu lệnh For-do Có thuật toán Tong_1a và Tong_1b để giải bài toán sau: Thuật toán Thuật toán Tong_1a Bước S1/a; N 0; Bước N N+1; Bước Nếu N > 100 thì chuyển đến bước 5; Bước S S+1/(a+N) quay lại bước 2; Bước Đưa S màn hình, kết thúc Thuật toán Tong_1b Bước S1/a; N 101; Bước N N-1; Bước Nếu N < thì chuyển đến bước 5; Bước S S+1/(a+N) quay lại bước 2; Bước Đưa S màn hình, kết thúc (8) Lặp với số lần biết trước và câu lệnh For-do a) CÊu tróc c©u lÖnh For – Dạng lặp tiến: For <biến đếm>:=<giá trị đầu> to <giá trị cuối> <câu lệnh lặp>; Lặp số lần biết trước Dạng lặp lùi: For <biến đếm>:=< giá trị cuối> downto < giá trị đầu> <câu lệnh lặp>; (9) Lặp với số lần biết trước và câu lệnh For-do Trong đó For, to, downto, lµ c¸c tõ khãa Biến đếm là biến kiểu số nguyên kí tự For i:=1 to 10 write(i); For i:=’z’ downto ’a’ write(i); 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ỏ giá trị cuối For i:= 100 to 200 write(i); Giá trị biến đếm đợc điều chỉnh tự động, vì câu lệnh sau DO không đợc thay đổi giá trị biến đếm (10) Lặp với số lần biết trước và câu lệnh For-do b) Hoạt động For – Dạng lặp Tiến: for to Biến đếm Gt đầu Gt đầu + Gt đầu + Câu lệnh sau Do Thực Thực Thực lần lầncuối 321 … Gt cuối (11) Lặp với số lần biết trước và câu lệnh For-do b) Hoạt động For – Dạng lặp tiến: for to Câu lệnh sau Do thực tuần tự, với biến đếm nhận các giá trị liên tiếp tăng từ giá trị đầu đến giá trị cuối (12) Lặp với số lần biết trước và câu lệnh For-do b) Hoạt động For – Dạng lặp lùi: for downto Câu lệnh sau Do thực tuần tự, với biến đếm nhận các giá trị liên tiếp giảm từ giá trị cuối đến giá trị đầu (13) Lặp với số lần biết trước và câu lệnh For-do Viết¸p chương c) VÝ dô dôngtrình cho thuật toán Tổng_1a(Lặp tiến) Program Tong_1a ; Uses crt ; VÝ dô 1: H·y ¸p { Phần khai báo } Var a, N : Integer ; S : real ; dông c©u lÖnh lÆp Begin Begin dạng tiến để viết ch ¬nggiatr×nh Write(’Hay nhap vao tri a:gi¶i ’) ; bµi to¸n Readln(a) ; S := 1/a ; { Bước } For N := to 100 { Bước và Bước } { Bước } S := S + 1/(a + N) ; { Bước } Write(’Tong S la : ’, S : : 3) ; Readln End (14) Lặp với số lần biết trước và câu lệnh For-do c) VÝ dô ¸p dông Ví dụ 2: Viết chương trình nhập vào từ bàn phím số nguyên dương M và N (M<N), tính và đưa màn hình tổng các số chia hết cho cho phạm vi từ M đến N ? Hãy xác định giá trị khởi đầu Tổng (T), quy luật thay đổi giá trị Tổng (T) và số lần lặp ? Viết chơng trình để giải bài toán trên - T:= 0; - T:= T + i; - i chạy từ M đến N => Số lần lặp là N – M +1 lần (15) Lặp với số lần biết trước và câu lệnh For-do Chương trình Program Vi_du_2 ; Var M, N, i : Integer ; T : longint ; Begin Write(’Hay nhap vao gia tri M nho N ’) ; Write(’Nhap M = ’); Readln(M) ; Write(’Nhap N = ’); Readln(N) ; T := ; For i := M to N If (i mod = 0) or (i mod = 0) then T := T + i ; Write(’KET QUA: ’, T) ; Readln End (16) Cñng cè kiÕn thøc C©u lÖnh lÆp + Ý nghĩa: Lặp với số lần biết trước + Có dạng: FOR TO DO … - Lặp tiến: giá trị biến đếm tăng thêm Công việc sau Do thực từ giá trị đầu đến giá trị cuối FOR Downto DO - Lặp lùi: giá trị biến đếm giảm Công việc sau Do thực từ giá trị cuối giá trị đầu (17) BÀI TẬP VỀ NHÀ ViÕt ch¬ng tr×nh thùc hiÖn gi¶i c¸c bµi to¸n sau: a) 1 1 S 50 b) S 1 101 (18) Thực tháng 11 năm 2013 (19)