TiÕt 12 - Bµi 10 cÊu tróc lÆp Bµi to¸n 1: Bµi to¸n 2: 100 1 . 2 1 1 11 + ++ + + + += aaaa S . 1 . 2 1 1 11 + + ++ + + + += Naaaa S XÐt c¸c bµi : TÝnh tæng S, víi a lµ sè nguyªn vµ a>2 cho ®Õn khi 0001.0 1 < + Na Xuất phát a S 1 = 1 1 + + a Lần 1 2 1 + + a Lần 2 + Lần N Na + + 1 Mỗi lần thực hiện giá trị tổng S tăng thêm bao nhiêu? 1 Sau mỗi lần thực hiện giá trị tổng S tăng thêm ( với i =1; 2; 3 ; .;N) a + i Cùng tìm thuật toán Bài toán 1: Bài toán 2: 100 1 . 2 1 1 11 + ++ + + + += aaaa S . 1 . 2 1 1 11 + + ++ + + + += Naaaa S Cho đến khi 00010 1 .< + Na Số lần lặp biết trước. Việc tăng giá trị cho tổng S được lặp đi lặp lại cho đến khi 0.0001 Na 1 < + Việc tăng giá trị cho tổng S được lặp đi lặp lại 100 lần. tìm sự khác biệt Số lần lặp chưa biết trước. CÊu tróc lÆp I. LÆp víi sè lÇn lÆp biÕt tríc II. LÆp víi sè lÇn lÆp kh«ng biÕt tríc 1. Bài toán đặt vấn đề - Dữ liệu ra (Output) : Tổng S Lập chương trình tính tổng sau: - Dữ liệu vào (Input) : Nhập N Hãy xác định INPUT và OUTPUT của bài toán trên! I. Lặp với số lần lặp biết trước N 1 . 4 1 3 1 2 1 1S +++++= Phân tích bài toán với N = 100 Nhận xét: S1 = 1 S2 = S1 + 1/2 S3 = S2 + 1/3 S4 = S3 + 1/4 . S100 = S99 + 1/100 1=S Bắt đầu từ S2 việc tính S đư ợc lặp đi lặp lại 99 lần theo quy luật Ssau = Strước+ 1/i với i chạy từ 2 100 2 1 + 3 1 + 4 1 + . . .+ + 1 100 . . . . . . . . . . . . . . . . . . . . § S NhËp N S:= 1 ; i:= 2 i > N ? S:= S + 1/i §a ra S råi kÕt thóc B1: NhËp N; B2: S:=1; i:=2; B3: NÕu i > N th× ®a ra gi¸ trÞ S => KÕt thóc; B4 : S:= S + 1/i; B5: i := i +1 quay l¹i B3. X©y dùng thuËt to¸n i:= i+1 FOR <biến đếm> := <giá trị đầu> TO <giá trị cuối> DO < câu lệnh>; Ví dụ: S:=1; FOR i:=2 TO 100 DO S:=S+1/i; b. Dạng 2 (dạng lùi) FOR <biến đếm> := <giá trị cuối> DOWNTO <giá trị đầu> DO <câu lệnh >; Ví dụ: S:=1; FOR i:=100 DOWNTO 2 DO S:=S+1/i; a. Dạng 1 (dạng tiến) 2. Lặp với số lần lặp biết trước Sự thực hiện của câu lệnh FOR <biÕn ®Õm> := <gi¸ trÞ ®Çu> TO <gi¸ trÞ cuèi> DO < c©u lÖnh>; FOR <biÕn ®Õm> := <gi¸ trÞ cuèi> DOWNTO <gi¸ trÞ ®Çu> DO <c©u lÖnh >; Begin Biến điều khiển:= giá trị đầu DO <Công việc> Biến điều khiển:= biến điều khiển + 1 Biến điều khiển > giá trị cuối End S Đ Begin Biến điều khiển:= giá trị Cuối DO <Công việc> Biến điều khiển := biến điều khiển - 1 Biến điều khiển < giá trị đầu End S Đ [...]... 2-1; - 1; := 3-1; 5-1; i § Tæng S=2.28 In Tæng S KT Bài 1:Viết chương trình hiển thị các số từ 1 đến 10 ra màn hình Var i: byte; Begin For i:= 1 to 10 do Write(i); End Bài 2: Viết chương trình tính Tổng : S= 1 + 2+ 3 +….+ 100 Var s,i: integer; BEGIN S:=1; For i:= 1 to 100 do S:= S+1; Write(s); Readln; END . 2 (dạng lùi) FOR <biến đếm> := <giá trị cuối> DOWNTO <giá trị đầu> DO <câu lệnh >; Ví dụ: S:=1; FOR i:=100 DOWNTO 2 DO S:=S+1/i;. thuËt to¸n i:= i+1 FOR <biến đếm> := <giá trị đầu> TO <giá trị cuối> DO < câu lệnh>; Ví dụ: S:=1; FOR i:=2 TO 100 DO S:=S+1/i; b.