Bài 10 Cấu Trúc Lặp
Tuần : 6,7 Ngày soạn : 10/09/07
Tiết : 12,13,14
§10. CẤU TRÚC LẶP
I/- Mục đích – yêu cầu :
Về kiến thức :
+ Hiểu nhu cầu của cấu trúc lặp trong biểu diễn thuật toán.
+ Hiểu cấu trúc lặp với số lần biết trước, cấu trúc lặp kiểm tra điều kiện trước.
+ Biết cách vận dụng đúng đắn từng loại cấu trúc lặp vào tình huống cụ thể.
Về kỹ năng :
+ Mô tả được thuật toán của một số bài toán đơn giản có sử dụng lệnh lặp.
+ Viết đúng các lệnh lặp kiểm tra điều kiện trước, lệnh lặp với số lần đònh trước.
+ Viết được thuật toán giải một số bài toán đơn giản.
Về thái độ :
+ Tạo sự ham muốn cho HS giải toán bằng NNLT trên máy tính.
+ Tiếp tục rèn luyện các phẩm chất cần thiết của người lập trình như xem xét giải quyết
vấn đề 1 cách cẩn thận, chu đáo, có sáng tạo, không thoả mãn với kết quả ban đầu đạt
được....Điều này thể hiện trong suốt quá trình từ khi phân tích bài toán đến khi lựa chọn
dữ liệu, cấu trúc điều khiển thực hiện thuật toán, viết chương trình và cuối cùng là dòch,
sửa lỗi, kiểm thử, cải tiến thích ứng với các bộ dữ liệu và trạng thái bài toán khác nhau.
II/- Chuẩn bò :
GV : + Phải có giáo án và các đồ dùng dạy học liên quan đến bài dạy.
+ Cần nêu rõ ý nghóa của cấu trúc lặp ( thông qua ví dụ trong SGK 42).
+ Chuẩn bò minh hoạ Tong_1a và Tong_1b trên giấy khổ lớn.
HS : + Đọc trước sách giáo khoa ở nhà.
PP : + Diễn giảng ,phát vấn và các hình vẽ trực quan (nếu có ).
III/- Hoạt động dạy học :
1. Ổn đònh lớp : Kiểm tra só số (1’)
2. Kiểm tra bài cũ : (4’)
? Hãy viết cú pháp của câu lệnh rẽ nhánh dạng thiếu và dạng đủ đồng thời nêu quá trình
thực hiện lệnh ?
đó với các HS khác. Quá trình
dừng lại khi ta nhập đủ số điểm
cho 50 HS.hoặc nhập chưa đủ
số điển cho 50 HS.( Lặp với số
lần biết trước và lặp với số lần
chưa biết trước).
- Quá trình lặp không thể dừng
được gọi là quá trình lặp vô
hạn. Do đó cần phải có 1 đk sai
để sau 1 số lần lặp thì vòng lặp
sẽ kết thúc.
Vd 2 : Bài toán gửi tiền tiết
kiệm vào ngân hàng. Hàng
tháng phải tính lãi và cộng
thêm vào gốc đang gửi hay nói
cách khác gốc của tháng sau =
gốc + lãi tháng trước.
Vd 3 : Tính tổng của một đoạn
số nguyên mà không được
dùng công thức.
? Hãy cho biết 2 thuật toán trên
có những gì giống và khác
nhau
+ Giống nhau : đều
thực hiện vòng lặp
1/- Khái niệm lặp :
Xét 2 bài toán như sau với a là số
nguyên và a >2.
Bài toán 1 : Tính và sau đó đưa
kết quả ra màn hình tổng.
Cho đến khi
1
a N+
< 0,0001.
Cách giải :
S được gán giá trò
1
a
;
Tiếp theo mỗi lần cộng vào tổng S
một giá trò
1
a N+
với N= 1,2,3,...
- Đối với bài toán 1, số lần lặp là 100
và việc cộng vào tổng S sẽ kết thúc
khi đã thực hiện việc cộng 100 lần.
- Đối với bài toán 2, số lần lặp chưa
biết trước nhưng việc cộng vào tổng
S sẽ kết thúc khi thoả điều kiện
1
a N+
< 0.0001 .
Trong lập trình, có những thao tác
phải thực hiện lặp đi lặp lại nhiều
lần, khi đó ta gọi là cấu trúc lặp.Cấu
trúc lặp thường có 2 loại :
- Lặp với số lần biết trước.
- Lặp với số lần chưa biết trước.
Các NNLT nào cũng cung cấp 1 số
chúng ta vận dụng 2 dạng này
để áp dụng cho 2 thuật toán
Tong_1a và Tong_1b như sau :
và lặp lại 100 lần.
+ Khác nhau : ở
thuật toán tong_1a
tăng N lên 1 sau
mỗi lần thực hiện
(N
→
N+ 1 )
,
còn ở
thuật toán Tong_1b
thì giảm đi 1 sau
mỗi lần thực hiện
(N
→
N-1)
+ Vòng lặp kết thúc
khi Biến đếm >= giá
trò cuối.
+ Vòng lặp kết thúc
khi Biến đếm <= giá
trò đầu.
Cú pháp lặp :
Dạng tiến :
For < Biến đếm > := < giá trò đầu >
To < giá trò cuối > Do < câu lệnh > ;
Dạng lùi :
nguyên chẳn hoặc lẽ từ 1 đến
50.
Program sochan ;
Uses crt ;
Var T, I : integer ;
Begin
For I := 1 to 50 do
If I (mod 2 = 0 ) Then
T := T + I ;
Writeln( Tong =’, T );
Readln ;
End.
Vd 2 : VCT tổng S = 1 + 2 + 3
+ ... + N .
Program Vi_du 2;
Uses crt ;
Var N, I,S : integer ;
Begin
Write(‘Nhap vao gia tri N:’) ;
Readln(N) ;
S := 0 ;
For I := 1 to N do
S := S + I ;
Writeln(‘ Tong S =’ , S ) ;
Readln ;
End.
Write(‘Nhap vao gia tri a :’) ;
Readn(a) ;
S := 1/a ;
For N := 1 to 100 do
T := 0 ;
For I := M to N do
If (I mod 3 =0) or (I mod 5 = 0) then
T := T + I ;
Writeln(‘ KET QUA LA : ‘, T) ;
Tin Học 11 Trang 4
Điều
Kiện
Câu lệnh
Bài 10 Cấu Trúc Lặp
Tiết
14
+ Đặt vấn đề : ở phần trước
chúng ta đã được học câu lệnh
lặp dạng tiến và dạng lùi đó là
2 dạng lặp với số lần biết
trước, nghóa là chúng ta sẽ biết
được nó sẽ lặp lại bao nhiêu
lần rồi sau đó kết thúc, hôm
nay chúng ta tiếp tục tìm hiểu
thêm 1 dạng lặp nữa nhưng
chúng ta không biết trước số
lần lặp và dừng lại khi nào. Đó
là câu lệnh lặp dạng While –
Do.
? Em hãy cho biết vòng lặp
While – Do kết thúc khi nào ?
- Mỗi lần thực hiện công việc
có thể làm thay đổi giá trò của
điều kiện nên đến 1 lúc nào đó
- Câu lệnh : là 1 câu lệnh đơn hoặc
ghép.
Lưu đồ : sai
đúng
Tin Học 11 Trang 5