Gi¸o ¸n ®iÖn tö tin häc líp 11 Bµi 10 (tiÕt 2) 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 Bµi to¸n : TÝnh tæng S, víi a lµ sè nguyªn vµ a>2 cho ®Õn khi 0001.0 1 < + Na 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 tìm sự khác biệt Số lần lặp cha biết trớc. 100 lần. CÊu tróc lÆp 1. Bài toán Dữ liệu ra (Output) : Dữ liệu vào (Input) : Hãy xác định INPUT, OUTPUT và nêu thuật toán giải bài toán trên? 1 2 1 1 11 + + ++ + + + += Naaaa S Cho đến khi 1 0.0001 a N < + Tính giá trị tổng S, với a là số nguyên và a>2. thì dừng lại. II. Lặp với số lần lặp không biết trớc Nh p a T ng S Bớc 2: S:=1/a; N:=1; {Khởi tạo S và N} Bớc 3: Nếu 1/(a+N) < 0.0001 => Bớc 5 Bớc 4: S:=S+1/(a+N); N:=N+1; => quay lại bớc 3 thuật toán Bớc 1: Nhập a. S:=1/a ; N:=1 Đa ra S => Kết thúc S:= S+1/(a+N); N:= N+1; Vòng lặp chỉ dừng khi Nhập a S Đ 1/(a+N) >= 0.0001 Bớc 5: In S => Kết thúc. 1/(a+N)<0.0001 WHILE <§iÒu kiÖn> DO <C©u lÖnh> ; §iÒu kiÖn §óng C©u lÖnh §iÒu kiÖn: Lµ biÓu thøc quan hÖ hoÆc l«gic. C©u lÖnh: Lµ mét c©u lÖnh cña Pascal. Sa i 3. LÆp víi sè lÇn lÆp cha biÕt tríc vµ c©u lÖnh while do:– Trong ®ã: Chõng nµo ®iÒu kiÖn cßn ®óng th× c©u lÖnh cßn ®5îc thùc hiÖn. (Ghi tập) WHILE 1/(a+N) >= 0.0001 DO Begin S:=S+1/(a+N); N:=N+1; END; Ví dụ 1: (sgk) Bài toán : Nhận xét: Chừng nào 1/(a+N)>=0.0001 thì còn thực hiện: + Tăng giá trị của tổng S thêm 1/(a+N). + Tăng N thêm 1 đơn vị. 1 2 1 1 11 + + ++ + + + += Naaaa S 1 0.0001 a N < + Tính giá trị tổng S, với a là số nguyên và a>2 thì dừng lại. Cho đến khi Ch$¬ng tr×nh Program Tinhtong_2; Uses Crt; Var a,N:Integer; S:Real; BEGIN Clrscr; Write(‘Nhap gia tri cua a = ‘);Readln(a); S:=1/a;N:=1; WHILE 1/(a+N)>=0.0001 DO BEGIN S:=S+1/(a+N); N:=N+1; END; Writeln(‘Gia tri cua tong S = ‘,S); Readln; END. (Ghi tập) Lập ch5ơng trình nhập vào hai số nguyên d5ơng M,N. Tìm ƯCLN của hai số đó. B1: Nhập M,N; B2 : Chừng nào MN nếu M>N thì M:=M-N, ngGợc lại thì N:=N-M; B3: Đến khi M=N thì => ĐGa ra ƯCLN(M,N)=M; => Kết thúc. B1: Nhập M,N B2 : While M<>N DO Begin IF M>N then M:=M - N else N:=N - M; end; B3: In ƯCLN(M,N) Thuật toán các bớc viết chơng trình Ví dụ 2: (sgk) [...]...Chương trình Program UCLN; Uses Crt; Var M,N:Integer; BEGIN Clrscr; Write(M, N= );Readln(M,N); WHILE M N DO IF M>N then M:=M - N else N:=N - M; Writeln(UCLN = ,M); Readln; END * Chú ý: (SGK) (Ghi tp) Tham khảo: Dạng khác của câu lệnh lặp với số lần lặp không biết trước REPEAT UNTIL ; Câu lệnh Sai Điều kiện Đúng... a,N:Integer; S:Real; BEGIN Clrscr; Write(Nhap gia tri cua a= );Readln(a); S:=1/a;N:=1; REPEAT S:=S+1/(a+N); N:=N+1 UNTIL 1/(a+N)< 0.0001; Writeln(Gia tri cua tong S = ,S); Readln; END {Bat dau lap} {Ket thuc lap} Toựm taột! Câu lệnh rẽ nhánh IF THEN ; + Dạng khuyết IF THEN + Dạng đầy đủ ESLE ; FOR TO DO FOR Downto DO While Do ; Câu . a>2 cho ®Õn khi 0001.0 1 < + Na 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 00 010 1 .< + Na Số lần lặp biết trớc. Việc. M>N thì M:=M-N, ngGợc lại thì N:=N-M; B3: Đến khi M=N thì => ĐGa ra ƯCLN(M,N)=M; => Kết thúc. B1: Nhập M,N B2 : While M<>N DO Begin IF M>N then M:=M - N else N:=N - M; end; B3:. Số lần lặp cha biết trớc. 100 lần. CÊu tróc lÆp 1. Bài toán Dữ liệu ra (Output) : Dữ liệu vào (Input) : Hãy xác định INPUT, OUTPUT và nêu thuật toán giải bài toán trên? 1 2 1 1 11 + + ++ + + + += Naaaa S Cho