Có những bài toán ta bắt gặp những thao tác được lặp đi lặp lại khi chưa đủ số lần lặp hoặc khi 1 ĐK nào đó còn đúng, để viết được những thao tác đó, trong các NNLT đã cung cấp sẵn cho t[r]
(1)Tuần : 14 Ngày soạn 12 / 11/ 08
CHƯƠNG II CẤU TRÚC RẼ NHÁNH VÀ CẤU TRÚC LẶP Bài 10 CẤU TRÚC LẶP
A- Mục tiêu học: 1 Kiến thức :
Hiểu nhu cầu cấu trúc lặp biểu diễn thuật toán; Hiểu ý nghĩa cấu trúc lặp;
Hiểu cấu trúc lặp với số lần biết trước: Lặp tiến lặp lùi 2 Kỹ :
Mơ tả thuật tốn số tốn đơn giản có sử dụng cấu trúc lặp Viết câu lệnh lặp với số lần xác định trước
Viết thuật toán số toán đơn giản B- Phương pháp, phương tiện dạy học:
Thuyết trình, vấn đáp Phương tiện: Bảng vẽ
C- Chuẩn bị giáo viên học sinh: 1 Giáo viên:
Chuẩn bị số tốn có sử dụng cấu trúc lặp Nắm vững cấu trúc lặp thuật toán 2 Học sinh:
chuẩn bị nghiên cứu kĩ thuật toán SGK D- Tiến trình lên lớp:
I- Ổn định lớp : II- Kiểm tra cũ:
Viết chương trình kiểm tra N có phải số chẵn khơng chia hết cho hay không? III- Bài mới:
1 Đặt vấn đề:
Ta làm quen viết chương trình giải tốn đơn giản, có chương trình được viết theo cấu trúc có sử dụng cấu trúc rẽ nhánh Có tốn ta bắt gặp thao tác lặp lặp lại chưa đủ số lần lặp ĐK cịn đúng, để viết thao tác đó, NNLT cung cấp sẵn cho ta cấu trúc Cấu trúc đượ gọi cấu trúc lặp. 2 Triển khai bài:
Hoạt động giáo viên học sinh Nội dung kiến thức
HĐ1: Tìm hiểu nhu cầu cấu trúc lặp, ý nghĩa cấu trúc lặp Gv: Đưa tốn, u cầu HS tìm cách lập trình để
giải tốn Bài toán1:
HS: S:=1/a;
S:= S+ 1/(a+1); S:= S+ 1/(a+2); S:= S+ 1/(a+3); :
:
S:= S+ 1/(a+100);
Gv Hãy nhận xét cách giải trên?
Hs: Với N=100 ta thực 100 lần phép gán
Gv Ta thấy việc cộng lặp lặp lại 100 lần => số lần lặp xác định (biết trước)
Gv.Hướng dẫn cho học sinh đưa cách giải toán S:=0;
If (1/a<0.001) Then s:=1/a;
1 Khái niệm lặp.
xét toán sau với a>2 số ngun cho trước
Bài tốn Tính tổng S=
1 1
1 100
a a a Bài toán 2.
S=
1 1
a a a N với 1/ (a+N)<0.001
Cách giải: S:=1/a;
Lần lượt N=1,2,3, … ta tính s:=s+1/(a+N); Với toán 1, việc cộng thêm dừng N=100 => số lần lặp biết trước
Bài toán 2, việc cộng thêm dừng 1/ TIẾT
(2)If (1/(a+1)<0.001) Then s:=s+1/(a+1); If (1/(a+2)<0.001) Then s:=s+1/(a+2); If (1/(a+3)<0.001) Then s:=s+1/(a+3); :
:
Gv Yêu cầu học sinh nhận xét cách giả
Hs: Với cách ta 1/(a+n)<0.001 nên ta hết số câu lệnh
Gv Với cấu trúc đgl lặp số lần chưa xác định
(a+n)<0.001 => số lần lặp chưa biết trước Như vậy: Trong lập trình, có thao tác được lặp lặp lại chưa đủ số lần lặp hoặc khi ĐK cịn đúng, ta gọi cấu trúc lặp
Lăp: Lặp với số lần xác định không xác định.
NNLT cung cấp số câu lệnh để mơ tả cấu trúc trên.
HĐ2: Tìm hiểu thuật toán để giải toán 1,2 Câu lệnh FOR - DO Gv: Đưa hai thuật toán để giả toán
Thuật toán Tong_1a B1: S 1/a; N 0; B2: N N+1;
B3: Nếu N>100 đưa S kết thúc TT;
B4: S S+1/(a+N); B5: Quay lại B2
Thuật toán Tong_1b B1: S 1/a; N 101; B2: N N-1;
B3: Nếu N< đưa S kết thúcTT;
B4: S S+1/(a+N); B5: Quay lại B2
Gv: gọi HS nhận xét TT số vấn đề: Thuật tốn có lặp khơng?
Lặp lần?
Hai thuật toán giống khác nào? Cái thay đổi hai thuật toán này?
HS: Trao đổi đưa ý kiến riêng
Gv: Nhận xét so sánh kĩ hai thuật toán sau đưa cách lặp ngơn ngữ TP
Gv: Lấy ví dụ minh họa Tp để HS hiểu rõ cách hoạt động For - Do
2 Lặp với số ;ần biêt trước câu lệnh For- do.
a) Thuật toán giải toán 1a 1b Thuật toán Tong_1a (SGK)
Thuật toán Tong_1b (sgk) b) Câu lệnh For – do - Lặp dạng tiến.
FOR <biến đếm>:= <gtrị đầu> TO <giá trị cuối> DO <câu lệnh>;
- Lặp dạng lùi.
FOR <biến đếm>:= <giá trị cuối> DOWNTO <gtrị đầu> DO <câu lệnh>;
Trong đó:
- Biến đếm thường kiểu số nguyên
- Giá trị đầu , giá trị cuối biểu thức kiểu biến đếm
- Dạng lặp tiến: giá trị biến đếm tăng dần từ giá trị đầu đến giá trị cuối
- Dạng lặp lùi: giá trị biến đếm giảm dần từ giá trị cuối đến giá trị đầu đến
IV- Củng cố :(2 phút)
- Nhắc lại nhu cấu câu lệnh lặp viét chương trình
- Các ngơn ngữ lập trình thường cung cấp cho ta cấu trúc lặp dạng tiến lùi
- Cấu trúc câu lệnh For – For downto – cách hoạt động câu lệnh V- Dặn dò : ( phút)
Câu hỏi tập nhà
- Giải tập 5.a, 6, sách giáo khoa, trang 51 - Xem trước chương trình giải toán 1a 1b
- Xem nội dung phụ lục B, sách giáo khoa trang 131: Lệnh rẽ nhánh lặp - Xem nội dung phụ lục C, sách giáo khoa trang 139: Lệnh rẽ nhánh lặp -làm BT : Viết TT tính
N ! =1*2*3*…*N với N nhập từ bàn phím VI Rút kinh nghiệm