Kiến thức - Học sinh biết đợc ý nghĩa của cấu trúc rẽ nhánh - Học sinh biết đợc cấu trúc chung của cấu trúc rẽ nhánh - Biết cách sử dụng đúng hai dạng cấu trúc rẽ nhánh trong lập trình:
Trang 1Tiết theo PPCT: 11
Cấu trúc rẽ nhánh
I Mục tiêu
1 Kiến thức
- Học sinh biết đợc ý nghĩa của cấu trúc rẽ nhánh
- Học sinh biết đợc cấu trúc chung của cấu trúc rẽ nhánh
- Biết cách sử dụng đúng hai dạng cấu trúc rẽ nhánh trong lập trình: Dạng thiếu
1 Chuẩn bị của giáo viên
Máy vi tính, máy chiếu Overhead, máy chiếu Projector, bìa trong, bút dạ, chơngtrình mẫu giải phơng trình bậc hai 2 0
bx c ax
2 Chuẩn bị của học sinh
Sách giáo khoa
III Hoạt động dạy học
1 Hoạt động 1: Tìm hiểu ý nghĩa của tổ chức rẽ nhánh
a Mục tiêu
Học sinh biết đợc ý nghĩa của tổ chức
rẽ nhánh Nắm đợc cấu trúc chung của
Kết thúc
Trang 2c Các bớc tiến hành:
1 Nêu ví dụ thực tiễn minh hoạ cho tổ
chức rẽ nhánh:
Chiều mai Nếu trời không ma An sẽ đi
xem đá bóng, Nếu trời ma An sẽ xem tivi
- Yêu cầu học sinh lấy một ví dụ có cấu
trúc chung dạng khuyết và đa ra cấu trúc
chung đó
2 Nêu các bớc để kết luận nghiệm của
ph-ơng trình bậc hai ax2 bxc 0
- Chia lớp thành 3 nhóm và yêu cầu vẽ sơ
đồ thực hiện các bớc trên bìa trong
- Chọn hai bài để chiếu lên bảng, gọi học
sinh thuộc các nhóm khác nhận xét kết
quả và bổ sung
3 Tổng kết cho hoạt động này bằng cách
bổ sung và chính xác bài tập của học sinh
1 Chú ý theo dõi dẫn dắt và ví dụ củagiáo viên để suy nghĩ tìm ra ví dụ tơngtự
- Nếu ĐBT của An >=5 thì An đợc lênlớp, còn Nếu ĐTB<5 thì ở lại
- Nếu…Then Else…trong ngôn ngữ lậpthì nếu không…Then Else…trong ngôn ngữ lậpthì
- Nếu có nhiều tiền em sẽ đi du lịch ởHồng Kông
- Nếu…Then Else…trong ngôn ngữ lập …Then Else…trong ngôn ngữ lậpthì
2 Theo dõi và thực hiện yêu cầu củagiáo viên
+ Tính delta+ Nếu delta<0 thì kết luận PTVN+ Nếu delta=0 thì PT có nghiệm x=-b/a+ Nếu delta>0 thì PT có hai nghiệmx1= (-b+Sqrt(delta))/(2a)
x2= (-b-Sqrt(delta))/(2a)
- Thực hiện vẽ sơ đồ (giống nh ở phầnnội dung)
- Nhận xét, đánh giá và bổ sung nhữngthiếu sót của các nhóm khác
3 Quan sát hình vẽ của các nhóm khác
và của giáo viên để ghi nhớ
2 Hoạt động 2: Tìm hiểu cấu trúc rẽ nhánh IF THEN ELSE trong Pascal
a Mục tiêu:
- Học sinh biết đợc cấu trúc chung của lệnh IF
- Biết đợc cách thực hiện của máy khi gặp lệnh IF
- Vẽ đợc sơ đồ thực hiện của lệnh IF
b Nội dung:
- Dạng thiếu:
+ Cấu trúc: IF<điều kiện>THEN<câu lệnh>
Điều kiện: là một biểu thức quan hệ hoặc một biểu thức lôgic của PascalCâu lệnh: là một công việc cần thực hiện
+ Cách 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> nhận giá trị đúng thì đi thực hiện <câu lệnh>
+ Sơ đồ khối: điều
kiện
Câu lệnh
Đúng
Trang 3- Dạng đủ
+ Cấu trúc: IF<điều kiện>THEN<câu lệnh 1>ELSE<câu lệnh 2>
Điều kiện: là một biểu thức quan hệ hoặc một biểu thức lôgic của PascalCâu lệnh1, câu lệnh 2: là một công việc cần thực hiện
+ Cách 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> nhận giá trị đúng thì đi thực hiện <câu lệnh 1,
ng-ợc lại thì thực hiện câu lệnh 2
+ Sơ đồ khối:
c Các bớc tiến hành:
1 Yêu cầu học sinh nghiên cứu SGK và
dự vào các ví dụ của tổ chức rẽ nhánh để
đa ra cấu trúc chung của lệnh rẽ nhánh
2 Nêu vấn đề trong trờng hợp khuyết: Khi
không đề cập gì đến việc gì xãy ra nếu
điều kiện không thoã mãn, ta có cấu trúc
- Yêu cầu học sinh nghiên cứu SGK và
cho biết cấu trúc để ghép các lệnh thành
4 Theo dõi dẫn dắt của giáo viên để trảlời
- Ta nhóm nhiều lệnh thành một lệnh
- Cấu trúc của lệnh ghépBegin
Câu lệnh 1
ĐúngSai
Câu lệnh 2
Trang 4Bớc đầu biết sử dụng đúng lệnh If để lập trình giải quyết một số bài toán đơn giản
1 Nêu nội dung, mục đích, yêu cầu của ví
dụ 1:
Viết chơng trình nhập vào độ dài hai cạnh
của một hình chữ nhật Tính chu vi, diện
tích của hình chữ nhật đó
- Chơng trình này các em đã viết, hãy cho
biết có hạn chế nào trong chơng trình của
2 Nêu nội dung của ví dụ 2, mục đích,
yêu cầu của ví dụ này
Tìm nghiệm của phơng trình bậc hai
- Hãy nêu các bớc chính để tìm ra nghiệm
của phơng trình bậc hai
- Trong bài toán này ta cần bao nhiêu lệnh
rẽ nhánh? Dạng nào?
- Chia lớp thành 3 nhóm, yêu cầu học sinh
viết chơng trình và hoàn thiện chơng trình
lên bìa trong
- Thu phiêú trả lời, gọi học sinh nhóm
khác nhận xét, đánh giá
- Chuẩn hoá lại chơng trình cho cả lớp
bằng chơng trình mẫu của giáo viên
1 Chú ý dẫn dắt của giáo viên
- Khi nhập vào độ dài hai cạnh là âm thìkết quả chu vi, diện tích cũng âm Điềunày không có trong thực tế
- Dùng lệnh rẽ nhánh để kiểm tra giá trịcủa độ dài cạnh nhập vào
- Nếu độ dài dơng thì tính, ngợc lại thìthông báo độ dài sai
2 Ghi đề bài, chú ý yêu cầu của bài tập
+ Tính delta+ Nếu delta<0 thì kết luận PTVN+ Nếu delta=0 thì PT có nghiệm x=-b/a+ Nếu delta>0 thì PT có hai nghiệmx1= (-b+Sqrt(delta))/(2a)
x2= (-b-Sqrt(delta))/(2a)
- Có thể sử dụng ba lệnh rẽ nhánh dạngkhuyết, cũng có thể sử dụng hai lệnh rẽnhánh dạng đủ
- Thảo luận và viết chơng trình lên bìa trong
- Nhận xét, đánh giá và bổ sung những thiếu sót của các nhóm khác
- Ghi chép nội dung chơng trình đúng
mà giáo viên đã kết luận
IV Đánh giá cuối bài
1 Những nội dung đã học
- Cấu trúc chung của cấu trúc rẽ nhánh
- Cách thực hiện của máy khi gặp cấu trúc rẽ nhánh IF
- Sơ đồ thực hiện của cấu trúc rẽ nhánh IF
Trang 5- Tr¶ lêi c©u hái 1, 2, 4 SGK trang 50
- ViÕt ch¬ng tr×nh nhËp vµo hai sè bÊt k× vµ in ra mµn h×nh sè lín h¬n trong hai
- Xem tríc néi dung bµi: CÊu tróc lÆp – SGK trang 42
- Xem néi dung phô lôc B – SGK trang 131: LÖnh rÏ nh¸nh vµ lÆp
- Xem néi dung phô lôc C – SGK trang 139: LÖnh rÏ nh¸nh vµ lÆp
Trang 6Tiết theo PPCT: 12 - 13
I Mục tiêu
1 Kiến thức
- Biết đợc ý nghĩa của cấu trúc lặp
- Biết đợc cấu trúc chung của lệnh lặp FOR trong Pascal
- Biết sử dụng đúng hai dạng của lệnh lặp FOR trong Pascal
2 Kĩ năng
Bớc đầu sử dụng đợc lệnh lặp FOR để lập trình giải quyết đợc một số bài toán
đơn giản
II Đồ dùng dạy học
1 Chuẩn bị của giáo viên
Máy vi tính, máy chiếu Overhead, bìa trong, bút dạ, máy chiều Projector, SGK
2 Chuẩn bị của học sinh
Sách giáo khoa
III Hoạt động dạy – học
1 Hoạt động 1: Tìm hiểu ý nghĩa của cấu trúc lặp
2
1 1
1 1
a a S
Bài toán 2: Một ngời có số tiền là S, ông ta gửi tiết kiệm ngân hàng với lãi suất1,5%/tháng Hỏi sau 12 tháng gửi tiết kiệm (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
1 Nêu bài toán đặt vấn đề nh bài toán 1
- Có bao nhiêu lần đổ nớc vào thùng?
- Mỗi lần đổ một lợng là bao nhiêu? Lần
thứ i đổ bao nhiêu?
- Phải viết bao nhiêu lệnh?
2 Nêu bài toán đặt vấn đề nh bài toán 2
- 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 ví dụ 2
1 Chú ý quan sát bài toán đặt vấn đề
2 Chú ý quan sát và trả lời các câu hỏi
- Với số tiền S, sau mỗi tháng sẽ có tiềnlãi là 0.015*S
Trang 7- Từ đó hãy lập công thức tính tiền thu đợc
sau tháng thứ nhất
- Ta phải thực hiện 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 và dễ sai 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ả các ngôn ngữ lập trình đều
có một cấu trúc điều khiển việc thực hiện
lặp đi lặp lại với số lần đã định trớc
3 Chi lớp làm 4 nhóm 2 nhóm viết thuật
toán giải quyết bài toán 1, 2 nhóm viết
thuật toán giải quyết bài toán 2 lên bìa
- Tập trung theo dõi giáo viên trình bày
3 Thảo luận theo nhóm để viết thuậttoán (bài toán 1):
Bớc 1: N <- 0; S <-1/a;
Bớc 2: N <- N + 1;
Bớc 3: Nếu N>100 thì chuyển đến B5Bớc 4: S <- S + 1/(a+N)
Quay lại bớc 2Bớc 5: Đa S ra màn hình rồi kết thúc
- Thông báo kết quả viết đợc
- Nhận xét, đánh giá kết quả của cácnhóm khác
- Theo dõi và ghi nhớ
2 Hoạt động 2: Tìm hiểu lệnh lặp FOR của ngôn ngữ lập trình Pascal
a Mục tiêu:
- Học sinh biết đợc cấu trúc chung của lệnh FOR
- Hiểu đựơc ý nghĩa của các thành phần trong câu lệnh
- Biết đợc cách thực hiện của máy khi gặp lệnh FOR
- Vẽ đợc sơ đồ thực hiện của lệnh FOR
Trang 8Bớc 1: Tính giá trị đầu và đem gán cho biến đếm
Bớc 2: Nếu biến đếm <= giá trị cuối thì:
Bớc 1: Tính giá trị đầu và đem gán cho biến đếm
Bớc 2: Nếu biến đếm >= giá trị cuối thì:
Lệnh cần lặpTăng biến đếm lên 1
Sai
Đúng
Biến đếm := giá trị đầu
Biến đếm>=giá trị cuối
Lệnh cần lặpGiảm biến đếm đi 1
Sai
Đúng
Trang 9c Các bớc tiến hành:
1 Yêu cầu học sinh nghiê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: Là biến kiểu
nguyên, kí tự hoặc miền con
- Hỏi: ý nghĩa của <giá trị đầu>, <giá trị
cuối>, kiểu dữ liệu của chúng?
- Hỏi: Trong bài toán gửi tiết kiệm, <giá
trị đầu>, <giá trị cuối> là bao nhiêu?
- Hỏi: Trong bài toán tính tổng, <giá trị
đầu>, <giá trị cuối> là bao nhiêu?
- Dẫn dắt: những lệnh nào cần lặp lại ta
đặt sau DO
- Hỏi: Khi nhiều lệnh khác nhau cần lặp
lại ta viết nh thế nào?
- Hỏi: Trong bài toán gửi tiết kiệm, lệnh
nào cần lặp lại
- Hỏi: Trong bài toán tính tổng, lệnh nào
cần lặp lại?
- Hỏi: Em có nhận xét gì về giá trị của ,
<giá trị đầu>, <giá trị cuối>?
- Dẫn dắt: Khi đó lệnh FOR đợc gọi là
FOR tiến Ngôn ngữ lập trình Pascal còn
có một dạng FOR khác gọi là FOR lùi
2 Yêu cầu: Hãy trình bày cấu trúc chung
của FOR lùi
- Hỏi: So sánh <giá trị đầu> và <giá trị
cuối>?
- Hỏi: Trong hai bài toán trên, dùng lệnh
FOR dạng nào là phù hợp
1 Đọc SGK và trả lờiFOR<biến đếm>:=<giá trị đầu>TO<giátrị cuối>DO <lệnh cần lặp>;
- Dùng để 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à 12
- <Giá trị đầu là> 1, <giá trị cuối> là100
- Phải sử dụng cấu trúc lệnh ghép
- S := S + 0.015*S;
-
i a S S
:
- <Giá trị đầu > < <giá trị cuối>
2 Nghiên cứu SGK, suy nghĩ, so sánhvới cấu trúc của lệnh FOR dạng tiến đểtrả lời câu hỏ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 lệnh FOR dạng tiến là phùhợp
3 Hoạt động 3: Rèn luyện kĩ năng vận dụng lệnh lặp FOR
a Mục tiêu:
Sử dụng lệnh lặp FOR để giải quyết một bài toán đơn giản
Trang 10b Nội dung:
VD 1: Viết chơng trình tính tổng:
100
1
2
1 1
1 1
a a S
VD 2: Một ngời có số tiền là S, ông ta 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 gửi tiết kiệm (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:
1 Nêu nội dung bài toán 1 Mục tiêu là
2 Nêu nội dung bài toán 2, mục tiêu là
viết đợc chơng trình hoàn thiện
- Định hớng những vấn đề chính
- Chia lớp làm 3 nhóm Yêu cầu học sinh
viết chơng trình lên giấy bìa trong
- Thu phiếu học tập, chiếu lên bảng, gọi
:
2 Chú ý lắng nghe nội dung và yêu cầu
- Cùng thảo luận và viết chơng trìnhtheo nhóm
- Quan sát chơng trình giáo viên hớngdẫn và ghi nhớ
IV Đánh giá cuối bài
1 Những nội dung đã học
- Cấu trúc chung của lệnh lặp FOR
- Sơ đồ thực hiện của lệnh lặp FOR
2 Câu hỏi và bài tập về nhà
- Giải bài tập 5a, 6 – SGK trang 51
- Xem trớc nội dung phần cấu trúc lặp với số lần cha xác định WHILE
- Xem nội dung phụ lục B – SGK trang 131: Lệnh rẽ nhánh và lặp
- Xem nội dung phụ lục C – SGK trang 139: Lệnh rẽ nhánh và lặp
Trang 11Tiết theo PPCT: 14
I Mục tiêu
1 Kiến thức
- Biết đợc ý nghĩa của cấu trúc lặp có số lần lặp cha xác định
- Biết đợc cấu trúc chung của lệnh lặp dạng While trong Pascal
- Biết đợc cách thực hiện của máy khi gặp lệnh While
2 Kĩ năng
- Phân biệt đợc sự giống nhau và khác nhau giữa cấu trúc lặp For và While
- Sử dụng đợc 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 đợc một số bàitoán đơn giản
II Đồ dùng dạy học
1 Chuẩn bị của giáo viên
Máy vi tính, máy chiếu Overhead, Projector, SGK
2 Chuẩn bị của học sinh
Sách giáo khoa
III Hoạt động day – học
1 Hoạt động 1: Tìm hiểu ý nghĩa của cấu trúc lặp có số lần cha xác định
2
1 1
1 1
a a
N a
Bài toán 2: Một ngời có số tiền là S đồng, ông ta đem gửi tiết kiệm ngân hàngvới lãi suất 1,5%/tháng Hỏi sau bao nhiêu tháng ngời đó có số tiền lớn hơn S1 đồng?
c Các bớc tiến hành:
1 Chiếu nội dung của bài toán 1
- Hỏi: Sự khác nhau của bài toán này với
bài toán đã viết ở tiết trớc?
- Hỏi: Lặp bao nhiêu lần?
- Hỏi: Lặp đến khi nào?
2 Chiếu nội dung của bài toán 2
- Hỏi: Sự khác nhau của bài toán này với
bài toán đã viết ở tiết trớc?
- Hỏi: Lặp bao nhiêu lần?
1 Chú ý lắng nghe, quan sát và suynghĩ để trả lời
- Bài trớc cho giới hạn của N, còn bàinày không cho giới hạn của N
Trang 12- Hỏi: Lặp đến khi nào?
3 Tổng kết cho vấn đề: Qua hai ví dụ ta
thấy có một dạng bài toán có sự lặp lại của
một số lệnh nhng không biết trớc số lần
lặp Cần có một cấu trúc điều khiển lặp lại
một công việc nhất định khi thoả mãn một
điều kiện nào đó
3 Theo dõi và ghi nhớ kết luận của giáoviên
2 Hoạt động 2: Tìm hiểu cấu trúc lệnh lặp While trong ngôn ngữ lập trình Pascal
a Mục tiêu:
- Học sinh biết đợc cấu trúc chung của lệnh While
- Hiểu đợc ý nghĩa của các thành phần trong lệnh
- Biết đợc cách thực hiện của máy khi gặp lệnh While
- Vẽ đợc sơ đồ thực hiện của lệnh While
b Nội dung:
- Cấu trúc: While <điều kiện> Do <lệnh cần lặp>;
Điều kiện: là biểu thức quan hệ hoặc biểu thức lôgic
- Cách thực hiện của máy:
+ Bớc 1: Tính giá trị của <điều kiện>
+ Bớc 2: Nếu <điều kiện> nhận giá trị đúng thì:
Trang 13c Các bơc tiến hành:
1 Yêu cầu học sinh nghiê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: là biểu thức quan hệ hoặc
biểu thức lôgic, là điều kiện để lặp lại
- Hỏi: Trong bài toán 1, điều kiện để lặp
- Dựa và cấu trúc chung, hãy cho biết máy
sẽ thực hiện tính <điều kiện> trớc hay
thực hiện <lệnh cần lặp> trớc?
2 Yêu cầu học sinh vẽ sơ đồ cấu trúc lên
bảng
- Gọi học sinh đánh giá, nhận xét
- Tổng kết cho vấn đề này bằng cách treo
1
N a
- Quan sát, suy nghĩ và trả lời:
+ Tính biểu thức điều kiện trớc+ Thực hiện lệnh cần lặp sau
2 Lên bảng vẽ sơ đồ cấu trúc của lệnhWhile
- Nhận xét đúng hoặc sai và bổ sung
3 Hoạt động 3 : Rèn luyện kĩ năng vận dụng lệnh While
Trang 14c Các bớc tiến hành:
1 Nêu nội dung bài toán 1 Mục tiêu là
viết chơng trình hoàn thiện
- Định hớng các vấn đề chính
+ Xác định điều kiện để tiếp tục lặp
+ Xác định các lệnh cần lặp
- Chia lớp làm 3 nhóm Yêu cầu học sinh
viết chơng trình hoàn thiện lên bìa trong
- Thu phiếu trả lời, chiếu kết quả bằng
máy chiếu Overhead
- Gọi học sinh nhóm khác nhận xét và
đánh giá
- Chính xác hoá chơng trình cho cả lớp
2 Nêu nội dung của bài toán 2 Mục tiêu
là phân tích để xác định <điều kiện> và
<lệnh cần lặp>
- Lấy một ví dụ cụ thể khi tìm ớc số chung
lớn nhất của hai số 15 và 25
m n
15 25
15 10
5 10
5 5 Trả lời: 5 là ớc số chung lớn nhất
- Hỏi: Điều kiện để tiếp tục lặp là gì?
- Hỏi: các lệnh cần lặp là gì?
- Yêu cầu học sinh: Nêu thuật toán để tìm
ớc số chung lớn nhất của hai số đó?
- Yêu cầu học sinh viết chơng trình và
hoàn thiện bài toán ở nhà
- Yêu cầu học sinh chỉ ra hai câu hỏi cần
đặt ra khi gặp bài toán dạng này?
1 Chú ý lắng nghe và suy nghĩ trả lời các câu hỏi định hớng của giáo viên
+ Điều kiện: S < S1
S := S + 0.015*S để tính số tiền
t := t + 1 để tính số tháng
- Tập trung làm việc theo nhóm để viết
đợc chơng trình hoàn thiện
- Đánh giá đúng – sai và bổ sung
- Ghi nhớ những phần giáo viên sửa chữa
2 Tập trung theo dõi để thấy đợc những công việc cần thực hiện
- Điều kiện là m <> n
- m := m – n; hoặc n := n – m;
- Thuật toán:
+ Bớc 1: Nếu m=n thì ƯC = m, dừng + Bớc 2: Nếu m>n thì m := m-n ngợc lại
n := n-m; Quay lại Bớc 1
- Suy nghĩ và trả lời:
+ Điều kiện để lặp lại là gì?
+ Những lệnh nào cần lặp lại?