- Hiểu nhu cầu cấu trúc lặp với số lần lặp 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ể 2.[r]
(1)Tuần 12 → 14 Tiết 12 → 14
§3 CẤU TRÚC LẶP I Mục tiêu:
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 nhu cầu cấu trúc lặp với số lần lặp 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 đắn loại cấu trúc lặp vào tình cụ thể Kỹ năng:
- Mơ tả thuật tốn số tốn đơn giản có lệnh lặp - Viết thuật toán số toán đơn giản
3 Thái độ: Nghiêm túc học tập II Phương pháp phương tiện dạy học:
1 Chuẩn bị giáo viên: Bảng phụ
2 Chuẩn bị học sinh: Đọc trước SGK Tin học 11 III Hoạt động dạy học:
1 Ổn định lớp, kiểm tra sĩ số Kiểm tra cũ
3 Tiến hành tiết dạy
Nội dung bản Hoạt động GV HS
Tiết 12: HĐ1:
GV: Nêu ví dụ 1: Giả sử phải viết hình số từ đến 24, số chiếm dòng
0 24
GV: Gọi HS lên bảng viết thủ tục trên?
HS: writeln(0) writeln(1) …… writeln(24)
GV: Như toán phải thực 25 lần lệnh writeln → lặp lặp lại
GV: Đưa tốn (bảng phụ) u cầu HS tìm cách viết chương trình HS: Suy nghĩ, trả lời
GV: Nhận xét đưa cách giải “dùng cấu trúc lặp”
(2)1 Lặp:
Trong lập trình có thao tác phải lặp lại nhiều lần, ta gọi cấu trúc lặp Lặp thường có loại:
- Lặp với số lần biết trước - Lặp với số lần trước
NNLT cung cấp số câu lệnh để mô tả cấu trúc lặp
2 Lặp với số lần biết trước câu lệnh for-do: Trong Pascal, có loại câu lệnh lặp có số lần biết trước:
- Dạng lặp tiến:
For <biến đếm> := <giá trị đầu> to <giá trịcuối> do <câu lệnh>
Trong đó:
Biến đếm (kiểu đếm) thường biến kiểu số nguyên
Giá trị đầu, giá trị cuối biểu thức kiểu với biến đếm Giá trị đầu phải nhỏ giá trị cuối
- Dạng lặp lùi:
For <biến đếm> := <giá trị cuối> downto <giá trị đầu> <câu lệnh>
Hoạt động lệnh for –
- Ở dạng lặp tiến: biến đếm tự tăng dần từ giá trị đầu đến giá trị cuối
- Ở dạng lặp lùi: biến đếm tự giảm dần từ giá trị cuối đến giá trị đầu
Tương ứng với giá trị biến đếm câu lệnh sau do thực lần
Chú ý: Giá trị biến đếm điều chỉnh
tự động, câu lệnh viết sau do không
HĐ2:
GV: Các em quan sát lại ví dụ 1, sử dụng lệnh writeln 25 lần = số lần lặp → số lần lặp biết trước
GV: Nêu cấu trúc lặp với số lần biết trước: dạng lặp tiến
GV: Áp dụng mơ tả cấu trúc vào ví dụ 1:
For i:=0 to 24 do writeln(i) GV: Nêu ví dụ 2: Giả sử phải viết hình số từ đến 24, số chiếm dòng
24 23 22
GV: Nêu cấu trúc lặp với số lần biết trước: dạng lặp lùi
(3)Tiết 13:
Ví dụ 1: Viết chương trình tính tổng
100 1 1
a a
a a S
Program Tong_1a; Use crt;
Var S: real; a, i: integer; Begin
Clrscr;
Write(‘ Hay nhap gia tri a vao!’); Readln(a);
S:=1.0/a;
For i:=1 to 100 do S:=S+1.0/(a+i);
Writeln(‘Tong S la:’,S:8:4); Readln
End.
Ví dụ 2: Chương trình thực nhập từ bàn phím hai số nguyên dương M N (M<N), tính đưa hình tổng số chia hết cho phạm vi từ M đến N
For i:=M to N do
If (i mod 3=0)or(i mod 5=0) then T := T + i;
GV: Nêu ví dụ 1, phân tích toán dựa vào thuật toán Tong_1a SGK trang 43
GV: Một chương trình gồm phần? HS: 2phần (phần khai báo phần thân chương trình)
GV: Trong phần khai báo cần khai báo gì?
HS: Khai báo tên chương trình, khai báo thư viện khai báo biến a, S, i
GV: Lệnh thông báo nhập giá trị cho biến a lệnh nhập giá trị cho biến a nào?
HS: Suy nghĩ trả lời
GV: Áp dụng lệnh For tiến để viết câu lệnh thực tính tổng nào?
GV: Lệnh xuất kết hình? GV: Các em viết lại chương trình với dạng For lùi
HS: suy nghĩ tự viết chương trình vào tập
GV: Phân tích tốn, dẫn dắt đến áp dụng câu lệnh tương ứng để viết chương trình
GV: Cần có biến đếm chạy từ M đến N, kiểm tra biến đếm chia hết cho cộng giá trị biến đếm vào biến tổng
GV: Chia lớp thành nhóm, dựa vào gợi ý GV nhóm suy nghĩ để viết chương trình thực tốn
HS: Hoạt động nhóm, viết chương trình sau lên trình bày
(4)Tiết 14:
3 Lặp với số lần chưa biết trước câu lệnh while-do:
Bài tốn: Tính tổng
1 1 N a a a a
S
0001 , N a Thuật toán: Bước 1: S1/a; N0;
Bước 2: Nếu 1/(a+N)<0,0001 chuyển đền bước 5;
Bước 3: NN+1;
Bước 4: SS+1/(a+N); quay lại bước 2;
Bước 5: Xuất S MH kết thúc
Để mô tả cấu trúc lặp với số lần chưa biết trước, Pascal dùng câu lệnh lặp while – do có dạng:
while <điều kiện> <câu lệnh>; Trong đó:
- điều kiện: biểu thức lôgic;
- câu lệnh: lệnh đơn lệnh ghép Pascal
Ví dụ:
S := 1/a; N := 0;
while 1/(a+N) >= 0.0001 do begin
N := N+1; S := S+1/(a+N); end;
Sơ đồ khối:
Hoạt động: Trong điều kiện cịn câu lệnh cịn thực
Ví dụ 1: Chương trình tính tổng Program Tong_3;
Uses crt; Var S: real;
a, N: integer; Begin
GV: Nêu toán đặt vấn đề
GV: Nêu thuật toán giải toán
GV: Như vậy, việc lặp với số lần chưa biết trước kết thúc điều kiện cho trước nhận giá trị gì? HS: Nhận giá trị
GV: Nêu cấu trúc lặp với số lần chưa biết trước Pascal
GV: Viết câu lệnh lặp với số lần chưa biết trước để tính tổng toán
GV: Dựa vào sơ đồ khối nêu hoạt động lệnh lặp với số lần chưa biết trước while – do?
GV: Các em gấp sách lại, hoạt động theo nhóm viết chương trình giải tốn
GV: Quan sát, hướng dẫn HS hoạt động, trao đổi viết chương trình Đúng
Câu lệnh
Sai Điều
(5)Readln(a);
S := 1/a; N := 0;
While 1/(a+N) >= 0.0001 do Begin
N := N+1; S := S+1/(a+N); End;
Writeln(‘Tong S = ‘,S:8:4); Readln
End
Ví dụ 2: Tìm ước chung lớn (UCLN) hai số nguyên dương M N
(Sgk_trang 47-48)
nhóm lên bảng trình bày
GV: Gọi HS nhận xét làm nhóm
GV: Nhận xét
GV: Yêu cầu HS đọc sách xem lại thuật toán, sơ đồ khối tốn sau suy nghĩ viết chương trình
IV Đánh giá cuối bài:
- GV: Nhắc lại số khái niệm - GV: Nhắc lại cấu trúc câu lệnh - Cho tập nhà
- HS: Về nhà xem lại kiến thức học, chuẩn bị kiểm tra tiết Tổ trưởng kí duyệt Ngày 08 tháng 11 năm 2008