1. Dẫn dắt vào bài:
Xét công việc đổ nước vào bình từ hồ nước bằng ca 1 lít:
1. Đổ vào bình thể tích 30 lít , ta phải đổ bao nhiêu lần thì bình đầy?
2. Đổ vào bình không biết dung tích ta phải đổ bao nhiều lần thì bình
đầy?
1 lít
Hồ nước
Bình nước 20 lít
2. Một số thuật toán có những thao tác phải thực hiện lặp đi, lặp lại một
số lần. Một trong các đặc trưng của máy tính là có khả năng thực hiện
hiệu quả các thao tác lặp này.
VD1: Bài toán tính tổng cộng dồn các số từ 1, 2, ... đến 100
S = 1 + 2 + 3 + ... + 98 + 99 + 100 = ?
Thuật toán giải quyết bài toán trên ?
100 lần để ra được kết quả cuối cùng.
- thực hiện đúng
VD2: Bài toán tìm ước số chung lớn nhất của 2 số. Thuật toán ?
n khi
.
Vậy khi viết chƣơng trình máy tính, để chỉ dẫn cho máy tính thực
hiện đúng công việc tƣơng tự nhƣ trên ta sẽ tìm hiểu 1 cấu trúc lệnh
mới trong lập trình Pascal: “Cấu trúc lặp”
3. Trường: ĐH Sư Phạm TP.HCM
Khoa: Công Nghệ Thông Tin
Môn: Phương Pháp Dạy Học 3
TIN HỌC 11- CHƢƠNG 3:
CẤU TRÚC RẼ NHÁNH VÀ LẶP
-BÀI 10: CẤU TRÚC LẶP.
GVHD: Cô Nguyễn Thị Ngọc Hoa
SVTH: Nguyễn Thị Thanh Xuân–K36.103.090
LỚP: Tin4
4. Nội dung bài học
1
Lặp
2
Lặp với số lần biết trước và câu lệnh For-do
3
Củng cố và bài tập về nhà
4
5. 1. Lặp
KHÁI NIỆM
Lặp là điều khiển thực hiện công việc lặp đi lặp lại khi
chƣa đủ số lần lặp hoặc khi có một điều kiện nào đó còn
đúng.
Có hai loại lặp
+ Lặp với số lần biết trƣớc
+ Lặp với số lần chƣa biết trƣớc
6. Bài toán Tong_1
Với a là số nguyên (a>2). Tính và đưa kết quả ra màn hình tổng
1
S
N
a
TONG_1
Xuất phát
S
1
a
1
a
...
2
1
a
1
a
1
1
a
100
Lần 100
Lần 2
Lần 1
1
a
1
1
+…
2
a
100
Sau mỗi lần thực hiện cộng tăng thêm 1/(a+N) (với N= bao nhiêu?
Sau mỗi lần thực hiện tổng Svào tổng S một giá trị bằng 1,2,3…,100)
Việc tăng giá trị cho tổng S đƣợc lặp đi lặp lại 100 lần
Số lần lặp biết trƣớc
7. Phân tích bài toán 1
1
a
S
1
a 1
1
1
a
+…
2
a 100
....................
Nhận xét
S0 = 1/a
S1 = S0 + 1/(a+1)
S2 = S1 + 1/(a+2)
.....
S100 = S99 + 1/(a+100)
Bắt đầu từ S1 việc tính S được
lặp đi lặp lại 100 lần theo quy
luật
Ssau = S trước + 1/(a+N)
(với N = 1,2,…, 100)
8. 2. Lặp với số lần biết trƣớc
Chia lớp thành 4 nhóm, mỗi nhóm 8 bạn, thời gian thảo luận là 5 phút, thời
gian báo cáo của từng nhóm là 1,5 phút
Nhiệm vụ: các nhóm đọc kỹ 2 thuật toán và trả lời câu hỏi:
Thuật toán:
Tong_1a
B1: S:=1/a; N:=0;
B2: N:=N+1;
B3: Nếu N>100 thì chuyển sang
bƣớc 5;
B4: S:=S+1/( a+N) rồi quay lại
bƣớc 2;
B5: đƣa ra S rồi kết thúc.
Thuật toán
Tong_1b
B1: S:=1/a; N:= 101;
B2: N:=N-1;
B3: Nếu N<1 thì chuyển sang
bƣớc 5;
B4: S:=S+1/( a+N) rồi quay lại
bƣớc 2;
B5: đƣa ra S rồi kết thúc.
9. 2. Lặp với số lần biết trƣớc
Bộ câu hỏi:
•
•
Bộ câu hỏi 1:
1. Thuật toán Tong_1a và thuật toán tong_1b khác nhau ở bước nào?
2. Trong 2 thuật toán trên, khi nào thì ngừng việc tính tổng?
3. Giá trị đầu, giá trị cuối của N là bao nhiêu? Biến đếm là biến nào?
4. Việc cộng dồn giá trị mới vào S cũ được lặp lại bao nhiêu lần?
Bộ câu hỏi 2: liên hệ cú pháp lệnh lặp với thuật toán và cho biết:
1. Trình bày cú pháp dạng lặp tiến, dạng lặp lùi trong Pascal?
2. Nêu những quy định cho biến đếm, giá trị đầu, giá trị cuối?
3. Phân tích sự khác nhau cơ bản trong hoạt động của dạng lặp tiến và
dạng lặp lùi?
10. 2. Lặp với số lần biết trƣớc
Báo cáo kết quả: mỗi nhóm cử 1 đại diện lên trình bày trước lớp
về nội dung đã thảo luận theo yêu cầu của giáo viên. Các nhóm
khác nhận xét, bổ sung, sau đó giáo viên đánh giá, tổng kết, cộng
điểm khuyến khích cho nhóm có câu trả lời hay.
Nhóm 1: trả lời câu hỏi 1, 2 của bộ câu hỏi 1.
Nhóm 2: trả lời câu hỏi 3.4 của bộ câu hỏi 1.
Nhóm 3: trả lời câu hỏi 1,2 của bộ câu hỏi 2.
Nhóm 4: trả lời câu hỏi 3 của bộ câu hỏi 2.
11. 2. Lặp với số lần biết trƣớc
Với a là số nguyên(a>2). Tính và đưa kết quả ra màn hình tổng
S
1
a
1
a
1
1
a
Thuật toán Tong_1a
1
...
2
a
100
Thuật toán Tong_1b
Bƣớc 1. S 1/a ; N 0;
Bƣớc 1. S 1/a ; N 101;
Bƣớc 2. N N+1;
Bƣớc 2. N N-1;
Bƣớc 3. Nếu N>100 thì chuyển đến bƣớc 5;
Bƣớc 3. Nếu N<1 thì chuyển đến bƣớc 5;
Bƣớc 4. S S+1/(a+N) rồi quay lại bƣớc 2;
Bƣớc 4. S S+1/(a+N) rồi quay lại bƣớc 2;
Bƣớc 5. Đƣa S ra màn hình rồi kết thúc.
Bƣớc 5. Đƣa S ra màn hình rồi kết thúc.
Giá trị N khi bắt đầu tham gia vòng
lặp là 1 và sau mỗi lần lặp N tăng lên
1 cho đến khi N>100(N=101) thì kết
thúc.
Giá trị N khi bắt đầu tham gia vòng lặp
là 100 và sau mỗi lần lặp N giảm đi 1
cho đến khi N<1 (N=0) thì kết thúc.
Số lần lặp của cả hai thuật toán trên là biết trƣớc và nhƣ nhau (100 lần)
12. 2. Lặp với số lần biết trƣớc
a. Dạng 1 (dạng tiến)
FOR
m> :=
u> TO
i> DO
nh>;
Trong đó
b. Dạng 2 (dạng lùi)
Ví dụ là biến kiểu số nguyên hoặc kí tự.
Biến đếm
FOR
m> :=
i> DOWNTO
u> DO
FOR i := 1 TO 10 DO S := S +1/i;
nh >;
FORtrị := Agiá trịZ DO các biểu thức cùng kiểu với biến
Giá i đầu, TO cuối là write (i);
đếm, giá trị đầu phải nhỏ hơn giá trị cuối.
Gíá 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
13. So sánh sơ đồ khối 2 dạng cấu trúc For
a. Sơ đồ khối dạng lặp tiến
b. Sơ đồ khối dạng lặp lùi
14. Sơ đồ khối 2 dạng lặp For của BT Tong_1a và Tong_1b
a. Sơ đồ khối dạng lặp tiến
b. Sơ đồ khối dạng lặp lùi
B1
B2
B3
N >100
Đ
B4
B5
S
N<1
Đ
S
15. Củng cố và bài tập về nhà
1. Nhắc lại nội dung đã học
-Cấu trúc chung của câu lệnh lặp For. Sơ đồ thực
hiện của lệnh lặp For.
2. Câu hỏi, bài tập về nhà
-HS xem nội dung lại kiến thức bài học và bài tập
về nhà tại: http://nttxk36.wordpress.com/
16. Bài tập củng cố kiến Quiz
thức
Click the
Quiz button to edit this quiz