Tiết : 13 Tuần : 13
Ngày soạn: CẤU TRÚC LẶP (tiết 2/2)
I. MỤC TIÊU1. Kiến thức 1. 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.
- Biết cấu trúc chung của lệnh lặp với số lần lặp chưa biết trước While trong NNLT Pascal - Biết sử dụng đúng lệnh lặp While . . . Do
2. Kĩ năng:
- Bước đầu sử dụng được lệnh lặp While . . . Do để lập trình giải quyết 1 số bài toán đơn giản.
- Phân biệt được sự giống và khác nhau giữa cấu trúc lặp For và While. - Sử dụng đúng lệnh lặp While trong lập trình.
- Bước đầu biết lựa chọn đúng dạng lệnh lặp để lập trình giải quyết một số bài toán đơn giản.
3. Tư duy và thái độ: Tích cực trong học tập, cẩn thận , chính xác.
II. CHUẨN BỊ
1. Giáo viên: Máy vi tính, Projector, sách giáo khoa, sách giáo viên...
2. Học sinh: sgk, và chuẩn bị bài trước
III. PHƯƠNG PHÁP VÀ PHƯƠNG TIỆN
1. Phương pháp: Gợi mở, vấn đáp, đan xen hoạt động nhóm
2. Phương tiện: Giáo án, phòng máy vi tính, projector,...
III. TIẾN TRÌNH BÀI HỌC1. ổn định lớp, kiểm tra sĩ số. 1. ổn định lớp, kiểm tra sĩ số. 2. Kiểm tra bài cũ.
Hoạt động 1: (7 phút) Kiểm tra bài cũ
Hoạt động của Giáo Viên Hoạt động của Học Sinh
1. Trình bày các dạng cấu trúc câu lệnh lặp vớisố lần biết trước? số lần biết trước?
- Gọi hs lên trả lời
2. Viết CT nhập vào 2 số nguyên dương a, b(a<b), tính và đưa ra màn hình tổng các số (a<b), tính và đưa ra màn hình tổng các số nguyên trong phạm vi từ a đến b.
- Cho hs xung phong.
Nhận xét, đánh giá, cho điểm
Hs1: trả lời câu hỏi 1
Hs2: trình bày chương trình trên bảng
Var a, b, i , S : longint; Begin
Write(‘Nhap a va b (a<b): ‘); Readln(a, b); S := 0;
For i := a To b Do S := S + i ; Writeln(‘Ket qua: ’, S); Readln
3. Bài mới : BÀI 10 : CẤU TRÚC LẶP
Hoạt động 1: (10 phút) Tìm hiểu ý nghĩa của cấu trúc lặp có số lần chưa biết trước
a. Mục tiêu:
Biết được sự cần thiết phải có của cấu trúc lặp có số lần chưa biết trước trong lập trình
b. Nội dung:
- Bài toán 1: Viết CT tính tổng
N a a a a S + + + + + + + = ... 1 2 1 1 1 1 cho đến khi 1 <0.001 +N a
- Bài toán 2: Ông An có số tiền là A đồng, ông gửi tiết kiệm ngân hàng với lãi suất 1,5%/tháng. Hỏi sau bao nhiêu tháng (không rút tiền lãi hàng tháng) ông ta được số tiền lớn hơn B đồng?
c. Các bước tiến hành:
Hoạt động của Giáo Viên Hoạt động của Học Sinh Nội dung bài giảng 1. Nêu nội dung bài toán 1
-Sự khác nhau của bài toán này với bài toán tính tổng đã học ở tiết trước? - Lặp bao nhiêu lần?
- Lặp đến khi nào?
2. Nêu nội dung bài toán 2
-Sự khác nhau của bài toán này với bài toán đã giải ở tiết trước?
- Lặp bao nhiêu lần? - Lặp đến khi nào?
Tóm lại, qua 2 ví dụ trên ta thấy có 1 dạng toán có sự lặp lại của câu lệnh nhưng không biết được số lần lặp. Cần có 1 cấu trúc điều khiển lặp lại 1 công việc nhất định khi thõa mãn 1 điều kiện nào đó.
1. Chú ý lắng nghe, quan sátvà suy nghĩ trả lời và suy nghĩ trả lời
-Bài trước: cho giới hạn N Bài này: cho giới hạn S - Chưa xác định được ngay - Cho đến khi điều kiện
001 . 0 1 < +N a được thõa mãn 2. Chú ý lắng nghe, quan sát và suy nghĩ trả lời
- Bài trước: biết số tháng, hỏi số tiền
Bài này: biết số tiền, hỏi số tháng
- Chưa biết, đó chính là số tháng phải tìm
- Đến khi số tiền thu được >B
Bài toán 1
Bài toán 2
Hoạt động 2: (15 phút) Tìm hiểu cấu trúc lệnh lặp While trong NNLT Pascal
a. Mục tiêu:- Biết được cấu trúc chung của lệnh lặp While. Hiểu được ý nghĩa của các thành phần trong câu lệnh. Biết được sự thực hiện của máy khi gặp While. Vẽ được sơ đồ thực hiện.
b. Nội dung:
Cấu trúc: While <điều kiện> Do <lệnh cần lặp>; Sự thực hiện:
Bước 1: Tính giá trị của <điều kiện>.
c. Các bước tiến hành:
Hoạt động của Giáo Viên Hoạt động của Học Sinh Nội dung bài giảng 1. Y/cầu hs n/cứu sgk và cho biết cấu
trúc chung của lệnh lặp While. Giải thích:
<điều kiện>: biểu thức quan hệ hoặc biểu thức logic.
<lệnh cần lặp>: các lệnh cần phải lặp lại
Hỏi:
- Điều kiện để lặp lại trong 2 bài toán là gì?
- Trong 2 bài toán lệnh cần lặp là gì?
- Dựa vào cấu trúc, cho biết máy thực hiện tính <điều kiện> trước hay <lệnh cần lặp> trước?
- Sự khác nhau trong lệnh cần lặp của For và While là gì?
2. Y/cầu hs vẽ sơ đồ thực hiện lênbảng bảng
- Gọi hs khác nhận xét.
* Treo sơ đồ mẫu và giải thích
1. Tham khảo sgk và trả lờiCấu trúc: Cấu trúc:
While <điều kiện> Do
<lệnh cần lặp>; Bt1: 1 >0.001 +i a Bt2: A < B + Bt1: S := S + 1/(a+I); để tính tổng I := I + 1; để tăng chỉ số + Bt2: A := A + 0.015*A; để tính tiền T := T + 1; để tính số tháng - Suy nghĩ và trả lời:
Tính điều kiện trước, thực hiện lệnh lặp sau.
- Trong While phải có lệnh thay đổi biến chỉ số.
2. Lên bảng vẽ sơ đồ thựchiện của lệnh While. hiện của lệnh While. -Nhận xét đúng sai và bổ sung
* Chú ý lắng nghe và ghi nhớ
3. Câu lệnh While …Do
Cấu trúc:
While <điều kiện> Do
<lệnh cần lặp>; Sơ đồ thực hiện:
* Trong <lệnh cần lặp> phải có lệnh thay đổi biến chỉ số. (để thay đổi giá trị <điều kiện>)
Hoạt động 3: (15 phút) Rèn luyện kĩ năng vận dụng lệnh lặp While
a. Mục tiêu:
Bước đầu biết sử dụng đúng lệnh While để lập trình giải quyết một số bài toán đơn giản.
b. Nội dung:
Ví dụ 1: Bài toán 2 tìm hiểu ở trên
Ví dụ 2: Viết chương trình tìm ước chung lớn nhất của 2 số nguyên dương M, N được nhập từ bàn phím.
c. Các bước tiến hành:
Hoạt động của Giáo Viên Hoạt động của Học Sinh Nội dung bài giảng 1. Trở lại bài toán 2
- Đã xác định <điều kiện>, <lệnh cần lặp> hãy viết câu lệnh While hoàn chỉnh? 1. Quan sát, xác định lại các thành phần và trả lời: While A< B Do begin A := A + 0.015*A; T := T + 1; Ví dụ 1: Program VD;
Var A, B: extended; T: byte; Begin
Write(‘So tien ban dau A: ’); Readln( A);
Write(‘So tien can co B(B>A): ’);
điều kiện
lệnh cần lặp
SĐ Đ
- Chia lớp theo từng bàn. Y/cầu hs từng bàn thảo luận và viết chương trình hoàn thiện.
- Cho 1 hs lên bảng trình bày. - Gọi 1- 2hs khác n/xét, đánh giá. * Chính xác hóa chương trình cho cả lớp. (chỉnh sửa lại chtrình của hs)
2. Nêu nội dung ví dụ 2
Phân tích để xác định <điều kiện> và <lệnh cần lặp>.
Minh họa khi tìm ucln của 2 số 15 và 25
M 15 15 5 5
N 25 10 10 5
Trả lời: ucln (15, 25) = 5 Hỏi:
- Điều kiện để tiếp tục lặp là gì? - Các lệnh cần lặp là gì?
- Y/cầu hs nêu thuật toán tìm ucln của 2 số đó.
- Y/cầu hs viết chương trình hoàn thiện bài toán ở nhà.
Củng cố: Hãy nêu 2 câu hỏi cần đặt ra khi gặp bài toán dạng này?
end;
- Tập trung làm việc theo bàn để viết hoàn chỉnh chương trình. - Lên bảng trình bày - N/xét Đúng–Sai, bổ sung.
* Ghi nhớ những phần sửa chữa của gviên.
2. Tập trung theo dõi đểthấy công việc cần thực thấy công việc cần thực hiện - Điều kiện: M<>N - M := M – N; hoặc N := N – M; - T/toán: B1: Nếu m=n thì ucln=m, dừng; B2: Nếu m>n thì m:=m-n ngược lại n:=n-m, qlại B1. Suy nghĩ và trả lời: + Điều kiện nào để lặp lại + Những lệnh nào cần lặp lại Readln(B); T := 0; While A< B Do begin A := A + 0.015*A; T := T + 1; end;
Writeln(‘Phai cho ’,T,’ thang’); Readln
End.