Bài giảng Tin học Lớp 11 - Bài 10: Cấu trúc lặp (2 tiết)

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.

 

ppt 22 trang trandan 320
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Tin học Lớp 11 - Bài 10: Cấu trúc lặp (2 tiết)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Tin học Lớp 11 - Bài 10: Cấu trúc lặp (2 tiết)

Bài giảng Tin học Lớp 11 - Bài 10: Cấu trúc lặp (2 tiết)
S2 = S1 + 1/2 
S3 = S2 + 1/3 
S4 = 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 
 S sau = S trước + 1/i 
với i chạy từ 2 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 := 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 >N 
KT 
S := S +1/ i ; 
 i := i +1; 
2.08 
1.83 
1.5 
1 
4 
3 
2 
Lượt 
i 
S 
2.28 
5 
Nhập N 
S := 1 ; i := 2; 
2>5 ? 
S 
S 
S := 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; 
6 
S 
S 
S 
6>5 ? 
In Tổng S 
Tổng S=2.28 
Với N = 5 
2.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 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 1/(a+N)<0.0001 
Nhập a 
S 
Đ 
1/(a+N) >= 0.0001 
 Bước 5: In S => Kết thúc. 
WHILE DO ; 
Đ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. 
Sai 
2. Lặp với số lần lặp không biết trước 
Trong đó: 
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ụ 
a 
Bà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. 
b 
Lậ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 

File đính kèm:

  • pptbai_giang_tin_hoc_lop_11_bai_10_cau_truc_lap_2_tiet.ppt