Bài giảng Tin học 11 - Tuần 16, Bài 10: Cấu trúc lặp
Bạn đang xem tài liệu "Bài giảng Tin học 11 - Tuần 16, Bài 10: Cấu trúc lặp", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.
File đính kèm:
bai_giang_tin_hoc_11_tuan_16_bai_10_cau_truc_lap.ppt
Nội dung tài liệu: Bài giảng Tin học 11 - Tuần 16, Bài 10: Cấu trúc lặp
- Bài 10
- Bài toán: Tính tổng S, với số nguyên a cho trước (a>2) Bài toán 1: Bài toán 2: Cho đến khi
- CÙNG TÌM THUẬT TOÁN Xuất phát Lần 1 Lần 2 Lần N + 1 Sau Mçi mỗi lÇn lần thùc cộng hiÖntổng Sgi¸ tăng trÞ lên tæng S t¨ng ( với thªm i =1; bao 2; 3 nhiªu?; ...;N) a + i
- TÌM SỰ KHÁC BIỆT Bµi to¸n 1: Bµi to¸n 2: Cho ®Õn khi • ViÖc t¨ng gi¸ trÞ cho • ViÖc t¨ng gi¸ trÞ cho tæng S ®ưîc lÆp ®i tæng S ®ưîc lÆp ®i lÆp l¹i 100 lÇn. lÆp l¹i cho ®Õn khi Sè lÇn lÆp biÕt trưíc. Sè lÇn lÆp chưa biÕt trưíc.
- I. Lặp với số lần biết trước II. Lặp với số lần chưa biết trước
- I. Lặp với số lần biết trước 1. Bài toán Lập trình tính tổng: Input: Nhập N Output : Tổng S Hãy xác định input và output của bài toán
- Ph©n tÝch bµi to¸n víi N = 100 . . . . . . . . . . . . . . . . . . . . S1 = 1 Nhận xét S2 = S1 + 1/2 Bắt đầu từ S2 việc tính S được lặp S3 = S2 + 1/3 đi lặp lại 99 lần theo qui luật S4 = S3 + 1/4 Ssau = Strước + 1/i ..... Với i chạy từ 2 100 S100 = S99 + 1/100
- Xây dựng thuật toán NhËp N B1: NhậpN; B2: S:=1; i:=2; S:= 1 ; i:= 2 B3: Nếu i > N thì đưa ra giá trị S => Kết thúc ; § i > N ? §ưa ra S råi kÕt thóc S S:= S + 1/i B4 : S:= S + 1/i; i:= i+1 B5: i := i +1 quay lại B3.
- 2. Lặp với số lần biết trước a. Dạng 1 (dạng tiến) FOR := TO DO ; Ví dụ : S:=1; FOR i:=2 TO 100 DO S:=S+1/i; b. Dạng 2 (dạng lùi) FOR := DOWNTO DO ; VÝ dô: S:=1; FOR i:=100 DOWNTO 2 DO S:=S+1/i;
- Trong đó Biến đếm là kiểu biến nguyên hoặc kí tự. For i:=1 to 10 do write(i); For i:=‘a’ to ‘z’ do write(i); Giá trị đầu và giá trị cuối cùng kiểu với biến đếm, giá trị đầu nhỏ hơn giá trị cuối For i:= 100 to 200 do write(i); Giá trị biến đếm được điều chỉnh tự động, vì vậy câu lệnh sau DO không được thay đổi biến đếm.
- Lập trình tính tổng sau: Program Tinh_tong; Uses crt; Var i,N : Integer; S : real; BEGIN S:=1; Write(‘ Nhap vao gia tri cua N :’);readln(N); FOR i:=2 to N do S := S+1/i; Writeln(‘ Tong S =’,S:8:3); Readln; END.
- M« pháng thuËt to¸n VớiNhËp N =N 5 i Lầ 2 3 4 5 6 n S 1 1.5 1.83 2.08 2.28 S := 1 ; i := 2; § 2>53>54>55>56>5i >N ? TổngIn Tæng S=2.28 S KT SS SSSSS := := := :=:= 1.83+1/4 2.08+1/5; 1.5+1/3 S1 +1/2+1/ i ;; ;; i := ii :=:=5 +1; 234i +1;+1;
- II. Lặp với số lần chưa biết trước 1. Bài toán Lập trình tính tổng: Cho đến khi thì dừng lại Input: Nhập a Output : Tổng S
- THUẬT TOÁN B1: Nhập a. nhập a B 2: S:=1/a; N:=1; S:=1/a ; N:=1 Khởi tạo S và N B3: S Nếu 1/(a+N) < 0.0001 1/(a+N) >= 0.0001 Đ ưa ra => B5 => Kết thúc B4: § S:=S+1/(a+N); S:= S+1/(a+N); N:=N+1; => quay lại 3 N:= N+1; B5: Đưa ra S => Kết thúc. Vòng lặp chỉ dừng khi 1/(a+N)<0.0001
- II. Lặp với số lần chưa biết trước WHILE DO ; Trong đó Điều kiện : Là biểu thức quan hệ hoặc Sai biêu thức logic. Điều kiện Câu lệnh: Là câu lệnh trong Pascal. Đúng Câu lệnh Khi nào điều kiện còn đúng thì câu lệnh còn thực hiện
- 3. Mét sè vÝ dô Bài toán Tính tổng S, với a là số nguyên a>2 Cho ®Õn khi th× dõng l¹i. Nhận xét: WHILE 1/(a+N) >= 0.0001 DO Khi nào 1/(a+N)>=0.0001 thì còn thực hiện: Begin + Tăng giá trị của S thêm 1/(a+N). S:=S+1/(a+N); + Tăng N thêm 1 đơn vị. N:=N+1; END;
- Chương Trình Program Bai_toan; 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:8:3); Readln; END.

