1. Giáo viên: Sgk, sgv, bảng phụ 2. Học sinh
III. HOẠT ĐỘNG DẠY HỌC
1. 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:
Hđ của GV Hđ của HS Nd ghi bả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át 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
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.
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>. Bước 2: Nếu <điều kiện> có giá trị đúng thì:
thực hiện lệnh cần lặp và quay lại B1.
c. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bả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ên 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ời
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ực 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>)
3. 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:
Hđ của GV Hđ của HS Nd ghi bả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?
- 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.
1. Quan sát, xác định lại cácthành phần và trả lời: thành phần và trả lời: While A< B Do begin A := A + 0.015*A; T := T + 1; 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.
Ví dụ 1:
Var A, B: extended; T: byte; Begin
Write(‘So tien ban dau A: ’); Readln( A);
Write(‘So tien can co B(B>A): ’); Readln(B); T := 0; While A< B Do điều kiện lệnh cần lặp S Đ
(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?
* 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 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
begin
A := A + 0.015*A;
T := T + 1;
end;
Writeln(‘Phai cho ’,T,’ thang’); Readln
End.
IV. ĐÁNH GIÁ CUỐI BÀI (5phút)1. Nội dung đã học 1. Nội dung đã học
- Cấu trúc chung của lệnh lặp While
- Sơ đồ thực hiện của lệnh While và sự thực hiện của máy.
2. Câu hỏi, bài tập về nhà
- Giải bài tập 5b, 7, 8 sgk trang 51.
- Đọc lại bài lệnh rẽ nhánh IF và làm các bài tập liên quan chuẩn bị cho tiết sau thực hành. - Xem trước nội dung bài thực hành số 2: sgk trang 49-50
- Xem thêm nội dung phụ lục B, sgk trang 131: Lệnh rẽ nhánh và lặp (Case ... of Và Repeat ... Until)
Ngày soạn: 23/10/07
Tiết 15 - 16 BÀI THỰC HÀNH SỐ 2
I. MỤC TIÊU
1. Kiến thức: Nắm được cấu trúc và sơ đồ thực hiện của cẩu trúc rẽ nhánh2. Kĩ năng: 2. Kĩ năng:
- Rèn luyện kĩ năng sử dụng cấu trúc rẽ nhánh trong việc lập trình giải một số ài toán cụ thể. - Làm quen với các công cụ phục vụ hiệu chỉnh chương trình
3. Thái độ: Tự giác, tích cực, chủ động trong thực hànhII. ĐỒ DÙNG DẠY HỌC II. ĐỒ DÙNG DẠY HỌC
1. Giáo viên: Phòng máy vi tính, Projector.2. Học sinh: Sgk, sbt, bài tập đã viết ở nhà. 2. Học sinh: Sgk, sbt, bài tập đã viết ở nhà. III. HOẠT ĐỘNG DẠY HỌC
1. Hoạt động 1: (35 phút) Làm quen với một chương trình và các công cụ hiệu chỉnh chtrình.
a. Mục tiêu: Hs biết được nội dung chương trình và kết quả sau khi thực hiện chương trình. Biết các công cụ dùng để
hiệu chỉnh chương trình khi cần thiết: thực hiện từng bước, xem kết quả trung gian.
b. Nội dung: Viết chtrình nhập vào 3 số nguyên dương a, b, c và kiểm tra xem chúng có phải là bộ số Pitago hay
không?
c. Các bước tiến hành:
1. Gợi ý để hs nêu khái niệm bộ số Pitago.
- Y/cầu hs cho ví dụ cụ thể?
- Phải sử dụng các đẳng thức nào để kiểm tra 3 số bất kỳ a, b, c là bộ số Pitago?
2. Chiếu chương trình mẫu lên bảng. Thực
hiện mẫu các thao tác: lưu, thực hiện từng lệnh chtrình, xem kết quả trung gian, thực hiện chtrình và nhập dữ liệu.
- Y/cầu hs gõ chtrình vào máy.
- Y/cầu hs lưu chtrình theo hdẫn của sgk. - Y/cầu hs thực hiện từng lệnh chtrình. - Y/cầu hs xem các kết quả trung gian a2, b2, c2 trên của sổ Watches
- Y/cầu hs tìm thêm bộ số a, b, c khác để thực hiện chtrình và so sánh
1. Theo dõi dẫn dắt của gv để
nêu khái niệm về bộ số Pitago: tổng bình phương 2 số bằng bình phương số còn lại. Ví dụ: 4 5 3 a2=b2+c2 b2=a2+c2 c2=a2+b2
2. Soạn chtrình vào máy.
Nhấn F2, gõ tên file, Enter Nhấn F7, nhập giá trị cho a = 3, b = 5, c = 4.
Làm theo hdẫn trên bảng Quan sát qua trình rẽ nhánh của từng bộ dữ liệu vào rồi trả lời.
* Xem kết quả trung gian
+ Vào Debug\ Watches, + nhấn phím Insert xuất hiện cửa sổ Add watch, nhập tên
biến cần theo dõi giá trị, rồi
nhấn Enter (lặp lại thao tác này nếu muốn cùng lúc xem giá trị nhiều biến)
2. Hoạt động 2: (45 phút )Rèn luyện kĩ năng lập trình hoàn thiện một bài toán
a. Mục tiêu: Hs đọc hiểu đề, phân tích yêu cầu của đề. Từ đó chọn được cấu trúc dữ liệu và lệnh phù hợp để lập
trình.
b. Nội dung: Viết chương trình tìm giá trị lớn nhất của 3 số a, b, c được nhập từ bàn phím. c. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
1. Nêu nội dung, mục đích y/cầu của bài
toán.
- Bước đầu tiên để giải bài toán? - Y/cầu hs xác định các nội dung đó?
- Làm thế nào để xác định gtln của 3 số a, b, c? (Nêu các bước tìm ra gtln)
- Y/cầu hs phát thảo thuật toán.
- Qua thuật toán ta sẽ sử dụng cấu trúc nào để viết chương trình?
2. Y/cầu hs gõ chương trình vào máy
Gviên tiếp cận từng máy tính để hướng dẫn và sửa sai. 3. Y/cầu hs nhập dữ liệu a = 23, b = 15, c = 23 4. Y/cầu hs tự xác định các bộ test khác để kiểm tra chtrình 1. Chú ý theo dõi vấn đề đặt ra của gv.
- Xác định Input, Output và thuật toán
-Input: 3 số a, b, c Output: Gtln(a,b,c)
- Trả lời theo dạng trình bày ý tưởng
- Hs trình bày trên bảng - Cấu trúc rẽ nhánh
2. Độc lập từng nhóm soạn
chtrình vào máy.
Thông báo kết quả viết được.
3. Nhập dữ liệu theo test cảu gv
và thông báo kết quả.
4. Tìm các bộ test khác và kiểm thử chtrình
Bài 2: Viết chương trình tìm
giá trị lớn nhất của 3 số a, b, c được nhập từ bàn phím.