Tải bản đầy đủ (.doc) (6 trang)

bài 10 cấu trúc lặp

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (88.16 KB, 6 trang )

 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 ?


3. Nội dung bài mới :
TG
Hoạt Động Của GV
Hoạt Động Của HS
Nội Dung Bài
Tiết
12
+ Đặt vấn đề : Cấu trúc 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 1 điều kiện nào đó
còn đúng. Sau đây ta xét khái
Tin Học 11  Trang 1
 Bài 10 Cấu Trúc Lặp
niệm lặp.
Vd 1 : VCT tính điểm cho HS 1
lớp (giả sử lớp có 50 HS) sẽ
phải lặp lại 1 số thao tác như
sau với mỗi HS :
+ Nhập họ tên HS (hoặc SBD)
+ Nhập điểm các môn.
+ Tính tổng điểm hoặc tính
điểm trung bình.
- Nếu ctrình trên viết đi viết lại
các câu lệnh trên nhiều lần thì
rõ ràng không thuận tiện. Vì
thế NNLT sẽ đưa ra cấu trúc
lặp, ta chỉ cần viết các câu lệnh
đó cho 1 HS. Sau đó cho ctrình
thực hiện lặp lại các thao tác

đó 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.

S =
1
a
+
1
1a +
+
1
2a +
+ ... +
1
100a +
.
 Bài toán 2 : Tính và sau đó đưa
kết quả ra màn hình tổng.
S =
1
a
+
1
1a +
+
1
2a +
+ ... +
1
a N
+
+
...

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ố

câu lệnh để mô tả các cấu trúc lặp.
2/- Lặp với số lần biết trước và
câu lệnh For – Do :
Xét 2 thuật toán Tong_1a và
Tong_1b (Xem SGK trang 43 )
Tin Học 11  Trang 2
 Bài 10 Cấu Trúc Lặp
Tiết
13
Sau khi so sánh và giải thích 2
thuật toán trên ta kết luận như :
- Ở Tong_1a thì chúng ta áp
dụng câu lệnh lặp dạng tiến
- Ở Tong_1b thì chúng ta áp
dụng câu lệnh lặp dạng lùi.
+ Sau đây chúng ta sang phần
cú pháp.
- Dạng tiến : Sau mỗi lần thực
hiện biến đếm tăng lên 1 hoặc
ta có thể dùng hàm succ(i)
- Dạng lùi : Sau mỗi lần thực
hiện biến đếm giảm đi 1 hoặc
ta có thể dùng hàm Pred(i).
? Ở dạng tiến vòng lặp kết thúc
khi nào ?
? Ở dạng lùi vòng lặp kết thúc
khi nào ?
+ Đặt vấn đề: ở tiết trước
chúng ta đã học câu lệnh lặp ở
2 dạng tiến và lùi, hôm nay

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 :

For < Biến đếm > := < giá trò cuối >
Downto <giá trò đầu>Do <câu lệnh>;
Trong đó :
- Biến đếm : là biến đơn có kiểu
nguyên.
- Giá trò đầu và giá trò cuối : là các
biểu thức cùng kiểu với biến đếm và
giá trò đầu phải nhỏ hơn hoặc bằng
giá trò cuối.(Nếu giá trò đầu lớn hơn
giá trò cuối thì dòng lặp không được
thực hiện.
 Quá trình thực hiện lệnh :
- Dạng tiến : Được thực hiện tuần tự,
với biến đếm nhận lần lượt các giá trò
liên tiếp tăng từ giá trò đầu đến giá
trò cuối.
- Dạng lùi : Được thực hiện tuần tự,
với biến đếm nhận lần lượt các giá trò
liên tiếp giảm từ giá trò cuối đến giá
trò đầu.
 Ví dụ 1 : Xét 2 chương trình
tính : Tong_1a và Tong_1b
Program Tong_1a ;
Uses crt ;
Var S : real ;
a, N : integer ;
Begin
Tin Học 11  Trang 3
 Bài 10 Cấu Trúc Lặp
Vd 1 : VCT tính tổng các số

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

S := S + 1/(a+ N) ;
Writeln(‘ Tong S la : ‘, S :8:2) ;
Readln ;
End.
Program Tong_1b ;
Uses crt ;
Var S : real ;
a,N : integer ;
Begin
Write(‘Nhap vao gia tri a :’) ;
Readn(a) ;
S := 1/a ;
For N := 100 Downto 1 do
S := S + 1/(a+ N) ;
Writeln(‘ Tong S la : ‘, S :8:2) ;
Readln ;
End.
 Ví dụ 2 : VCT nhập vào 2 số
nguyên dương dương M và N(M < N )
, sau đó tính và đưa ra màn hình tổng
các số chia hết cho 3 hoặc 5 trong
phạm vi từ M đến N.
Program Vi_du 2 ;
Uses crt ;
Var M, N, I : integer ;
T : longint ;
Begin
Write(‘Nhap vao 2 gia tri M va N
(M < N) :’) ;
Readn(M,N) ;

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 đó

đk lặp không còn đúng nữa và
cấu trúc sẽ kết thúc.
+ Vòng lặp kết thúc
khi 1 điều kiện cho
trước được thoả mãn
Readln ;
End.
3/- Lặp với số lần chưa biết
trước và câu lệnh While – Do :
Để giải bài toán 2 ta xây dựng thuật
toán Tong_2 như sau :
B1 : S
¬
1/a ; N
¬
0 ; {ktạo s và N}
B2 : Nếu 1/(a+N) < 0.0001 chuyển
sang B5 ;
B3 : N
¬
N + 1 ;
B4 : S
¬
S + 1/(a+N) rồi quay lại B2;
B5 : Đưa S ra màn hình, rồi kết thúc ;
 Cú pháp :
While < điều kiện > Do
< Câu lệnh > ;
Trong đó :
- Điều kiện : là biểu thức lôgic ;

- 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

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×