Bài giảng Môn Tin học lớp 11 - Bài 10 - Cấu trúc lặp

Trong đó

 ? Biến đếm là biến kiểu số 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, 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ỏ 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 giá trị biến đếm.

 

 

ppt22 trang | Chia sẻ: rimokato | Lượt xem: 3397 | Lượt tải: 2download
Bạn đang xem trước 20 trang mẫu tài liệu Bài giảng Môn Tin học lớp 11 - Bài 10 - Cấu trúc lặp, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Bài 10 cấu trúc lặpGiáo án điện tử tin học lớp 11(2 tiết)Bài toán 1:Bài toán 2: Các bài toán đặt vấn đề : Tính tổng S, với a là số nguyên và a>2cho đến khi Xuất phát Lần 1Lần 2+…Lần N Mỗi lần thực hiện giá trị tổng S tăng thêm bao nhiêu?	 1Sau 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: Cho đến khi  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 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ặpI. Lặp với số lần lặp biết trướcII. Lặp với số lần lặp không biết trước1. 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 Phân tích bài toán với N = 100	Nhận xét:S1 = 1S2 = S1 + 1/2S3 = S2 + 1/3S4 = S3 + 1/4	.....	S100 = S99 + 1/100	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/ivới i chạy từ 2  100	. . . . . . . . . . . . . . . . . . . . ĐSNhập N S:= 1 ; i:= 2i > 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+1FOR := 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;a. Dạng 1 (dạng tiến)2. Lặp với số lần lặp biết trước 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ỏ 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 giá trị biến đếm.Trong đó  Biến đếm là biến kiểu số nguyên hoặc kí tự.	For i:=1 to 10 do write(i);	For i:=‘a’ to ‘z’ do write(i); Uses crt;Var i,N : Integer; S : real;BEGIN Readln;END.S:=1;FOR i:=2 to N do S := S+1/i;Writeln(‘ Tong S =’,S:8:3);Write(‘ Nhap vao gia tri cua N :’);readln(N);Program Tinh_tong;Hãy áp dụng câu lệnh lặp dạng tiến để viết chương trình giải bài toán đặt vấn đề.Lập chương trình tính tổng sau: 	S := 1 ; i := 2;i >NKTS := S +1/ i ; i := i +1;2.081.831.51432LượtiS2.285Nhập NS := 1 ; i := 2;2>5 ?SSS := 1 +1/2 ; i := 2 +1;3>5 ?S := 1.5+1/3 ; i := 3 +1;4>5 ?S := 1.83+1/4 ; i := 4 +1;5>5 ?S := 2.08+1/5; i := 5 +1;6SSS6>5 ?In Tổng STổng S=2.28Với N = 52.28ĐĐMô phỏng thuật toán 	3. Ví dụTính tổng S (với a là số nguyên nhập vào từ bàn phím và a>2).? Hãy xác định giá trị khởi đầu của S, quy luật thay đổi giá trị của S và số lần lặp. Viết chương trình để giải bài toán trên. S:=1/a;- S:= S + 1/(a+i);- i chạy từ 1 đến 100 => Số lần lặp là 100 lần.1. Bài toán Dữ liệu ra (Output) : Tổng S	Dữ liệu vào (Input) : Nhập a	Hãy xác định INPUT, OUTPUT và nêu thuật toán giải bài toán trên?Cho đến khi 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 Bước 2: S:=1/a; N:=1;  {Khởi tạo S và N} Bước 3:  Nếu 1/(a+N) Bước 5 Bước 4:  S:=S+1/(a+N); N:=N+1;  => quay lại bước 3thuậ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 1/(a+N)= 0.0001 Bước 5: In S => Kết thúc.WHILE DO ;Điều kiệnĐúngCâ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.Sai2. Lặp với số lần lặp không biết trướcTrong đó:Chừng nào điều kiện còn đúng thì câu lệnh còn được thực hiện.WHILE 1/(a+N) >= 0.0001 DO Begin	S:=S+1/(a+N); N:=N+1; END;3. Một số ví dụaBài toán đặt vấ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ị. 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 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.bLập chương trình nhập vào hai số nguyên dương M,N. Tìm ƯCLN của hai số đó.B1: Nhập M,N; B2 : Chừng nào MN nếu M>N thì M:=M-N, ngược lại thì N:=N-M;B3: Đến khi M=N thì => Đưa ra ƯCLN(M,N)=M; => Kết thúc.	B1: Nhập M,N B2 : While MN DO	Begin	IF M>N then M:=M-N	 else N:=N-M;	end;	B3: In ƯCLN(M,N)Thuật toáncác bước viết chương trìnhTham 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ướcREPEAT UNTIL ;Điều kiệnSaiCâu lệnhĐúngBài toán đặt vấn đề: 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; REPEAT {Bat dau lap} S:=S+1/(a+N); N:=N+1	 UNTIL 1/(a+N) THEN ;trong pascalFOR ... TO ... DO ...…IF THEN ESLE ;FOR ... Downto ... DO ...While Do ;Dạng khuyết.Dạng đầy đủ.Lặp với số lần lặp biết trước.Lặp với số lần lặp không biết trước.

File đính kèm:

  • pptBai10-Cau truc lap - Tin11.ppt