mô tả các bước trên?
- Y/cầu hs viết chtrình hoàn thiện (1hs trình bày trên bảng)
Gọi hs khác nhận xét, đánh gía
- Chuẩn hóa lại chtrình cho cả lớp bằng việc treo bảng chtrình mẫu của gv đã chuẩn bị.
1. Chú ý dẫn dắt của gvKhi nhập độ dài âm thì cho Khi nhập độ dài âm thì cho ra dtích, chu vi âm. Điều này không có trong thực tế - Dùng câu lệnh rẽ nhánh để kiểm tra giá trị độ dài các cạnh. Nếu độ dài dương thì tính dtích và chu vi, ngược lại thì thông báo độ dài Sai.
2. Ghi đề bài, chú ý mụcđích, y/cầu của bài tập . đích, y/cầu của bài tập .
+ Tính delta
+ Nếu delta<0 thì pt vô nghiệm
+ Nếu delta >=0 thì kết luận pt có nghiệm: x1=(-b+sqrt(delta))/(2*a) x2=(-b-sqrt(delta))/(2*a) - Hai câu lệnh rẽ nhánh dạng khuyết hoặc 1 lệnh rẽ nhánh dạng đầy đủ. - 1 hs lên bảng viết chtrình Lấy ý kiến của 2-3hs
Vd1: Viết chương trình nhập vào độ dài 2 cạnh của một hình chữ nhật, tính chu vi, diện tích của hcn đó. Vd2: Tìm nghiệm của pt bậc hai: ax2+bx+c=0 Program ptbac2; Var a, b, c, d, x1, x2: real; Begin Write(‘nhap a, b, c ‘); Read(a,b,c); D:=b*b-4*a*c; If d<0 then write(‘pt vo nghiem’) else begin x1=(-b+sqrt(delta))/(2*a); x2=-b/a-x1; write(‘x1= ’,x1:6:2,’ x2= ’, x2:6:2) end; readln; End.
IV. ĐÁNH GIÁ CUỐI BÀI (5phút)
1. Nội dung đã học
Cấu trúc chung và sơ đồ thực hiện của cấu trúc rẽ nhánh IF
2. Câu hỏi, bài tập về nhà
Xem trước bài: Cấu trúc lặp, sgk, trang 42 - Trả lời câu hỏi 1, 2, 4 sgk trang 50, 51
- Viết chtrình nhập vào 3 số a, b, c và in ra màn hình giá trị lớn nhất trong 3 số đó. - Viết chtrình giải pt: ax4 + bx2 + c = 0.
Ngày soạn: 2/10/07
Tiết 12 CẤU TRÚC LẶP (tiết 1/3)
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 biết trước For trong NNLT Pascal Biết sử dụng đúng 2 dạng lệnh lặp For.
2. Kĩ năng: Bước đầu sử dụng được lệnh lặp For để lập trình giải quyết 1 số bài toán đơn giản.
II. ĐỒ DÙNG DẠY HỌC
1. Giáo viên: Máy vi tính, Projector, sgk, sgv
2. Học sinh: sgk
III. HOẠT ĐỘNG DẠY HỌC
1. Hoạt động 1: (7 phút) Kiểm tra bài cũ
Hđ của GV Hđ của HS
1. Trình bày cấu trúc rẽ nhánh? Sự khác nhaugiữa các dạng rẽ nhánh đó? giữa các dạng rẽ nhánh đó?
2. Viết CT nhập vào 2 số a, b và thực hiện đưa ramàn hình giá trị của số lớn hơn. màn hình giá trị của số lớn hơn.
Gọi 2 hs lên bảng trả lời. Nhận xét, đánh giá cho điểm
Hs1: trình bày miệng
Hs2: trình bày lên bảng
Hs khác nhận xét bài làm của hs2
2. Hoạt động 2: (20 phút)Tìm hiểu ý nghĩa cấu trúc lặp
a. Mục tiêu:Hs thấy được sự cần thiết của cấu trúc lặp trong lập trình.
b. Nội dung:
- Bài toán 1: Viết CT tính tổng
1001 1 ... 2 1 1 1 1 + + + + + + + = a a a a S
- Bài toán 2: Ông An có số tiền là S, ông gửi tiết kiệm ngân hàng với lãi suất 1,5%/tháng. Hỏi sau 12 tháng (không rút tiền lãi hàng tháng) ông ta được số tiền là bao nhiêu?
c. Các bước tiến hành:
Hđ của GV Hđ của HS Nd ghi bảng
1. Nêu bài toán 1 đặt vấn đề
- Hãy xác định công thức toán học để tính tổng
Gợi ý phương pháp: Ta xem S là một cái xô, các số hạng là những cái ca có dung tích khác nhau, khi đó việc tính tổng trên tương tự như việc đổ các ca nước vào xô S.
- Có bao nhiêu lần đổ nước như vậy? - Mỗi lần đổ 1 lượng là bao nhiêu? - Phải viết bao nhiêu lệnh để thể hiện việc này?
2. Nêu bài toán 2 để đặt vấn đề tiếptục.(treo bảng chứa nội dung bài toán) tục.(treo bảng chứa nội dung bài toán)
1. Chú ý quan sát bài toánđặt vấn đề. đặt vấn đề.
- Rất khó xác định
Theo dõi gợi ý. - Thực hiện 100 lần - Mỗi lần đổ i a+ 1 - Viết 100 lệnh. 2. Chú ý quan sát và trả lời các câu hỏi. Bài toán 1: Viết CT tính tổng 100 1 ... 2 1 1 1 1 + + + + + + + = a a a a S
Bài toán 2: Ông An có số tiền là S, ông gửi tiết kiệm ngân hàng với lãi
- Em hiểu như thế nào về cách tính tiền gửi tiết kiệm trong bài toán 2.
- Số tiền thu được sau tháng thứ nhất là bao nhiêu?
- Theo y/cầu của bài toán ta cần thực hiện tính bao nhiêu lần như vậy?
Dẫn dắt: Chương trình được viết như vậy sẽ rất dài, khó đọc, dễ sai sót. cần có một cấu trúc điều khiển việc lặp lại thực hiện các công việc ở trên.
- Trong tất cả mọi NNLT đều có một cấu trúc điều khiển việc thực hiện lặp lại với số lần đã định trước.
3. Chia lớp thành 4 nhóm: 2 nhóm viếtt/toán btoán1, 2 nhóm viết t/toán btoán t/toán btoán1, 2 nhóm viết t/toán btoán 2.
- Thu kết quả các nhóm, treo lên bảng, gọi hs nhóm khác nhận xét, đánh giá. - Chuẩn hóa lại thuật toán cho hs.
- Với số tiền S sau mỗi tháng sẽ có số tiền lãi 0.015*S.
Số tiền lãi sẽ được cộng vào số tiền ban đầu để tính lãi cho tháng tiếp theo: - S := S + 0.015*S - Thực hiện 12 lần.
- Tập trung theo dõi gv trình bày.
3. Thảo luận theo nhóm đểviết thuật toán: viết thuật toán:
Btoán 1:
B1: N←0; S←1/a; B2: N←N+1;
B3: Nếu N>100 thì chuyển sang B5 B4: S←S+1/(a+N), quay lại B2; B5: Đưa ra S, rồi kết thúc.
Btoán 2:
B1: Nhập S; I←0; B2: I ←I + 1;
B3: Nếu I >12 thì chuyển sang B5; B4: S←S + 0.015*S, quay lại B2 B5: Đưa ra S, rồi kết thúc
- Thông báo kết quả viết được.
- Nhận xét bài làm của nhóm khác.
suất 1,5%/tháng. Hỏi sau 12 tháng (không rút tiền lãi hàng tháng) ông ta được số tiền là bao nhiêu?
3. Hoạt động 3: (15 phút)Tìm hiểu lệnh lặp For trong NNLT Pascal
a. Mục tiêu: Hs biết được cấu trúc chung của câu lệnh lặp FOR. Hiểu ý nghĩa các thành phần trong câu lệnh. Biết đượ sự thực hiện của máy khi gặp câu lệnh For. Vẽ được sơ đồ thực hiện đó.
b. Nội dung:
- Dạng tiến:
FOR <biến đếm>:= <giá trị đầu> TO <giá trị cuối> DO <lệnh cần lặp>; - Dạng lùi:
FOR <biến đếm>:= <giá trị cuối> DOWNTO <giá trị đầu> DO <lệnh cần lặp>; Trong đó:
+ <giá trị đầu> phải nhỏ hơn <giá trị cuối> + Biến đếm là kiểu nguyên, kí tự hoặc miền con
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 For?
Giải thích: <biến đếm>
- Hỏi: Ý nghĩa của <giá trị đầu>, <giá trị cuối>, kiẻu dữ liệu của chúng? Trong btoán 1:<giá trị đầu>, <giá trị cuối> có giá trị bằng bao nhiêu?
Dẫn dắt: những lệnh nào cần lặp lại ta đặt sau DO. Khi nhiều lệnh cần đặt sau Do ta phải viết thế nào?
- Hỏi:
+ Trong bài toán tiết kiệm lệnh nào cần lặp lại?
+ Trong bài toán tính tổng lệnh nào cần lặp lại?
- Hãy so sánh giá trị của <giá trị đầu> và <giá trị cuối>?
Dẫn dắt: Khi đó câu lệnh For đgl For tiến, NNLT Pascal còn có dạng ngược lại là For lùi.
2. Y/cầu hs trình bày cấu trúc For lùi.
Hãy so sánh giá trị của <giá trị đầu> và <giá trị cuối>?
- Hai bài toán trên dùng lệnh For nào là phù hợp?
1. Đọc sgk và trả lời
FOR <biến đếm>:= <giá trị đầu> TO <giá trị cuối> DO <lệnh cần lặp>;
- để làm giới hạn cho biến đếm, cùng kiểu với biến đếm -<giá trị đầu> là 1 <giá trị cuối> là 100 - Sử dụng câu lệnh ghép. S:= S + 0.015*S; S:= S+1/(a+i);
<giá trị đầu> ≤ <giá trị cuối>
2. N/cứu sgk, suy nghĩ, sosánh với dạng For tiến rồi sánh với dạng For tiến rồi trả lời
FOR <biến đếm>:= <giá trị cuối> DOWNTO <giá trị đầu>
DO <lệnh cần lặp>;
<giá trị đầu> ≤<giá trị cuối> - Sử dụng For tiến
a. Dạng tiến
FOR <biến đếm>:= <giá trị đầu> TO <giá trị cuối> DO <lệnh cần lặp>;
Sơ đồ:
b.Dạng lùi
FOR <biến đếm>:= <giá trị cuối> DOWNTO <giá trị đầu> DO <lệnh cần lặp>;
Sơ đồ: