Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (493.18 KB, 36 trang )
<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
<b> Tiết: 17-18</b> <b>Ngày dạy:15/10/08</b>
<b>A. MỤC ĐÍCH YÊU CẦU</b>
<b>* Kiến thức:</b>
- HS biết cách vào ra chương trình phần mềm. Biết sử dụng phần mềm để luyện gõ bàn phím, giúp các em
nhớ được các nút trên bàn phím. Hình thành thói quen khám phá phần mềm.
<b>* Kỹ năng:</b>
- Rèn kỹ năng gõ bàn phím nhanh, chính xác. Giúp cho HS chơi mà học. Tạo được sự thư giản vui vẻ sau
những tiết học căng thẳng. Rèn tư thể ngồi làm việc với máy tính.
<b>B. PHƯƠNG PHÁP VÀ PHƯƠNG TIỆN DẠY HỌC</b>
- Phương pháp: Giới thiệu, hướng dẫn, minh họa.
- Phương tiện: Máy chiếu, máy tính, phần mềm Finger Break Out.
C. NỘI DUNG BÀI GIẢNG
<b>Hoạt động của thầy và trò</b> <b>Nội dung</b>
GV: Giới thiệu tên phần mềm: Finger Break Out.
Tác dụng của phần mềm: Giúp các em gõ bàn phím nhanh
và chính xác.
Cho HS tự khám phá phần mềm trong một tiết đầu dưới
+ Tìm cách khởi động và thốt khỏi phần mềm.
+ Tìm cách chơi trò chơi và thực hiện chơi.
+ Hiểu được một số thông tin trong khung thông tin.
GV: em hãy nên tên và tác dụng của phần mềm?
- Giới thiệu biểu tượng
- Làm thế nào để chạy phần mềm?
Một HS lên bảng thao tác trị chơi.
GV: giới thiệu màn hình chính của phần mềm.
Em nhìn thấy gì trong cửa sổ chính của phần mềm?
HS: trả lời
GV: đưa ra màn hình chính của phần mềm..
GV: yêu cầu ngồi thẳng, đúng tư thế, hai tay để lên các
phím trên hàng phím cơ sở.
GV: theo em các phím trên màn hình màu sắc khác nhau có
ý nghĩa gì?
HS:… quy định ngón tay gõ
GV: đưa ra bảng quy định màu sắc các phím qua ngón tay
gõ và hướng dẫn cách nhớ.
GV: quan sát màn hình chính em hãy trả lời:
+ Nơi thực hiện các lệnh chính ở đâu?
+ Làm thế nào để lựa chọn các mức độ chơi khác nhau?
+ Trị chơi có những mức độ nào?
HS: Đại diện các nhóm trả lời.
GV: nhận xét.
Tương tự như các phần mềm khác, theo em làm thế nào để
dừng chơi?
Muốn kết thúc và thoát khỏi phần mềm ta làm thế nào?
HS: trả lời
GV: muốn bắt đầu chơi ta làm thế nào?
- Khi bắt đầu vào trò chơi xuất hiện một hộp thoại, theo em
<b>1. Giới thiệu phần mềm</b>
Phần mềm Finger Break Out sẽ giúp em quan sát
và gõ bàn phím nhanh.
<b>2. Màn hình chính của phần mềm</b>
<b>a. Khởi động phần mềm:</b>
- Nháy đúp chuột lên biểu tượng chính của
chương trình.
<b>b. Giới thiệu màn hình:</b>
- Phần mềm sẽ đưa ra màn hình giới thiệu, nhấn
phím Enter hoặc nút OK để chuyển sang màn
hình chính của phần mềm.
- Chính giữa trung tâm cửa sổ là hình ảnh bàn
phím.
- Khung trống phía trên hình bàn phím là khu vực
để chơi.
- Khung bên phải chứa các lệnh và thông tin của
lượt chơi.
hộp thoại này có ý nghĩa gì? Làm thế nào để bắt đầu chơi?
HS: trả lời.
GV: trong màn hình chính có những gì?
HS: trả lời.
GV: giới thiệu màn hình chính và giải thích ý nghĩa các con
số và biểu tượng.
GV: nhiệm vụ của chúng ta làm gì:
HS: ta phải ”bắn phá” các thanh này và làm cho chúng biến
mất khỏi màn hình.
Khi nào các em thắng trong lượt chơi này?
HS: khi tất cả các thanh trên đã bị phá hết.
GV: giới thiệu thanh chơi có dạng:
Và hướng dẫn HS chơi.
GV: không được để các quả cầu lớn rơi xuống đất bằng cách
dịch chuyển thanh chơi hướng đến hướng rơi của các quả
cầu lớn để làm cho chúng quay lên. Nếu quả cầu lớn cuối
cùng rơi xuống đất ta sẽ mất một lượt chơi của lần chơi này.
Trong quá trình chơi, nếu đạt được điểm cao em sẽ được
phần mềm thưởng cho các quả cầu lớn.
GV: muốn các thanh trên biến mất thì nhiệm vụ chính của
em là gì?
HS: gõ phím thật nhanh, chính xác để điều khiển khéo léo
các quả cầu một cách tốt nhất.
GV: giới thiệu các mức chơi cao hơn. Tuyệt đối không cho
phép các con vật lạ va chạm vào thanh chơi. Nếu một con
thú lạ va chạm vào thanh chơi em sẽ mất một lượt chơi.
GV: các quả cầu lớn xuất hiện nhiều có ý nghĩa gì?
HS: nếu có nhiều quả cầu lớn khả năng chiến thắng sẽ
nhanh hơn.
GV: nêu yêu cầu của nội dung thực hành. Chia nhóm HS
theo nhóm 2 đến 3 em.
GV: quan sát giúp đỡ để giải quyết các thắc mắc. Chấm
điểm các nhóm và cơng bố điểm số các nhóm.
- Nhận xét, rút kinh nghiệm bài thực hành, đặc biệt về mặt ý
thức thực hành của HS.
+ Trung bình: Intermediate.
+ Nâng cao: Advanced.
<b>c. Thốt khỏi phần mềm</b>
+ Muốn dừng chơi nháy chuột vào nút Stop ở
khung bên phải.
+ Muốn thoát khỏi phần mềm: nhấn tổ hợp phím
Alt + F4.
3. Hướng dẫn sử dụng:
Nháy chuột vào nút Start tại khung thông tin bên
phải để bắt đầu chơi.
- Hộp thoại Break Out: thơng báo vùng bàn phím
sẽ được luyện gõ trong mỗi lần chơi.
- Nhấn phím Space để bắt đầu chơi.
- Nhiệm vụ người chơi phải bắn phá các thanh.
- Các chữ trong thanh chơi sẽ thay đổi sau mỗi
lần gõ phím.
- Gõ phím l (bên trái) sẽ làm thanh chơi dịch
chuyển sang trái.
- Gõ phím f (bên phải) sẽ làm thanh chơi dịch
chuyển sang phải.
- Gõ phím a (ở giữa) sẽ bắn lên một quả cầu nhỏ.
- Nếu quả cầu lớn cuối cùng rơi xuống đất ta sẽ
mất một lượt chơi của lần chơi này.
<b>4 Thực hành</b>
Chơi trị chơi theo nhóm đã phân cơng.
<b>D. Củng cố, dặn dị</b>
- Nhớ một số thao tác chính đã thực hiện trong phần mềm.
- Rèn luyện tư thế ngồi và tạo thành thói quen đúng khi làm việc với máy tính.
- Tập gõ với những tốc độ cao của trò chơi.
Tiết 19,20 Ngày dạy:22/10/08 Tên bài: TỪ BÀI TỐN ĐẾN CHƯƠNG TRÌNH.
A MỤC TIÊU:
-Biết khái niệm bài toán, thuật toán.
-Xác định được Input, Output của một bài toán đơn giản.
-Biết các bước giải bài tốn trên máy tính.
-Biết chương trình là thể hiện của thuật tốn trên một ngơn ngữ cụ thể.
Biết mơ tả thuật toán bằng phương pháp liệt kê các bước.
B. PHƯƠNG PHÁP:
C. CHUẨN BỊ :
I. Ổn định tổ chức: -Kiểm tra sĩ số.
II. Kiểm tra bài cũ:
III. Bài mới:
HOẠT ĐỘNG CỦA THẦY VÀ TRÒ KIẾN THỨC CẦN ĐẠT
HOẠT ĐỘNG 1: Khái niệm bài toán, chương trình.
GV: Muốn nhờ máy tính giải bài tốn này, em phải làm gì?
HS trả lời.
Hãy viết các lệnh để giải bài toán này.
HS viết lên bảng phụ.
GV nhận xét.
GV cho HS xem lại H.1
Rơ-bốt “nhặt rác”.
HS viết chương trình gồm các lệnh điều khiển rơ-bơt.
GV nhận xét chương trình.
GV :
Khái niệm bài toán và giải bài toán đã trở thành quen thuộc với HS
trong các mơn học như: Tốn, lí...Bài tốn trong tin học khơng chỉ là
những bài tốn trong lĩnh vực tốn học mà cịn có thể là một nhiệm
vụ cần giải quyết trong cuộc sống thực tiễn như:tính điểm trung bình
một mơn học, nấu món ăn, điều khiển rơ-bơt nhặt rác...
Bài tốn:
Tính tổng của hai số a và b được gõ vào
bàn phím.Suy ra viết chương trình gồm
các lệnh sau:
Tính tổng;
Bắt đầu
Nhập số a;
Nhập số b;
Tính a+b;
Ghi kết quả a+b ra màn hình;
Kết thúc.
HOẠT ĐỘNG 2: Bài toán và xác định bài toán.
GV cho HS đọc SGK từ “Bài toán...kết quả cần thu được’.
GV:Em hiểu thế nào là bài toán?
HS trả lời.
Muốn giải một bài toán, trước tiên ta phải làm gì ?
GV giới thiệu VD 1(SGK).
Các nhóm xác định điều kiện cho trước, kết quả cần thu được của bài
tốn tính diện tích hình tam giác, tìm đường tránh các điểm nghẽn
giao thơng, nấu một món ăn.
1/ Bài toán và xác định bài tốn:
Bài tốn là một cơng việc hay một
nhiệm vụ cần phải giải quyết.
Muốn giải một bài toán trước hết ta
phải xác định được dâu là GT, KL của
của bài toán.
VD1: (sgk).
HOẠT ĐỘNG 3: Củng cố.
1/ Nhắc lại khái niệm về bài toán?
2/ Thế nào là xác định bài tốn?
HOẠT ĐỘNG 4: Q trình giải bài tốn trên máy tính.
GV: Giải tốn trên máy tính có nghĩa là gì?
HS trả lời.
Em hiểu thế nào là thuật tốn?
GV: Trong mơn tốn, trước khi bắt đầu giải một bài tốn các em đã
quen việc tìm GT và KL của bài tốn.Từ đó
Giúp HS hiểu được Input và Output.
GV cho HS tự cho VD.
GV: Máy tính có “giải” được bài tốn khơng?
HS thảo luận trả lời(có thể lấy VD rô-bôt nhặt rác).
GV nhận xét.
GV gợi ý: Mơ tả thuật tốn bằng ngơn ngữ lập trình. Viết chương
trình.
GV: Để nhờ máy tính giả một bài tốn ta phải thực hiện những bước
nào?
HS xem hình SGK và trả lời.
GV chốt lại lại các bước cơ bản.
Em hiểu chương trình là gì?
HS trả lời.
2/ Quá trình giải bài tốn trên máy tính:
Q trình giải bài tốn trên máy tính
gồm các bước sau:
-Xác định bài tốn.
-Mơ tả thuật tốn.
-Viết chương trình.
HOẠT ĐỘNG 5: Thuật tốn và mơ tả thuật tốn.
HS trả lời.
GV: Mơ tả thuật tốn là gì?
HS trả lời.Sau đó GV chốt và nhấn mạnh cách mơ tả thuật tốn.
Bài tốn: “Làm món trứng tráng”
GV đưa ra mơ tả thuật tốn bằng các bước khơng đúng trình tự.
HS thảo luận nhóm và sắp xếp lại trình tự để giải quyết bài toán.
HS phát biểu khái niệm thuật toán.
GV nhận xét phần trả lời của HS.
Mơ tả thuật tốn là liệt kê các bước cần
thiết để giải một bài toán.
a/ VD1:
“Giải phương trình bậc nhất dạng tổng
quát bx+c=0”.
b/ VD2:
Bài tốn:”Chuẩn bị món trứng tráng”.
Thuật tốn là dãy các thao tác cần thực
hiện theo một trình tự xác định để thu
được kết quả cần tìm từ những điều
kiện cho trước.
HOẠT ĐỘNG 6: Củng cố.
Qua tiết học, em nắm được những kiến thức cơ bản nào?
-Xác định bài toán.
-Giải bài tốn trên máy tính.
-Q trình giải một bài tốn trên máy tính.
-Thuật tốn.
Bài tập 1
HOẠT ĐỘNG 7: Hướng dẫn về nhà.
Học thuộc các khái niệm, các bước giải bài tốn, mơ tả thuật tốn.
Xem bài mới: “Một số ví dụ về thuật tốn”.
<b>Tiết 23+24</b> <b>Ngày dạy:29/10/08</b>
<b>Bài 5</b>: <b>TỪ BÀI TỐN ĐẾN CHƯƠNG TRÌNH</b>
<b>I.Mục tiêu</b>:
Sau khi học xong bài này, học sinh có khả năng:
+ Biết được khái niệm Thuật tốn là gì?
+ Hs biết được mơ tả thuật tốn bằng phương pháp liệt kê các bước.
+ HS mô tả được thuật toán của một số bài toán đơn giản như tính tổng, tìm số lớn nhất, bế nhất..v.v...
<b> II. Chuẩn bị</b>:
+GV : giáo án, máy chiếu.(nếu có)+HS : sách , chuẩn bị tốt các kiến thức đã học
III.Tiến trình dạy học
<b>1.Kiểm tra bài cũ:</b>
2.Thuật tốn là gì? Q trình giải bài toán gồm bao nhiêu bước?
<b>2.Dạy bài mới:</b>
<b>Hoạt động của Gv</b> <b>Hoạt động của trò</b> <b>Nội dung ghi bảng</b>
<b>Cũng cố</b>: Qua bài trước ta đã biết
được khái niệm bài toán, các bước
xác định bài toán.Trong tiết này
chúng ta tìm hiểu sâu hơn về khái
niệm thuật tốn
.<b>3.Tḥt tốn và mơ tả tḥt tốn</b>
Việc dùng máy tính giải một bài
tốn là đưa ra một thuật tốn.Tuy
nhiên việc mơ tả thuật tốn chưa đủ
đối với máy tính mà cần diễn đạt
thuật tốn dưới dạng máy tính có thể
hiểu và thực hiện được.
Kết quả thuật tốn là gì ?
-GV chốt lại định nghĩa
Đưa ra một số ví dụ .
<b>Vd1 : Bài tốn “pha trà mời </b>
<b>khách”</b>
Yêu cầu hs xác định bài toán.
- Gọi HS dưới lớp nhận xét bài làm
của bạn
<b>Vd2 : Bài tốn “Giaỉ phương </b>
<b>trình bậc nhấtdạng tởng quát </b>
<b>ax+b=0”</b>
Input : Các hệ số a,b.
Output : Nghiệm của phương
trìnhbậc nhất.
Bước 1 :Nếu a=0 chuyển tới bước 3.
Bước 2 : Tính nghiệm của phương
trình x=-b/a và chuyển tới bước 4.
Bước 3 : Nếu c<>0 thông báo pt đã
cho vô nghiệm, ngược lại (c=0)
thông báo phương trình đã cho vơ số
- HS lắng nghe
-HS trả lời:là thao tác các
bước cần thực hiện theo
trình tự xác định để thu
được kết quả cần thu được
từ những điều kiện cho
trước
- HS trả lời:
Input : ̀Trà, nước sôi, ấm và
ly.
Output : ly trà đã pha xong
- Gọi 2hs lên bảng trình bày
thuật tốn:
Bước 1 : Tráng ấm, chén
bằng nước sôi.
Bước 2 : Cho trà vào ấm.
Bước 3 : Rót nước sơi vào
ấm và đợi khoảng 3-4 phút.
Bước 4 : Rót trà vào ly
-HS theo dõi và lắng nghe.
- HS trả lời:Cách đơn giản:
B1: S :=1.
B2: S:= S +2.
...
<b>3.Thuật tốn và mơ tả tḥt tốn</b>
-<b>Tḥt tốn</b> là dãy hữu hạn các thao tác
cần thực hiện theo một trình tự xác định để
thu được kết quả cần thu được từ những
điều kiện cho trước.
<b>Vd1 : Bài toán “pha trà̀ mời khách”</b>
Input : Trà, nước sôi, ấm và ly.
Output : ly trà đã pha xong
Bước 1 : Tráng ấm, chén bằng nước sôi.
Bước 2 : Cho trà vào ấm.
Bước 3 : Rót nước sơi vào ấm và đợi
khoảng 3-4 phút.
Bước 4 : Rót trà vào ly
<b>Vd2 : Bài tốn “Giaỉ phương trình bậc </b>
<b>nhấtdạng tởng qt ax+b=0”</b>
Input : Các hệ số a,b.
Output : Nghiệm của phương trìnhbậc nhất.
Bước 1 :Nếu a=0 chuyển tới bước 3.
Bước 2 : Tính nghiệm của phương trình
x=-b/a và chuyển tới bước 4.
Bước 3 : Nếu c<>0 thông báo pt đã cho vơ
nghiệm, ngược lại (c=0) thơng báo phương
trình đã cho vô số nghiệm
Bước 4 : Kết thúc.
nghiệm
Bước 4 : Kết thúc.
<b>4.Một số ví dụ về thuật tốn</b>
<b>Vd1 :</b>Hs quan sát hình 29 rồi mơ
tả thuật toán .
Yêu cầu hs xác định bài toán.? từ
H.29
<b>Vd2 :</b>Tính S = 1+2+…+100.
Input : Các số 1,2,..,100.
Output : tổng của S
Tuy nhiên việc mơ tả thuật tốn như
các em là q dà dịng( khơng phải
là 100 số mà n số “ n rất lớn”) nên
Phát sinh thêm biến i, gán i:=1;
<b>Vd3</b> : Đổi giá trị của hai biến x và
y
Gợi ý : Có hai cốc nước : cam và
dâu ,làm thế nào để đổi cốc đựng
cam thành cốc nước đựng dâu và
ngược lại.
Gv minh hoạ bằng hình vẽ trực
tiếp:
Yêu cầu học sinh đưa ra thuật toán.
<b>Vd4 : </b>Cho a, b là hai số thực<b> . </b>Hãy
cho biết kết quả so sánh hai số đó
dưới dạng “a lớn hơn b”, “a nhỏ hơn
b”, “a bằng b”. Em hãy mơ tả thuật
tốn .
- Gv hướng dãn ví dụ 6 tiếp theo.
-HS nêu cách làm ( dùng
cái ly trung gian)
- HS lên bảng trình bày.
- Hs về nhà tìm hiểu thêm.
<b>Vd2 :</b>Tính S = 1+2+…+100.
Bước 1 : S:=0; i:=1
Bươc 2 : i:=i+1
Bước 3 : Nếu i<=100 thì S:=S+I và quay lại
bước 2.
Bước 4:Thông báo kết quả và kết thúc thuật
toán.
<b>Vd3 : </b>Đổi giá trị của hai biến x và y .
Bước 1 : z:= x
Bước 2 : x:=y
Bước 3 : y:=z
<b>Vd4 </b>: Cho hai số thực a,b . Hãy cho biết kết
quả so sánh hai số a,b .
Bước 1 : Nếu a>b, kết quả là “a lớn hơn b”
và chuyển đến bước 3.
Bước 2 : Nếu a<b , kết quả là “a nhỏ hơn
b”,ngược lại kết quả “a bằng b”.
Bước 3 : Kết thúc thuật tốn.
<b>3.Hướng dẫn học ở nhà </b>
Biết mơ tả thuật tốn của một bài tốn
Đọc ví dụ 6 sgk trang 43 và 44.
Làm các bài tập trong sách giáo khoa
<b>BÀI TẬP</b>
<b> A. Mục tiêu : </b>
Tìm hiểu một số bài toán cụ thể.
Xác định được Input, Output của một bài tốn đơn giản;
Biết mơ tả thuật tốn và viết được chương trình đơn giản dựa trên cách mơ tả thuật tốn đó.
<b> B. Chuẩn bị : </b>
<i><b>1. Giáo viên </b></i> :
- SGK, SGV, tài liệu, Giáo án
- Đồ dùng dạy học như máy tính, projector,...
<i><b>2. Học sinh</b></i> :
- Đọc trước bài
- SGK, Đồ dùng học tập, bảng phụ...
<b> C. Tiến trình tiết dạy : </b>
<b>II. Kiểm tra bài cũ(5 phút) :</b>
<b>? Hãy xác định INPUT,OUTPUT các bài toán sau :</b>
<b>*HS1.</b>Tìm các số có gái trị nhỏ nhất trong n số đã cho.
<b>*HS2.</b>Tính tổng của các phần tử lớn hơn 0 trong dãy n số cho trước.
<b>III. Dạy bài mới :</b>
<b>HOẠT ĐỘNG CỦA THẦY VÀ TRÒ</b> <b>KIẾN THỨC CẦN ĐẠT</b>
<i><b>Hoạt động 1 : Bài tập 1 (20phút)</b></i>
<i><b>Bài tập1.</b></i>
<b>INPUT </b>: n
<b>OUTPUT</b>:S = 1+2+3+....+ n
<i><b>Bước 1:</b></i>Tổng 0, i 1.
<i><b>Bước 2:</b></i> Tổng tổng + i.
<i><b>Buớc 3: </b></i>i i + 1.
<i><b>Bước 4</b></i>: Nếu i <= n,quay lại bước2
<i><b>Hoạt động 2 (Bài tập 2)(20 phút)</b></i>
<i><b>Bài tập 2.</b></i>
<b> Cho ba số dương a,b,c.Hãy mơ tả tḥt tốn</b>
<b>cho biết ba số đó có thể là độ dài ba cạnh của một</b>
<b>tam giác hay không?.</b>
<b>-GV</b>:CHiếu đề bài tập lên bảng.
<b>-HS</b>: Đọc đề bài trên bảng và tìm dữ liệu vào<b>INPUT</b>
và dữ liệu ra.<b>OUTPUT</b>
<b>-GV:</b> Cho HS nêu quan hệ giữa ba cạnh của tam
giác.
Mơ tả thuật tốn:
<b>INPUT:</b> Ba số dương a>0,b>0,c>0.
<b>OUTPUT</b>:Thơng báo “a,bvà c có thể là ba cạnh của
một tam giác” hoặc thông báo “a,bvà c không thể là ba
cạnh của một tam giác”.
<i><b> Bước 1:</b></i> Tính a + b. Nếu a + b <= c chuyển tới bước 5.
<i><b> Bước 2:</b></i>Tính b + c. Nếu b + c <=a,chuyển tới bước 5.
<i><b> Bước 3:</b></i> Tính a + c . Nếu a + c <= b , Chuyển tới bước
5.
<i><b> Bước 4:</b></i>Thông báo “a ,b và c có thể là ba cạnh của
tam giác” và kết thúc thuật toán.
<i><b> Bước 5</b></i>: Thông báo “a,b và c không thể là ba cạnh của
tam giác” và kết thúc thuật toán.
<i><b>Tiết 24 Hoạt động 3 : Bài tập 3.</b></i>
<i><b>Bài tập3</b></i>
<b>Viết tḥt tốn tìm số lớn nhất trong ba số a,b,c.</b>
-<b>HS:</b>Đọc đề bài và tìm dữ liệu vào(<b>INPUT)</b> và dữ
liệu ra(<b>OUTPUT)</b>
-GV: Lấy ví dụ minh hoạ bằng cách cho ba số cụ thể:
a = 3, b = 2, c = 7
<i><b>Bước</b></i> <i><b>a</b></i> <i><b>b</b></i> <i><b>c</b></i> <i><b>Max</b></i>
<b>1</b> <b>3</b> <b>2</b> <b>7</b>
<b>2</b> <b>3</b> <b>2</b> <b>7</b> <b>3</b>
<b>3</b> <b>3</b> <b>2</b> <b>7</b> <b>3</b>
<b>4</b> <b>3</b> <b>2</b> <b>7</b> <b>7</b>
<b>5</b> <b>3</b> <b>2</b> <b>7</b> <b>7</b>
<b>INPUT:</b> Ba số a,b,c.
<b>OUTPUT</b>: Max = Max{a,b,c}
<i>Thuật toán:</i>
<i><b>Bước 1: </b></i>Nhập ba số a,b,c.
<i><b>Bươc 2:</b></i> Max a.
<i><b>Bước 3</b></i>:Nếu b > Max, Max b.
<i><b>Bước 4</b></i>:Nếu c > Max , Max c.
<i><b>Bước5:</b></i>Thông báo kết quả Max và kết thúc thuật toán
<i><b>Hoạt động 4.( Bài tập 4.)</b></i>
<i><b>Bài tập 4.</b></i>
<b> Cho a nguyên dương. Hãy mơ tả tḥt tốn</b>
<b>cho biết a là số chẵn hay số lẻ.</b>
-<b>HS:</b>Đọc đề bài và tìm dữ liệu vào<b>INPUT</b> và dữ liệu
ra.<b>OUTPUT.</b>
<b>-GV</b>(Hỏi) Số <b>a </b>chẵn khi nào? lẻ khi nào?
<b>-HS:</b> Trả lời.
Thuật tốn.
<b>INPUT:</b> số a
<b>OUTPUT</b>: Thơng báo a chẵn hay lẽ.
Thuật toán:
<i><b>Bước 1:</b></i>Nhập a
<b>-GV</b>:Chốt lại.
a mod 2 = 0 thì a chẵn.
a mod 2 0 thì a lẻ.
<i><b>Bước 3:</b></i> Ngược lại số lẽ.
<i><b>Bước 4:</b></i>Kết thúc.
<b>Củng cố kiến thức.</b>
Tự làm lại các bài toán trên và tự ra một bài tập tương tự rồi giải bài tập đó .
<b>Hướng dẫn về nhà.</b>
Giải thêm các bài tốn cịn lại trong sách bài tập.
Viết chương trình cho các bài tập trên bằng ngôn ngữ Pascal
<sub></sub><sub></sub>
<b>Tiết 25 : </b>
Ngày dạy:12/11/08
- Hs có thể tự thao tác và thực hiện các chức năng chính của phần mềm như : tìm kiếm các vị trí trên trái
đất,có cùng thời gian mặt trời mọc, tìm vị trí có nhật thực, có thời gian tự chuyển động để quan sát hiện tượng
ngày và đêm ....
- Thơng qua phần mềm học sinh sẽ hiểu biết thêm về thiên nhiên, trái đất, từ đó nâng cao ý thức bảo vệ môi
trường.
<b>II/ PHƯƠNG PHÁP CHỦ ĐẠO </b>: Thuyết trình, vấn đáp.
<b>III/ CHUẨN BỊ CỦA GIÁO VIÊN - HỌC SINH :</b>
<b>* GIÁO VIÊN</b> : Sách giáo khoa, máy chiếu.
<b>* HỌC SINH</b> : Sách giáo khoa.
<b>IV/ TIẾN TRÌNH LÊN LỚP :</b>
<i><b>1/ Ổn định tổ chức :</b></i>
<i><b>2/ Kiểm tra bài củ : Nhắc lại kiến thức cũ.</b></i>
3/ Bài mới :
<b>Hoạt động của Giáo viên và học sinh</b> <b>Ghi bảng</b>
- GV giới thiệu : Trong môn Địa lý, em đã biết các vị trí khác
nhau trên trái đất nằm trên các múi giờ khác nhau, phần mềm
Suntime sẽ giúp các em nhìn tồn cảnh các vị trí, thành phố của
các nước trên thế giới với nhiều thông tin liên quan đến thời gian.
Ngồi ra, phần mềm cịn cung cấp chức năng khác liên quan đến
mặt trời mọc, lặn, nhật thực, nguyệt thực...
- HS nghe GV giới thiệu.
- Gv : Nhấp đúp vào biểu tượng Suntimes V5.0.
- HS : Nghe và ghi lại.
- Gv : Giới thiệu màn hình của phần mềm là bản đồ các nước trên
thế giới. Trên bản đồ có các vùng sáng - tối khác nhau. Vùng sáng
cho biết các vị trí thuộc vùng này tại thời điểm hiện thời là ban
ngày, các vùng tối chỉ ra các vị trí vùng này là ban đêm, giữa
vùng sáng và vùng tối có một đường vạch liền đó là ranh giới
1/ Giới thiệu phần mềm :
Sách giáo khoa trang 88.
2/ Màn hình chính của phần mềm :
a) Khởi động phần mềm :
- Nhấp đúp vào biểu tượng Suntimes V5.0.
b) Màn hình chính :
giữa ngày và đêm. Ta gọi đường này là đường phân chia thời
gian, sáng - tối các vị trí được đánh dấu trên bản đồ là các thành
phố thủ đô của các nước.
- GV : Muốn thoát khỏi phần mềm thực hiện :
FILE <sub></sub> EXIT hoặc nhấn tổ hợp ALT + F4.
- GV : Thực hiện thoát, học sinh quan sát.
- GV : Muốn phóng to 1 vùng hình chữ nhật trên bản đồ, em có
thể dùng cách sau :
Nhấn giử nút phải và kéo thả từ một đỉnh đến đỉnh đối diện của
hình chữ nhật này. Một cửa sổ xuất hiện, hiện thị vùng biểu đồ
được đánh dấu, đã được phóng to.
- HS : Nghe GV hướng dẫn.
- GV : Chỉ vào các vùng sáng - tối trên bản đồ.
- GV : Trên bản đồ có các vùng sáng - tối khác nhau. Cho biết
thời gian hiện tại của các vùng này là ngày hay đêm. tại ranh giới
phân chia ngày và đêm, sẽ là thời điểm chuyển giao giữa đêm và
ngày (Mặt trời mọc) và ngày - đêm (Mặt trời lặn) theo sự chuyển
động của trái đất chúng ta sẽ thấy mặt trời chuyển động từ Đông
sang Tây, trên bản đồ các vùng tối “Chuyển động” theo hướng từ
Phải sang trái.
- GV : Đi theo chiều ngang của một đường thẳng từ trái sang
phải, chúng ta quan sát được thời gian hiện thời của các vị trí trên
trái đất theo đúng chiều thời gian chuyển động.
- HS : lắng nghe và ghi vào vở.
c) Thoát khỏi phầm mềm :
- Thoát khỏi phần mềm
FILE <sub></sub> EXIT hoặc nhấn tổ hợp ALT + F4.
3/ Hướng dẫn sử dụng :
b) Quan sát và nhận biết thời gian ngày và
đêm :
- Trên bản đồ có các vùng sáng - tối khác
nhau, cho biết thời gian hiện tại của các
vùng này là ngày hay đêm ?
- Trên bản đồ các vùng tối chuyển động theo
hướng từ phải sang trái.
- Đi theo chiều ngang của
một đ ường thẳng từ tr ái sang phải, ta quan
sát được thời gian hiện thời của các vị trí
trên tr ái đất.
<b>V/ CỦNG CỐ :</b>
- Khởi động thoát khỏi phầm mềm như thế nào ?
- Màn h ình ch ính l à g ì ?
- Muốn phóng to quan sát một vùng bản đồ chi tiết ta làm như thế nào ?
<b>VI/ HƯỚNG DẪN VỀ NHÀ :</b>
- Xem lại các nội dung đã học.
- Ti ết học sau chúng ta thực hành.
Tiết: 29,30 Bài 6:
A. <b>Mục đích yêu cầu</b>:
+ Biết sự cần thiết củacấu trúc rẽ nhánh trong lập trình;
+ Biết cấu trúc rẽ nhánh được sử dụng để chỉ dẫn cho máy tính thực hiện các thao tác phụ thuộc
vào điều kiện;
+ Hiểu cấu trúc rẽ nhánh có hai dạng: dạng thiếu và dạng đủ;
+ Biết mọi ,ngôn ngữ lập trình đều có câu lệnh để thể hiện cấu trúc rẽ nhánh
+ Hiểu cú pháp, hoạt động của các câu lệnh điều kiện dạng thiếu và dạng đủ trong Pascal;
+ Bước đầu viết được câu lệnh điều kiện trong Pascal.
B. Phương pháp: + Đàm thoại + Thuyết minh + Thảo luận nhóm
C. Chuẩn bị:Giáo viên: bảng phụ, Phấn màu,sgk, sgv,sbt -Học sinh: Sgk, sbt
D. <b>Tiến trình lên lớp</b>:
Em hãy cho biết thứ tự thực hiện các câu lệnh trong các chương trình đã học? Nêu một ví dụ đã
học để thấy rõ sự quan trọng của thứ tự thực hiện đó?(Vd: Rơ-Bơt nhặt rác)
Gv: Như vậy, ta thấy rằng các câu lệnh trong chương trình được thực hiện theo thứ tự từ trên
xuống dưới. Thực hiện các lệnh tuần tự từ đầu đến cuối là thứ tự thực hiện ngầm định của mọi ngôn ngữ
lập trình.Cấu trúc các câu lệnh như vậy gọi là cấu trúc điều khiển. Hơm nay ta tìm hiểu thêm một loại cấu
trúc nửa đó là cấu trúc rẽ nhánh được thể hiện bằng câu lệnh điều kiện.(vào baì mới)
III. <b>Bài mới</b>: Bài 6:
Trong cuộc sống hằng ngày, chúng ta thực hiện phần lớn các hoạt động một cách tuần tự theo thói quen
hoặc theo kế hoạch định sẵn (Vdụ: Buổi sáng An thường dậy sớm để tập thể dục...) Tuy nhiên các hoạt động của
<b>Hoạt động của thầy và trò</b> <b>Ghi bảng</b>
Hoạt động 1: Một vài hoạt động trong thực tế phụ thuộc
vào điều kiện. 1. Hoạt động phụ thuộc vào điều kiện. ( SGK)
Gv: Em hãy cho biết "điều kiện" trong mỗi câu sau?
a/Trên đường phố nếu gặp đèn đỏ, ta phải dừng lại.
b/Nếu Trời không mưa vào ngày chủ nhật, Long đi đá
bóng; ngược lại Long ở nhà xem phim.
Hs: Trả lời
Gv: Em hãy cho một vài vd thể hiện các hoạt động phụ
thuộc vào điều kiện.
Hs: Trả lời
Gv: nhấn mạnh từ "nếu" trong các câu trên được dùng để
chỉ một điều kiện.Các hoạt động tiếp theo sau điều kiện sẽ
phụ thuộc các điều kiện đó có xảy ra hay khơng.
Hoạt động 2: 2. Tính đúng hoặc sai của các điều kiện:
Gv: Các hoạt động tiếp theo sau điều kiện hoàn toàn phụ
thuộc vào kết quả kiểm tra điều kiện đó đúng hay sai.
Hs: phân tích ví dụ a/
Điều kiện Kiểm tra Kết quả Hđ tiếp theo
Trời mưa?
Có mưa sai Long xem
phim
Khơng
mưa
đúng Đi đá bóng
Đèn đỏ Đúng Dừng lại
Khơng đỏ Sai (Bỏ qua)
GV: Đk kiểm tra là đúng ta nói điều kiện được thỏa
mãn,ngược lại.
Đk kiểm tra là đúng ta nói điều kiện
được thỏa mãn,ngược lại.
Hoạt động 3: 3. Điều kiện và phép so sánh
Gv: Hãy nêu các phép toán so sánh đã học
Hs: =; <>; >=;<=; <; <
Gv: Các phép so sánh có kết quả đúng hoặc sai. <i><b>Phép so </b></i>
<i><b>sánh có vai trị quan trọng trong việc mơ tả thuật tốn và</b></i>
<i><b>lập trình,</b></i> ,ta xét vd:
Ví dụ 1:( SGK)
GV: Nêu vd ( in ra trên màn hình giá trị lớn hơn trong số 2
giá trị của các biến a,b)
GV : Nêu "điều kiện" trong yêu cầu trên?
HS: ...là phép so sánh a>b (hoặc a< b)
Gv: điều kiện này có thể đúng hoặc sai
Gv: Đưa ra câu lệnh đầy đủ:
"Nếu a>b thì in ra giá trị của biến a;
Ngược lại, in giá trị của biến b"
Gv giải thích: nếu thỏa mãn đk thực hiên lệnh 1, không
thỏa mãn thực hiện lệnh 2.
Hs: viết tương tự " Nếu a<b thì..."
Hoạt động 4: 4.Cấu trúc rẽ nhánh:
Ví dụ 2: (SGK)
Ví dụ 3: (sgk)
a/ Cấu trúc rẽ nhánh dạng thiếu:
b/ Cấu trúc rẽ nhánh dạng đủ:
Hoạt động 5: 5. Câu lệnh điều kiện
GV: Trong các ngơn ngữ lập trình, cấu trúc rẽ nhánh được
thể hiện bằng câu lệnh điều kiện.
Trong Pascal, các câu lệnh điều kiện được viết:
+ Dạng thiếu: viết với các từ khóa if và then
HS: làm vd 4 sgk
+ Dạng đủ: viết với các từ khóa if ... then ... else
GV: phân tích kĩ 2 mẫu vd, chạy thử học sinh dễ hiểu
Gv yêu cầu Hs: cho 1 ví dụ về câu lệnh điều kiện và viết
bắng ngôn ngữ Pascal
Trong Pascal, các câu lệnh điều kiện được
viết:
a/ Dạng thiếu:
If <điều kiện> then <câu lệnh>;
Ví dụ 4: (sgk)
b/ Dạng đủ:
If <điều kiện> then <câu lệnh1>
else <câu lệnh 2>;
Ví dụ 6 (sgk)
IV. <b>Củng cố</b>:
Điều
kiện?
sai
đúng
Câu lệnh
Điều
kiện?
sai
đúng
Ghi nhớ: cho hs nhắc lại ghi nhớ(sgk)
*Bài tập
1/ Một bài toán yêu cầu "Kiểm tra một số bất kì có chia hết cho 3 khơng? In ra trên màn hình nếu là số
chia hết cho 3"
a/ Dùng cấu trúc rẽ nhánh để thực hiện đúng yêu cầu trên.
b/ Cho biết đây là cấu trúc rẽ nhánh dạng nào?
c/ Có thể thay đổi yêu cầu bài toán trên để được 1 cấu trúc rẽ nhánh dạng đầy đủ khơng?
d/ Dùng ngơn ngữ lập trình Pacal để thực hiện các câu lệnh trên
<i>Hs: Thảo luận nhóm</i>
Giải:
a/ Nếu x chia hết cho 3 thì in ra màn hình số x chia hết cho 3;
b/ Dạng thiếu
c/ Nếu x chia hết cho 3 thì in ra màn hình số x chia hết cho 3 else in ra màn hình số x khơng chia
hết cho 3;
d/ +Cấu trúc rẽ nhánh dạng thiếu:
If (x mod 3) = 0 then writeln(x,' la so chia het cho 3');
+Cấu trúc rẽ nhánh dạng đầy đủ:
If (x mod 3) = 0 then writeln(x,' la so chia het cho 3');
else write(x,' la so không chia het cho 3');
2/ Các câu lệnh Pascal sau đây được viết đúng hay sai?
(s) a/ If x: = 7 then a = b;
(đ) b/ If x= 7 then a : = b;
(đ) c/ If x > 7 then a : = b; m: = n;
(s) d/ If x >7 then a : = b; else m: = n;
3/ Sau mỗi câu lệnh sau :
a/ If (45 mod 3) = 0 then x:=x+1;
b/ If x > 7 then x:=x+1;
giá trị của biến x ẽ là bao nhiêu nếu trước đó x=12
V. <b>Dặn dò</b>:
+Học thuộc ghi nhớ
+Làm bài tập và soạn bài thực hành
E.<b>Tổng kết rút kinh nghiệm:</b>
Luyện tập sử dụng câu lệnh <b>if …. Then</b>.
Rèn luyện kĩ năng ban đầu về đọc các chương trình đơn giản và hiểu được ý nghĩa của thuật toán sử
dụng trong chương trình.
<i><b>Tiết 30. </b></i>
<b>* Hoạt động 1: </b>Kiểm tra (4 phút)
- Gv: Hãy nêu các dạng câu lệnh trong PASCAL để thực hiện cấu trúc rẽ nhánh?
- Hs: <i>Dạng thiếu: </i> <b>IF</b><i><điều kiện></i> <b>THEN</b><i><câu lệnh></i>;
(Nếu điều kiện đúng thì thực hiện <câu lệnh>;)
<i>Dạng đầy đủ: </i><b>IF</b><i><điều kiện></i><b>THEN</b><i><câu lệnh 1> </i><b>ELSE</b><i> <câu lệnh 2></i>;
(Nếu điều kiện đúng thì thực hiện <câu lệnh1> ngược lại thực hiện <câu lệnh 2>;)
- Gv: Khi viết câu lệnh đầy đủ cần chú ý điều gì?
- Gv: Điều đó cũng giúp cho các em hiểu rằng trong Pascal dấu chấm phẩy (;) không phải dùng để kết
thúc câu lệnh mà dùng để phân cách các câu lệnh.
<b>* Hoạt động 2: </b>Hướng dẫn và thực hành Bài tập 1(20 phút)
<b>Hoạt động Thầy</b> <b>Hoạt động trò</b>
- Gv: Yêu cầu một HS đọc yêu cầu bài tập 1.
- Gv: Với 2 số nguyên a và b bất kỳ thì về quan hệ thứ
tự giữa chúng có mấy trường hợp xảy ra?
- Gv: Để in ra theo thứ tự tăng dần thì số nào in trước
(số nhỏ hay số lớn)?
- Gv: Trường hợp hai số bằng nhau thì sao?
- Gv: Thế thì em nào có thể nêu các bước để giải quyết
vấn đề này (diễn giải bằng ngôn ngữ thông thường).
- Gv: Trong thuật toán trên, em sử dụng câu lệnh điều
kiện để rẽ nhánh ở bước nào?
- Gv: Trên cơ sở các bước làm đó, Gv hướng dẫn học
sinh cách viết chương trình Pascal.
- Gv: Quan sát, hướng dẫn cụ thể cho nhóm nào cịn
vướng mắc. Sau khi HS làm xong GV kiểm tra và sửa
chữa nếu sai sót.
- Gv: Cho HS đọc chương trình ở câu b và so sánh hai
cách viết trên.
- Gv: Thực ra viết như SGK hướng dẫn thì chương
trình gọn hơn, tuy nhiên để bước đầu các em làm quen
với câu lệnh điều kiện thầy hướng dẫn theo cách trên
để các em dễ hiểu hơn, gần với suy nghĩ của các em
hơn vì sử dụng các câu lệnh dạng thiếu đơn giản.
-Gv Yêu cầu HS lưu chương trình lại với tên
Sap_xep.pas
-Hs: <i>Viết chương trình nhập hai số nguyên a</i>
<i>và b từ bàn phím và in hai sớ đó ra màn hình</i>
<i>theo thứ tự tăng dần.</i>
-Hs: Có 3 trường hợp a > b, hoặc a = b, hoặc a
< b.
- Hs: Số nhỏ trước, số lớn sau.
- Hs: Số nào in trước cũng được.
- Hs:
<i>Bước 1. </i>Nhập hai số nguyên a và b từ bàn
phím.
<i>Bước 2. </i>Nếu a < b hoặc a = b thì in ra màn
hình giá trị của biến a rồi đến in giá trị của biến
b.
<i>Bước 3. </i>Nếu a > b thì in ra màn hình giá trị của
biến b rồi đến in giá trị của biến a.
<i>Bước 4. </i>Kết thúc
- Hs: Ở bước 2 và bước 3.
- Hs: Theo dõi cùng với GV xây dựng chương
trình theo các bước mơ tả ở trên. Sau đó gõ vào
máy, chạy thử và kiểm tra kết quả.
- Hs: đọc và trả lời …
Chương trình trong sách dùng một câu lệnh
điều kiện dạng đầy đủ, ciịn chương trình viết
đây dùng 2 câu lệnh dạng thiếu.
<b>* Hoạt động 3: </b>Hướng dẫn và thực hành Bài tập 2(20 phút)
<b>Hoạt động Thầy</b> <b>Hoạt động trò</b>
- Gv: Yêu cầu một HS đọc yêu cầu bài tập 2. -Hs: <i>Viết chương trình nhập chiều cao của hai</i>
Program sapxep;
Uses crt;
Var : a, b: integer;
Begin
Clrscr;
Write (‘Nhap so a = ’); Readln(a);
Write (‘Nhap so b = ’); Readln(b);
Write (‘Thu tu hai so la: ‘);
If a <= b thenwrite (a,‘ ‘,b);
If a > b then write (b,‘ ‘,a);
Readln;
- Gv: Cho HS thực hiện lần lượt các yêu cầu của bài
tập.
- Gv: Hãy quan sát kết quả xử lí và cho nhận xét.
- Gv: Như vậy chương trình đã xử lí vấn đề khơng tốt.
Hãy đọc lại chương trình và tìm xem chỗ nào chưa
đúng gây nên lỗi này?
- Gv: Đây là lỗi về ngữ nghĩa của chương trình. Thoạt
nhìn theo cách nghĩ thơng thường ta thấy có lí, đảm
bảo các trường hợp vì khi xét điều kiện thứ 2 thì đã
loại đi điều kiện trước đó do khơng thỏa mãn, nhưng
đây là máy xử lí nên nó “rất máy móc”, khi thực hiện
câu lệnh thứ 2 máy chẳng nhớ “đã xét trường hợp
“Long > Trang” nên vẫn xét hết các trường hợp xảy ra.
Do đó, trong trường hợp này nếu khơng thỏa mãn điều
kiện “Long < Trang” thì máy sẽ in kết quả “Hai bạn
bằng cao bằng nhau” cho dù đã in kết quả “Bạn Long
cao hơn” khi thực hiện câu lệnh trước đó.
- Gv: Trường hợp này các em sẽ xử lí như thế nào?
- Gv: Khi xây dựng các bước giải chúng ta kiểm tra kỹ
kết quả hoạt động của các câu lệnh.
- Gv: giảng giải thêm cách sử dụng các câu lệnh If ..
then lồng nhau:
<i>If <điều kiện 1> then <Câu lệnh 1></i>
<i>Else </i>
<i>If <điều kiện 2> then <Câu lệnh 2></i>
<i>Else < Câu lệnh 3></i>
<i>bạn Long và Trang, in ra màn hình kết quả so</i>
<i>sánh chiều cao của hai bạn, chẳng hạn “Bạn</i>
<i>Long cao hơn”.</i>
Hs: Thực hiện:
a) Gõ chương trình
b) Lưu với tên Aicaohon.Pas → Dịch.
c) Chạy thử với các bộ dữ liệu.
- Hs: Trường hợp bộ dữ liệu (1.6, 1.5) máy cho
hai kết quả <i>“Bạn Long cao hơn”</i> và <i>“Hai bạn</i>
<i>cao bằng nhau”</i>.
- Hs: Với cách viết như trên thì khi xử lí trường
hợp chiều cao bạn Long cao hơn sẽ luôn cho ra
hai kết quả:
1. Kết quả từ câu lệnh:
If Long > Trang then
write (‘Ban Long cao hon’);
2. Kết quả từ câu lệnh:
If Long < Trang then
write (‘Ban Trang cao hon’)
Else write (‘Hai ban cao bang nhau.’)
- Hs: Ta viết lại như sau:
If Long > Trang then
write (‘Ban Long cao hon’)
If Long < Trang then
write (‘Ban Trang cao hon’)
Else write (‘Hai ban cao bang nhau.’)
<b>* Hoạt động 4: </b>Hướng dẫn về nhà (1 phút)
- Về nhà các em tìm hiểu và xây dựng chương trình với yêu cầu của bài tập 3.
Program Aicaohon;
Uses crt;
Var : Long, Trang: Real;
Begin
Clrscr;
Write (‘Nhap chieu cao cua Long: ’); Readln(a);
Write (‘Nhap chieu cao cua Trang: ’); Readln(b);
If Long > Trang then write (‘Ban Long cao hon’);
If Long < Trang then write (‘Ban Trang cao hon’)
Else write (‘Hai ban bang nhau.’)
<i><b>Tiết 32. </b></i>
<b>* Hoạt động 5: </b>Hướng dẫn và thực hành Bài tập 3(30 phút)
<b>Hoạt động Thầy</b> <b>Hoạt động trị</b>
- Gv: Treo bảng phụ và nói <i>“Đây là một chương</i>
<i>trình nhập ba số dương a, b, c từ bàn phím, kiểm tra</i>
<i>và in ra màn hình kết quả kiểm tra ba sớ đó có thể là</i>
<i>độ dài các cạnh của một tam giác không?”</i>
- Gv: Ba số dương bất kỳ khi nào thì chúng là độ dài
các cạnh của một tam giác? (nhớ lại bất đẳng thức
trong tam giác)
- Gv: Em nào có thể nêu được ý tưởng giải thuật của
chương trình?
- Gv: Hãy đọc chương trình và tìm hiểu ý nghĩa các
câu lệnh của chương trình.
- Gv: Qua tìm hiểu em thấy bằng cách nào để người
ta có thể kiểm tra đồng thời ba biểu thức so sánh?
- Gv: Người ta sử dụng từ khóa AND (và) để kết nối
nhiều phép so sánh đơn giản thành pmột phép so
sánh phức hợp. Giá trị của phép so sánh này là đúng
khi tất cả các phép so sánh đơn giản đều có giá trị
đúng. Ngược lại, chỉ cần một trong các phép so sánh
tồn phần có giá trị sai thì nó có giá trị sai
- Gv: Hãy nhập chương trình vào máy và chạy thử
với các bộ dữ liệu khác nhau.
- Gv: Quan sát và hướng dẫn HS thực hành.
- Gv: Kiểm tra một vài máy → nhận xét.
-Hs: Quan sát nội dung chương trình viết trên
bảng phụ .
- Hs: Khi tổng hai cạnh bất kì lớn hơn cạnh cịn
lại.
- Hs: Nếu (a+b>c) và (a+c>b) và (b+c>a)thì a, b,
c là độ dài ba cạnh của một tam giác; ngược lại
thì khơng.
- Hs: đọc chương trình và nêu ý nghĩa từng câu
lệnh.
- Hs: dùng từ khóa AND.
- Hs: nghe và ghi nhớ …
- Hs: Thực hành …
Program Ba_canh_ta_giac;
Uses crt;
Var : a, b, c: Real;
Begin
Clrscr;
Write (‘Nhap ba so a, b, và c: ’); Readln(a,b,c);
If (a+b>c) and (a+c>b) and (b+c>a) then
Write(‘a, b va c la do dai 3 canh mot tam giac’)
Else
Write(‘a, b va c khong la do dai 3 canh mot tam giac’)
Readln;
Ngày soạn 03/12/2008.
TIẾT 33: ĐỀ KIỂM TRA THỰC HÀNH (1 TIẾT)
I/ Mục đích, yêu cầu:
Viết được câu lệnh If...then trong chương trình.
Kỹ năng đọc chương trình đơn giản và hiểu được thuật tốn trong chương trình.
II/ Ma trận đề:
Thơng hiểu nhận biết vân dụng Tổng
Cấu trúc chương
trình pascal
1
4
Câu lệnh If...then 1
2
1
2
1
2
III/ Đề bài:
Câu 1(4 điểm): Viết chương trình in ra màn hình dịng chữ “CHÀO CÁC BẠN”.
Câu 2 (6 điểm): Viết chương trình nhập vào 2 số tự nhiên, in ra màn hình kết quả so sánh 2 số, chẳng hạn
số nào lớn hơn.
IV/ Thang điểm và đáp án:
Program cau1;(4 điểm)
Uses crt;
Begin
Writeln(‘ CHAO CAC BAN’);
Begin.
Program cau2;(6 điểm)
Uses crt;
Var ST1, ST2: Real;
Begin
Clrscr;
Write(‘ Nhập số thứ nhất:’); readln(ST1);
Else writeln(‘ hai so bang nhau’);
Readln
End.
Tiết
Điểm Lời ph ê của giáo viên
<i><b>Phần 1: Trắc nghiệm khách quan :</b></i>
10+<i>x</i>¿2
¿
¿
¿
=>...
………...
………...
...
...
<b>II/ Ma trận đề</b>:
Thơng hiểu nhận biết vân dụng Tổng
Cấu trúc chương
trình pascal
2
0.5đ
2
(0.5đ)
1(a,b)
2đ
5c(4đ)
Câu lệnh If...then 2
0.5đ
2
(0.5đ)
1
4đ
5c(6đ)
Tổng cọng 4 (2đ) 4 (2đ) 2 (6đ) 10 câu( 10đ)
<b>Đáp án</b>:
I/Trác nghiệm: mỗi câu 0,5 điểm
1 2 3 4 5 6 7 8
S,Đ,Đ,Đ C B D A B A D
Phần II.Tự luận
Câu 1(2đ)
-Viết đúng mỗi câu 1đ
Câu 2(4 điểm)
-Viết đươc đầy đủ cấu trúc chương trình gồm 3 phần 1đ. Program,begin,end.
-Khai báo biến 0,5 đ
-Viết đúng từng câu lệnh điều kiện ( 5 phần mỗi phần 0.5 đ)<sub></sub> 2,5 đ.
( IF...then...else...)<sub></sub> gioi,kha,tb,yeu,kem.
<i>Tuần:.... </i> <i>Ngày : 10/01/09</i> <i> Tiết 37, 38: </i>
<i><b>CÂU LỆNH LẶP</b></i>
<b>I. Mục tiêu:</b>
<b>a) Kiến thức:</b>
<b>- </b>Biết nhu cầu cần có cấu trúc lặp trong ngơn ngữ lập trình;- Biết ngơn ngữ lập trình dùng
cấu trúc lặp để chỉ dẫn máy tính thực hiện lặp đi lặp lại cơng việc nào đó một số lần;- Hiểu
hoạt động của câu lênh lặp với số lần biết trước for ... do trong Pascal;
- Biết lệnh ghép trong Pascal.
<b>b) Kỹ năng:</b>
- Viết đúng lệnh for...do trong một số tình huống đơn giản;- Hiểu cách viết đúng các quy
tắc, cú pháp trong ngôn ngữ cụ thể khi dùng vòng lặp for;- Đọc hiểu được chương trình có
sử dụng vịng lặp for...do;
<b>c) Thái độ:</b>
- Nhận thức được vai trò quan trọng của vòng lặp xác định for...do là giúp thực hiện
các công việc lặp lại nhiều lần một cách khoa học, nhanh chóng, khơng dài dịng,
tránh nhàm chán, dễ sai sót và tốn thời gian;
- Có ý thức trong học tập.
<b>II. Chuẩn bị:</b>
- Một số ví dụ bài tập về vòng lặp for...do;
HS: - SGK, vở để ghi;
<b>III. Lưu ý sư phạm:</b>
- Dạy để học sinh hiểu cách sử dụng vịng lặp for...do trong mọi ngơn ngữ lập trình;- Ứng
dụng vịng lặp được minh họa bằng ngôn ngữ Pascal, không phải nhất nhất áp đặc học
sinh vào ngôn ngữ Pascal;- Không nên đưa vào các kiến thức ngoài SGK quá nhiều nhằm
tránh gây quá tải đối với học sinh.
<b>IV. Hoạt động dạy và học:</b>
<b>A.Kiểm tra bài cũ:</b> câu điều kiện, cấu trúc rẽ nhánh
<b>B.Bài mới:</b>
<b>1. Hoạt động 1: Giới thiệu các công việc phải lặp nhiều lầnMục tiêu</b>: giúp học sinh
nhận biết và phân biệt được các công việc lặp lại nhiều lần trong đời sống hằng ngày .
<b>HĐ giáo viên</b> <b>HĐ học sinh</b> <b>Nội dung</b>
Câu hỏi: Trong đời sống hằng
ngày có rất nhiều cơng việc được
lặp đi lặp lại, em nào cho biết
một vài ví dụ?
GV cho thêm vào ví dụ: mỗi
sáng thứ 2 đều chào cờ đầu
tuần, hoặc cô giáo lặp đi lặp lại
việc gọi học sinh lên trả bài và
ghi điểm, cô giáo sẽ ngừng lại
cho đến khi đã vào điểm cho tất
GV chốt lại: đó là các công việc,
các hoạt động được thực hiện
bằng cách lặp đi lặp lại nhiều
lần, được chia làm 2 kiểu lặp:
lặp với số lần nhất định, biết
trước và lặp với số lần khơng xác
định được.
Câu hỏi: ví dụ nào là lặp với số
lần xác định được, ví dụ nào là
lặp với số lần khơng xác định
được?
GV: Nhận xét đánh giá
- GV cho học sinh ghi vào vở
Thảo luận trả lời:
-Tiếng gà gáy mỗi sáng,
tiếng trống trường sau
mỗi tiết học, đánh răng
trước khi đi ngủ và mỗi
sáng thức dậy...
- Hằng ngày em đi
học ...
HS lắng nghe
Một vài học sinh trả lời
HS Lắng nghe
HS ghi vào vở
<b>1. Các công việc phải thực</b>
<b>hiện nhiều lần: </b>
- lặp với số lần nhất định và
biết trước: đánh răng mỗi
ngày 2 lần, ngày ăn cơn 3
lần...
- lặp với số lần không thể
xác định trước: học cho đến
khi thuộc bài...
<b>3. Hoạt động 3: Cấu trúc câu lệnh lặp</b>
<b>Mục tiêu:</b>
<b>- </b>Biết cấu trúc câu lệnh của vòng lặp biết trước số lần lặp for...do
- Hiểu nguyên tắc hoạt động của câu lệnh lặp
- Hiểu câu lệnh đơn, câu lệnh ghép.
<b>Cách thực hiện: </b>Sử dụng ngôn ngữ pascal để minh họa ví dụ
<b>HĐ giáo viên</b> <b>HĐ học sinh</b> <b>Nội dung</b>
- Trở lại với VD2: minh họa
Cấu trúc lặp đã được mô
tả bằng câu lệnh lặp
của ngôn ngữ pascal.
Program Lap;
Var i: integer;
Begin
For i:= 1 to 5 do
Writeln(‘Day la lan lap thu:’,
i);
Readln;
End.
Cùng HS phân tích cú pháp:
+ Giá trị đầu, giá trị cuối luôn là
kiểu dữ liệu gì?
+ biến đếm: biến đầu tiên được
gán giá trị đầu, mỗi lần thực
hiện thì biến đếm tăng 1 đơn vị
từ giá trị đầu đến giá trị cuối.
Vậy biến đếm có kiểu dữ liệu gì?
Giá trị cuối như thế nào so với
giá trị đầu?
- Cùng học sinh phân tích hoạt
động: Đầu tiên biến đếm gán
bằng giá trị đầu, sau đó giá trị
biến đếm tăng dần 1 đơn vị từ
giá trị đầu đến giá trị cuối. và
câu lệnh được thực hiện mỗi lần
tăng biến đếm cho đến khi biến
đếm vượt quá giá trị cuối thì kết
thúc.
<b>GV Cho chạy chậm VD3:</b>
<b>Cho HS ghi hoạt </b>động vào vở.
Cho HS ghi ví dụ vào vở
* Bài tập ví dụ: Dùng lênh
for...do viết đoạn lệnh nhập tên
và hiển thị ra màn hình 40 bạn
trong lớp em.
- Gọi một HS lên bảng viết
Câu hỏi: Ở VD2 và bài tập bạn
làm em thấy trong câu lệnh lặp
có gì khác nhau?
GV chốt lại: sau khóa do có
nhiều câu lệnh thì phải gói trong
khối begin...end. Begin...end
này được coi là câu lệnh ghép
của pascal, sau end là dấu ;
- HS lên viết cấu trúc
- Thảo luận nhận xét
- Dữ liệu kiểu số
nguyên
- HS trả lời: kiểu
nguyên, giá trị cuối >=
giá trị đầu
- HS ghi vào vở
- HS lắng nghe
HS theo dõi
HS Ghi vở
HS theo dõi
HS ghi ví dụ vào vở
HS viết vào giấy nháp
<b>-Một HS lên </b>
<b>bảng viết</b>
- <b>HS thảo luận trả lời</b>
+ VD2: sau do là 1 câu
lệnh
+ Bài tập: sau do là các
câu lệnh nằm trong khối
Begin...end.
HS lắng nghe ghi vào vở
HS ghi đề vào vở
HS trả lời
- HS tự làm vào
giấy nháp
HS ghi đề vào vở
HS trả lời
- HS tự làm vào giấy
nháp
- 2 HS lên bảng
đầu>
to <giá trị cuối> do <câu
lệnh>;
<b>Trong đó:</b>
- <i>biến đếm:</i> là biến thường
có kiểu nguyên;
- <i>Giá trị đầu, giá trị cuối</i>: là
<i>Hoạt động:</i> Biến đếm gán
bằng giá trị đầu, sau đó giá
trị biến đếm tăng dần 1 đơn
vị từ giá trị đầu đến giá trị
cuối. và câu lệnh được thực
hiện mỗi lần tăng biến đếm
cho đến khi biến đếm vượt
quá giá trị cuối thì kết thúc.
<b>Ví dụ một chương trình</b>
<b>viết bằng Pascal:</b>
* <b>Chú ý:</b> Câu lệnh có thể là
câu lệnh đơn hoặc câu lệnh
ghép
4. Tính tổng và tích bằng
câu lệnh lặp:
Ví dụ 4: Tính tổng của N số
tự nhiên đầu tiên, N được
nhập từ bàn phím.
Program Tinh_tong;
Var N, i : integer;
Write(‘Nhap so N = ’);
readln(N);
S:= 0;
For i := 1 to N do S:=
S+i;
Writeln(‘Tong cua’,N, ‘so
tu nhien
dau tien S=’, S);
End.
Ví dụ 5: Tính tích của N số
tự nhiên đầu tiên.(Kí hiệu:
N!=1.2.3...N)
Program Tinh_giai_thua;
Var N, i : integer;
và làm.
- Gọi một HS nhắc lại thuật tốn
tính tổng N.
- GV hướng dẫn cách làm :
+ gán S 0, giá thị đầu = 1thi
S:= S+1
*Cho HS ghi đề ví dụ 5 vào vở
và làm.
- Giải thích tích N số tự nhiên
đầu tiên là N!=1.2.3...N
- Gọi một HS trình bày thuật
tốn tính tổng N.
- GV hướng dẫn thuật tốn và
cách làm :
+ Tích N rất lớn nên khai báo
kiểu dữ liệu gì?
+gán P 1 và khi giá trị đầu =1
thì P:=P*1
* GV gọi 2 HS lên bảng giải
- GV sửa bài và cho HS ghi vào
vở.
* Nhắc nhở HS: cấu trúc lặp
được được viết ở mọi ngơn ngữ
lập trình, ta đang viết bằng
- HS nhận xét, bổ
sung
- Ghi vào vở
HS lắng nghe
Write(‘Nhap so N = ’);
readln(N);
P:= 1;
For i := 1 to N do P:=
P*i;
Writeln(N, ‘! = ’,P );
End.
* Chú ý: N! là số rất lớn nên
cần khai báo biến chứa giá
trị của nó đủ lớn
<b>V. Củng cố dặn dò: </b>
- Cũng cố lại câu lệnh lặp
- Cho bài tập về nhà
- Làm các bài tập ở sách giáo khoa
- Làm các bài tập trong bài thực hành 5 để tiết sau thực hành.
- Nhận xét tiết học, đánh giá tiết học
Tiết 39-40 <b>BÀI TẬP 3</b> <b>17/01/09</b>
<i><b>1. Mục đích, yêu cầu</b></i>
Viết được được câu lệnh điều kiện <b>if...then</b> trong chương trình;
Rèn luyện kĩ năng ban đầu về đọc các chương trình đơn giản và hiểu được ý nghĩa của thuật toán sử
dụng trong chương trình.
<i><b>2. Những điểm cần lưu ý và gợi ý dạy học</b></i>
Bài này là bài đầu tiên HS thực hành sử dụng lệnh if... then. Do vậy, các ví dụ cần đơn giản, dễ hiểu để HS
dễ dàng nhận ra ý nghĩa, hoạt động của câu lệnh điều kiện, biểu thức điều kiện, câu lệnh trong cấu trúc rẽ nhánh.
<i><b>3.Nội dung</b></i>
Với bài tập 3, HS cần biết điều kiện để ba số dương a, b, c là ba cạnh của một tam giác thì tổng hai cạnh phải lớn
lớn cạnh còn lại, nghĩa là phải đồng thời thoả mãn ba điều kiện a + b > c, b + c > a và c + a > b. GV hướng dẫn
HS về cách biểu diễn ba điều kiện này trong Pascal:
Điểm khó của bài này là học sinh biết chuyển biểu thức điều kiện toán học sang biểu diễn trong Pascal. Cần giải
thích để HS hiểu dùng phép quan hệ andlà để đảm bảo cả ba điều kiện a + b > c, b + c > a và c + a > b đồng thời
thoả mãn; Việc phải sử dụng dấu ngoặc tròn trong phép so sánh trên là để đảm bảo thứ tự ưu tiên thực hiện phép
toán và để đảm bảo tham số của phép and (và or) chỉ có thể là giá trị đúng hoặc sai (không là số).
Cần cho HS đọc, thảo luận kĩ để hiểu chương trình này. Bài tốn này là một trong các bài toán yêu cầu
trong chuẩn kiến thức, kĩ năng. Sau khi học bài này, HS phải hiểu và phải tự viết chương trình giải bài tốn tương
tự (ví dụ kiểm tra tính chất của tam giác dựa trên số đo của cạnh: cân, đều, vuông).
Để HS luyện tập thêm về câu lệnh điều kiện, phép so sánh, có thể yêu cầu HS viết chương trình cho phép
nhập điểm bài kiểm tra của một bạn nào đó, sau đó thực hiện:
- Nếu điểm nhỏ hơn 5, in ra dòng chữ "Ban can co gang hon";
- Nếu điểm lớn hơn hoặc bằng 5 và nhỏ hơn 6.5, in ra dòng chữ "Ban dat diem trung binh";
- Nếu điểm lớn hơn hoặc bằng 6.5 và nhỏ hơn 8, in ra dòng chữ "Ban dat diem Kha";
- Nếu điểm lớn hơn hoặc bằng 8, in ra dịng chữ "Hoan ho ban dat diem Gioi".
Hoặc một ví dụ khác là yêu cầu HS viết chương trình giải phương trình bậc nhất ax + b = 0, với a 0, a, b nhập từ
bàn phím. Lưu ý, phương trình bậc nhất một ẩn số được giới thiệu trong chương trình mơn Tốn lớp 8 (học kì II).
Do vậy, nếu HS chưa được học phương trình này ở mơn Tốn, GV nên dành một vài phút để HS làm quen với
khái niệm này.
Tiết : 41-42 Bài thực hành 5 44/02/09
<b>A.Mục tiêu: </b>
Viết được chương trình có sử dụng vòng lặp FOR...DO
Sử dụng được câu lệnh ghép.
Rèn luyện kĩ năng đọc hiểu chương trình có sử dụng vịng lặp FOR...DO
Hình thành kĩ năng thực hành chính xác, biết chỉnh sửa chương trình để làm đẹp kêt quả
<b>B. Phương pháp: Luyện tập, thực hành trên máy- Đặt vấn đề để học sinh trao đổi và đưa nhận xét. Tận</b>
dụng vốn hiểu biết “ một cách tự nhiên của học sinh
<b>C. Chuẩn bị của GV, HS </b>
<b>1. Chuẩn bị của GV</b>:- Giáo viên: Phấn màu, sách, máy chiếu projector, máy tính
- Chuẩn bị sẵn một số của các ví dụ SGK-Chuẩn bị thêm các bài tập minh hoạ
<b>2. Chuẩn bị của HS:-S</b>ách, vở ,viết.
<b>D. Tiến trình lên lớp:</b>
<b>I. Ổn định.</b>
<b> II.Kiểm tra bài cũ: (</b>Kiểm tra trong quá trình thực hành)
<b> III. Bài mới: </b>Bài thực hành 5
<b>Hoạt động của thầy và trò</b> <b>Ghi bảng</b>
<b>Hoạt động 1</b>:Bài tập mở đầu
Cho học sinh viết chương trình <b>chào hỏi</b> các bạn
trong lớp
(Để cho học sinh chọn giá trị cuối tùy ý
Thay đổi nhiều lần khác nhau các giá trị cuối )
Em có nhận xét gì về số lần nhập tên và hiển thị lời
chào khi thay đổi giá trị cuối.?
Với giá trị cuối quá lớn làm thế nào để ngắt chương
trình?
(Dùng tổ hợp phím Ctrl+ Break)
<b>Hoạt động 2 </b> Bài 1: sách giáo khoa
Cho học sinh Tìm hiểu các câu lệnh trong chương
trình, dịch chương trình và sửa lỗi nếu có
Học sinh chay chương trình với các giá trị nhập vào
lần lượt bằng 1,2,...10. quan sát kết quả nhận được
trên màn hình
Nhap so n=7
bang nhan7
7X 1= 7
7X 2= 14
7X 3= 21
7X 4= 28
7X 5= 35
7X 6= 42
7X 7= 49
7X 8= 56
7X 9= 63
7X10= 70
Có nhận xét gì với kết quả của chương trình nhận
được khi n=7
Để khắc phục các điểm yếu trên ta nên chỉnh sửa như
thế nào?
<b>Hoạt động 3:</b> Chỉnh sửa chương trình làm đẹp kết
quả trên:
Hướng dẫn cho học sinh sử dụng các lệnh: GotoXY,
WhereX và WhereY
Dịch và chạy chương trình khi sử dụng các lệnh :
Nhap so n=7
bang nhan 7
7 X 1= 7
7 X 2= 14
7 X 3= 21
7 X 4= 28
7 X 5= 35
7 X 6= 42
7 X 7= 49
7 X 8= 56
░║ readln;
░║ end.
░
<b>Baì 1:</b> BANGNHAN.PAS ═════╗
║program bangnhan;
║uses crt;
║var n,i:integer;
║begin
║ clrscr ;
║ write('Nhap so n = ');readln(n);
║ writeln;
║ writeln('bang nhan',n);
║ writeln;
║ for i:=1 to 10 do
║ writeln(n,'X',i:2,'=',n*i:4);
║ readln;
║ end .
<b>Bài 2: </b>
║ Program Bangnhan;
║uses crt;
║var n,i:integer;
║begin
║clrscr ;
║ write('Nhap so n = ');readln(n);
║ writeln;
║ writeln('bang nhan ',n);
║ writeln;
║ for i:=1 to 10 do
║ begin
║ gotoxy(10,wherey);
writeln(n,'X',i:2,'=',n*i:4);
║ writeln;
║ end;
║
║ readln;
<b>Bai tập 3:</b>
7 X 9= 63
7 X 10= 70
Hoạt động 4: Lồng câu lệnh FOR
Học sinh nhập bài tập 3 vào máy
0 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19
20 21 22 23 24 25 26 27 28 29
30 31 32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47 48 49
50 51 52 53 54 55 56 57 58 59
60 61 62 63 64 65 66 67 68 69
70 71 72 73 74 75 76 77 78 79
80 81 82 83 84 85 86 87 88 89
90 91 92 93 94 95 96 97 98 99
Hoạt động 5: Tổng Kết
║ write (10*i+j:3);
║ writeln;
TỔNG KẾT
(SGK)
<b>IV. Củng cố: </b>
<b>1)</b>Cấu trúc lặp với lần lặp biết trước ta sử dụng bằng câu lệnh Pascal nào?
2)Có thể lồng các câu lệnh For được khơng? Lúc nầy biến đếm phải như thế nào?
3) Nêu ý nghĩa của các câu lệnh: GotoXY, WhereX và WhereY
<b>V. Dặn dò, hướng dẫn học sinh học tập ở nhà:</b>
Đọc bài tính gần đúng của số Pi (Nhập chương trìn vào máy)
Xem bài: <b>Lặp với số lần chưa biết trước.</b>
Cho biết kết quả của mỗi vòng lặp sau
cautruclap cautruclap1 cautruclap2
program cautruclap;
uses crt;
var n : integer;
i: integer;
Begin
clrscr;
n:=10;
for i:=1 to n do
begin
write(i:4);
i:=i+1;
end;
readln;
end.
program cautruclap1;
uses crt;
var n : integer;
i: integer;
Begin
clrscr;
n:=10;
for i:=1 to n do
begin
n:=5; write(i:4);
end;
readln;
end.
program cautruclap2 ;
uses crt;
var n : integer;
i: integer;
Begin
clrscr;
n:=10;
for i:=1 to n do
begin
write(i:4);
i:=i+2;
end;
readln;
end.
<b>E. Rút kinh nghiệm : </b>
Tuần 25- Ngày soạn:...
Ngày giảng:....11/02/09...
<b>Tiết 49,50 LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC</b>
I.Mục tiêu:
- Biết nhu cầu cần có cấu trúc lặp với số lần chưa biết trước trong ngôn ngữ lập trình
- Biết ngơn ngữ lập trình dùng cấu trúc lặp với số lần chưa biết trước để chỉ dẫn máy tính thực hiện lặp đi
lặp lại cơng việc đến khi một điều kiện nào đó được thỏa mãn;
II.Chuẩn bị GV: Phòng máy, bảng phụ.HS: Đọc và suy ngẫm trước các ví dụ SGK
III. Tiến trình bài dạy:
<b>1.Ổn định lớp:</b>
<b>2.Kiểm tra bài cũ:</b>
-Giáo viên:
+ Viết câu lệnh với vòng lặp FOR...DO?
+ Câu lệnh Pascal sau có hợp lệ khơng? Vì sao?
For i:=100 to 1 do writeln(‘A’);
3.Bài mới: ĐVĐ như SGK
<b>Hoạt động của thầy và trò</b> <b>Nội dung kiến thức</b>
Hoạt động 1: Các hoạt động lặp với số lần chưa biết trước
GV: -Nêu một số ví dụ về hoạt động lặp với số lần chưa biết trước.
HS: nghiên cứu VD1
GV: ? Trong VD1 bạn Long thực hiện hoạt động nào nhiều lần?
HS: Gọi điện cho bạn Trang
GV: ? Bạn Long gọi điện mấy lần
HS: Chưa thể biết
GV: Nhấn mạnh: Số lần gọi chưa thể biết trước được, có thể một
lần, có thể hai hoặc nhiều hơn nữa. Điêu kiện để kết thúc hoạt
động lặp đó là có người nhấc máy
GV: giới thiệu VD2 là một bài tốn khoa học.
HS:( nhóm đôi) Nghiên cứu VD2 và trả lời yêu cầu của VD2 và
điều kiện để thực hiện phép cộng với số tiếp theo hay dừng
GV: Nhấn mạnh: Cần cộng bao nhiêu số tự nhiên đầu tiên để ta
nhận được tổng Tn nhỏ nhất lớn hơn 1000; Và Đk: Trong từng
bước cần phải kiểm tra tổng đã lớn hơn 1000 hay chưa?
GV: Giới thiệu thuật toán như SGK
Và chốt: Việc lặp lại một nhóm hoạt động với số lần chưa xác
định trước phụ thuộc vào một điều kiện cụ thể có được thỏa mãn
hay khơng
- Đưa ra sơ đồ hoạt động của cấu trúc lặp
1.Các hoạt động lặp với số lần chưa biết
trước:
Ví dụ 1: SGK
Ví dụ 2: SGK
<b>Sai</b>
<b> </b>
<b> Đúng </b>
<b>Hoạt động 2: Ví dụ về lặp với số lần chưa biết trước</b>
GV: giới thiệu cấu trúc câu lệnh While... do
HS: ghi bài
GV giới thiệu hoạt động của vòng lặp như SGK
- Nêu u cầu bài tốn? ( Tìm n nhỏ nhất để 1/n < 0,003)và
xácđịnh đầu vào, đầu ra
HS: thảo luận nhóm đơi và trả lời
Đầu ra: n
- GV hướng dẫn hs viết thuật toán và chốt lại các bước
B1: Nhập sai số
B2: n← 1, x ← 1/n
2.Ví dụ về lặp với số lần chưa biết trước:
a) Cấu trúc:
<b>While</b> < Điều kiện> <b>do</b> < Câu lệnh>;
ĐKiện: thường là một phép so sánh
Câu lệnh: có thể là câu lệnh đơn giản hoặc
câu lệnh ghép
b) Ví dụ 3: SGK
B1: Nhập sai số
B2: n← 1, x ← 1/n
B3:Nếu x ≥ 0,003, n ← n + 1, ngược lại
sang B4
B3:Nếu x ≥ 0,003, n ← n + 1, ngược lại sang B4
B4: Ra khỏi vòng lặp và in kết quả n
HS: thực hành theo nhóm chạy CT như SGK
<b>Tiết 50</b>
<b>Hoạt động 3: Ví dụ 4,5</b>
- Giáo viên giới thiệu thuật tốn tính tổng n số trong ví dụ 2
SGK/67. Yêu cầu học sinh suy nghĩ và nêu lên vấn đề chưa
hiểu
- HS: - Quan sát và thảo luận nhóm để đưa ra những vấn đề
còn vướng mắc sinh.
- GV: Yêu cầu HS nghiên cứu ví dụ 5 và phân nhóm:
+ Nhóm 1,2,3: chương trình vịng lặp FOR...DO.
+ Nhóm 4,5,6: Chạy chương trình vịng lệnh WHILE....DO.
- GV: Giải thích các câu hỏi của học sinh
- GV: Đánh giá và nhận xét.
* Nhận xét: Chúng ta có thể sử dụng câu lệnh WHILE...DO thay
cho câu lệnh FOR...DO
Ví dụ 4: SGK/69
Ví dụ 5: SGK/69
Hoạt động 4: Lặp vô hạn lần - Lỗi lập trình cần tránh
GV: Giới thiệu chương trình lặp vơ hạn như SGK.
HS: Lắng nghe và quan sát.
- GV: Nhấn mạnh lưu ý:
+ Khi thực hiện vòng lệnh điều kiện trong câu lệnh phải được
thay đổi để sớm hay muộn giá trị của điều kiện được chuyển tù
đúng sang sai. Như thế chương trình mới khơng rơi vào các vịng
lặp vơ tận
Hoạt động 5: Củng cố, dặn dò
Củng cố: Cho học sinh đọc ghi nhớ SGK
- Trả lời: Câu 1,2/71 SGK
Dặn dò: Về học bài và xem trước bài thực hành 6
IV. Tổng kết rút kinh nghiệm:
...
<b>Tuần 26</b> <b>Ngày soạn:...</b>
<b>Ngày giảng:...18/02/09</b>..
<b>Tiết 51,52 Bài thực hành 6</b>
<b>SỬ DỤNG LỆNH LẶP WHILE ...DO</b>
<b>I.Mục tiêu:</b>
- Hiểu câu lệnh lặp While ... do trong chương trình
- Biết lựa chọn câu lệnh lặp While...do hoặc For ... do phù hợp với tình huống cụ thể
- Rèn kĩ năng về khai báo và sử dụng biến, khả năng đọc chương trình
- Biết vai trò của việc kết hợp các cấu trúc điều khiển.
<b>II.Chuẩn bị:</b>
<i><b>1. Giáo viên </b></i> : - SGK, SGV, tài liệu, Giáo án
- Đồ dùng dạy học như máy tính, projector,...
- Chuẩn bị phịng thực hành đủ số máy tính hoạt động tốt.
<i><b>2. Học sinh</b></i> : - Đọc trước bài thực hành.
- Học thuộc kiến thức lý thuyết và các bài tập đã học.
<b>III. Tiến trình bài dạy</b>
<b>1. Ổn định tổ chức lớp : </b>
<b>2. Kiểm tra bài cũ : </b>
Kiểm tra trong quá trình thực hành.
3. Dạy bài mới :
<b>HOẠT ĐỘNG CỦA THÀY VÀ TRÒ</b> <b>KIẾN THỨC CẦN ĐẠT</b>
<b>HOẠT ĐỘNG 1 : Phổ biến nội dung thực hành</b>
Gv phổ biến nội dung thực hành của bài : sử dụng
lệnh lặp while....do
Biết nội dung thực hành.
<b>HOẠT ĐỘNG 2 : Chạy chương trình bài tập đã có</b>
Gv đưa nội dung bài tập đã viết sẵn để học sinh
chạy thử nghiệm.
Hs chia nhóm thực hành
Gv theo dõi hs thực hiện và sửa sai
<b>Bài tập: </b>
Program Chao hoi;
Uses crt;
Var Tieptuc: char;
Ten:string;
BEGIN
Tieptuc:= ‘c’;
While Tieptuc=’c’ do
Begin
Write(‘Nhap ten cua ban: ‘); Readln(Ten);
Writeln(‘Chao ban ‘, Ten);
Write(‘Tiep tuc? c/k’); Readln(Tiep tuc);
End;
Readln;
END.
<b> </b>
<b>HOẠT ĐỘNG 3 : Thực hành bài 1 sgk</b>
Bài 1. a/ Yêu cầu hs xác định Input và Output.
Y/c mơ tả thuật tốn chương trình.
Từ thuật tốn đã viết, ycầu hs xác định các biến và
kiểu dữ liệu cần khai báo.
b/ Hs chạy thử chương trình sgk/72
c/ Ycầu đọc và tìm hiểu ý nghĩa từng câu lệnh, chạy
chương trình và kiểm tra kết quả nhận được.
d/ Gv hướng dẫn hs luyện viết chương trình với
lệnh for ... do
<b>Bài 2: </b>Viết chương trình sử dụng lệnh while... do để tính
trung bình n số thực x1, x2, x3,....xn. Các số n và x1, x2, x3,....xn
được nhập vào từ bàn phím.
- Input : Dãy số thực x1, x2, x3,....xn
- Output : Giá trị trung bình (x1+x2+...+xn)
- Thuật tốn :
B1.- Nhập n số lượng số thực sẽ được nhập từ bàn phím.
1.1. Dem ← 0 ;
1.2. Sum ← 0.
B2. Trong khi Dem < N thì
2.1. Nhập giá trị số thực x từ bàn phím
2.2. Sum ← sum + x ;
2.3. Dem ← Dem + 1 ;
B3. TB ←Sum/N.
B4. Đưa TB ra màn hình rồi kết thúc.
<b>HOẠT ĐỘNG 4 : Thực hành bài 2 sgk</b>
Bài 2/73.
Gv nêu ý tưởng bài tập : Kiểm tra lần lượt N có
chia hết cho các số tự nhiên 2<i>≤ i≤ N −</i>1 hay
khơng. Kiểm tra tính chất chia hết bằng phép chia
lấy phần dư (mod)
a/ Ycầu đọc và tìm hiểu ý nghĩa của từng câu lệnh
trong chương trình có sẵn.
b/ Ycầu chia nhóm thực hành gõ và chạy thử
chương trình
<b>HOẠT ĐỘNG 5 : Giáo viên tởng kết nội dung tiết thực hành.</b>
Gv đưa lên màn hình nội dung chính cần đạt trong 2
tiết thực hành này (SGK)
Hs đứng tại chỗ đọc lại.
Gv có thể giải thích thêm (nếu cần)
<b>TỔNG KẾT</b>
<b>* </b>Cấu trúc câu lệnh lặp với số lần chưa biết trước: while
<điều kiện> do <câu lệnh>;
<b>Nhận xét sau tiết thực hành :</b>
...
<b>Hướng dẫn về nhà.</b>
Đọc trước bài “làm việc với dãy số”
A. Mục đích yêu cầu:
- Hệ thống lại kiến thức về các câu lệnh lặp (For ..to..do và while …do) và xử lí dãy số trong chương trình
thơng qua các bài tập.
- Giúp HS nắm lại cách thành lập thuật toán và viết thuật toán của một số bài tốn khó
<b>1.</b> Cho một vài ví dụ về hoạt động được thực hiện lặp lại trong cuộc sống hàng ngày!
<b>2.</b> Hãy mơ tả các bước của thuật tốn để vẽ hình 36a) và 36b) sau đây:
<i>Hình 36a</i> <i>Hình 36b</i>
Các thao tác lặp cần thực hiện để có các hình trên và điều kiện để kết thúc các thao tác đó là gì?
<b>3.</b> Hãy cho biết tác dụng của câu lệnh lặp!
<b>4.</b> Chúng ta nói rằng khi thực hiện các hoạt động lặp, chương trình kiểm tra một điều kiện. Với lệnh lặp
của Pascal, điều kiện cần phải kiểm tra là gì?
<b>5.</b> Chương trình Pascal sau đây thực hiện hoạt động nào?
<b>var i: integer;</b>
<b>begin</b>
<b>for i:=1 to 1000 do;</b>
<b>end.</b>
<b>6.</b> Hãy mơ tả thuật tốn để tính tổng sau đây (n là số tự nhiên được nhập vào từ bàn phím):
A = <sub>1 . 3</sub>1 + 1
2 . 4+
1
3 . 5+.. .. .. .
1
<i>n</i>(<i>n</i>+1)
<b>7.</b> Nêu một vài ví dụ về hoạt động lặp với số lần chưa biết trước!
<b>8.</b> Hãy phát biểu sự khác biệt giữa câu lệnh lặp với số lần lặp cho trước và câu lệnh lặp với số lần lặp
không xác định.
<b>9.</b> Hãy liệt kê các bước của thuật toán với số lần lặp khơng xác định để tính tích của N số tự nhiên đầu
tiên, với N là số tự nhiên được nhập vào từ bàn phím.
<b>10.</b> Viết thuật tốn và chương trình Pascal có câu lệnh lặp với số lần khơng xác định để tính lũy thừa bậc n
của A (tức An), với n là số tự nhiên và A là số thực được nhập vào từ bàn phím.
<b>11.</b> Người ta đã chứng minh rằng các tổng sau đây:
1 2 3
1 1 1 1 1 1 1 1 1
, , , ..., ...
2 2 3 2 3 4 <i>n</i> 2 3 1
<i>T</i> <i>T</i> <i>T</i> <i>T</i>
<i>n</i>
ln ln tăng (có thể lớn hơn một số bất kì, mặc dù chỉ cộng thêm một số ngày càng nhỏ ở mỗi
bước). Hãy viết thuật toán và chương trình để tính số n nhỏ nhất sao cho Tn > 2:
<b>12.</b> <i>"</i>Có thể xem biến mảng là một biến được tạo từ nhiều biến có cùng kiểu, nhưng chỉ có một tên duy
nhất." Phát biểu đó đúng hay sai?
<b>13.</b> Hãy nêu các lợi ích của việc sử dụng biến mảng trong chương trình.
<b>14.</b> Các khai báo biến mảng sau đây trong Pascal đúng hay sai:
a) <b>var X: Array[10, 13] Of Integer;</b>
b) <b>var X: Array[5..10.5] Of Real;</b>
c) <b>var X: Array[3.4 .. 4.8] Of Integer; </b>
d) <b>var X: Array[4 .. 10] Of Integer;</b>
<b>15.</b> Câu lệnh khai báo mảng sau đây có được máy tính thực hiện khơng?
<b> var N: integer;</b>
<b> A: array[1..N] of real;</b>
<b>16.</b> Viết chương trình nhập từ bàn phím các phần tử của một dãy số. Độ dài của dãy cũng được nhập từ
bàn phím.
<b>17.</b> Viết chương trình sử dụng biến mảng để tính giá trị trung bình của tổng N số nguyên được nhập vào từ
bàn phím.
<b>Tiết : 56-57 Tuần : 28</b> <b>Ngày soạn : 4/3/09</b>
<b>Tên bài dạy : </b>
<b>LÀM VIỆC VỚI DÃY SỐ</b>
<b>MỤC TIÊU :</b> Qua bài học này học sinh cần đạt được các mục tiêu sau :
- Biết được khái niệm mảng một chiều .
<b>CHUẨN BỊ :</b>
GV : Một số thăm có ghi sẵn các số nguyên bất kỳ và hai hộp đựng A, B để minh họa thuật tốn tìm số lớn
nhất, nhỏ nhất của dãy số; thuật tốn tìm số lớn nhất trong dãy số (bài 5 trang 43) để sử dụng cho bước viết
chương trình; bài tập 2(trên bảng phụ) hoặc đèn chiếu nếu có .
HS : SGK và thuật tốn tìm số lớn nhất trong dãy số (bài 5 trang 43) .
<b>TIẾN TRÌNH DẠY HỌC :</b>
<b>1 - Ổn định lớp : </b>Kiểm tra số lượng, thiết bị máy tính và các yêu cầu chuẩn bị của học sinh
<b>2 - Kiểm tra bài cũ :</b>
Hãy nêu mô phỏng thuật tốn tìm số lớn nhất trong dãy số (bài 5 trang 43) .
<b>3 - Bài mới :</b>
<b>PHẦN HƯỚNG DẪN CỦA GIÁO VIÊN VÀ HOẠT</b>
<b>ĐỘNG CỦA HỌC SINH</b> <b>NỘI DUNG CẦN GHI NHỚ</b>
<i><b>Hoạt động 1 : Dãy số và biến mảng</b></i>
- GV giới thiệu một bảng điểm của một lớp học và yêu
cầu cần viết một chương trình để nhập điểm của từng
học sinh và thông báo điểm cao nhất trong lớp .
- Ta phải khai báo bao nhiêu biến ? Vì sao ? và phải viết
bao nhiêu câu lệnh để nhập điểm cho cả lớp ( số biến và
số câu lệnh bằng sỉ số học sinh của lớp) . Việc tìm điểm
số cao nhất có dễ dàng khơng ? vì sao ? (Khó khăn vì
phải nhớ hết các tên biến đã khai báo)
- Có cách nào khắc phục các khó khăn trên khơng ? GV
giới thiệu kiểu dữ liệu mới : kiểu mảng và minh họa
bằng hình 40 SGK
- Làm thế nào để tìm điểm số cao nhất của lớp ? (Với i
từ 1 đến cuối lớp hãy nhập Diem_i . Với i từ 1 đến cuối
lớp hãy so sánh Max với Diem_i)
- Thế nào là dữ liệu kiểu mảng ? Biến mảng là gì ? Lợi
ích của sử dụng biến mảng trong chương trình .
<b>- </b><i>Dữ liệu kiểu mảng là một tập hợp hữu hạn các phần</i>
<i>tử có thứ tự và mọi phần tử đều có cùng một kiểu dữ</i>
<i>liệu . Việc sắp thứ tự được gán cho mỗi phần tử một</i>
<i>chỉ số </i>
<i>- Khi khai báo một biến có kiểu dữ liệu là kiểu mảng</i>
<i>thì biến đó được gọi là biến mảng Biến mảng thực</i>
<i>chất là một biến được tạo ra từ nhiều biến có cùng</i>
<i>kiểu nhưng chỉ dưới một tên duy nhất .</i>
<i><b>Hoạt động 2 : Ví dụ về biến mảng</b></i>
- Cách khai báo biến mảng trong các ngơn ngữ lập trình
có thể khác nhau, nhưng ln cần chỉ rõ những gì ?
- Dữ liệu kiểu mảng được khai báo như thế nào trong
Pascal ? Gv giới thiệu cú pháp khai báo mảng trong
Pascal
- Cho HS đọc ví dụ, rồi hướng dẫn cách khai báo trong
ngơn ngữ Pascal:
- Từ ví dụ 1, GV dẫn dắt HS cách khai báo biến mảng:
<b>Var</b> Diem : <b>array</b> [1..50] <b>of</b> real;
+ Biến mảng có 50 phần tử được đánh từ 1 đến 50. Các
phần tử được “đặt tên” ntn ?
=> Cách khai báo và sử dụng biến mảng như trên có lợi
gì ?
- Để thay rất nhiều câu lệnh nhập và in dữ liệu ra màn
hình, ta dùng một câu lệnh nào ?
<b>( For …do )</b>
- Để viết giá trị của các phần tử ra màn hình người ta kết
hợp giữa <b>For …do </b> với lệnh nào ?
- Để giúp tiết kiệm rất nhiều thời gian và cơng sức viết
chương trình, thay vì phải viết 50 câu lệnh khai báo và
50 câu lệnh nhập, ta chỉ cần viết 2 câu lệnh là đủ và kết
quả đạt được như nhau. Đưa ra 1 cách khai báo cho HS
- Cách khai báo biến mảng trong các ngơn ngữ lập
trình có thể khác nhau, nhưng ln cần chỉ rõ: tên
<i>biến mảng, số lượng phần tử, kiểu dữ liệu chung của</i>
<i>các phần tử.</i>
* <i><b>Cách khai báo mảng trong Pascal</b></i>:
<i>Tên mảng : </i><b>array</b> <b>[</b><chỉ số đầu>..<chỉ sớ ći><b>]</b> <b>of</b>
<kiểu dữ liệu >;
Trong đó:
+ Chỉ số đầu và chỉ số cuối: là 2 số nguyên hoặc
+ Kiểu dữ liệu: <b>integer</b> hoặc <b>real</b>
Ví dụ : <b>Var</b> Chieucao : <b>array</b> [1..50] <b>of</b> real;
<b>Var</b> Tuoi : <b>array</b> [21..80] <b>of</b> integer;
<b> - </b>Khai báo biến mảng Diem như sau:
<b> Var</b> Diem : <b>array</b> [1..50] <b>of</b> real;
- Dùng một câu lệnh lặp, có thể thay rất nhiều câu
lệnh nhập và in dữ liệu ra màn hình, như:
<b>For</b> i:= 1 <b>to</b> 50 <b>do</b> readln ( Diem [ i ] );
rõ.
=> HS tự khai báo nhiều biến mảng cho các môn học
như thế nào ?
- Sau khi một mảng đã được khai báo, chúng ta có thể
làm việc với các phần tử của nó như làm việc với một
biến thông thường. Vậy làm việc với một biến thông
thường như thế nào ?
* <b>Lưu ý HS</b><i>: Sử dụng cấu trúc <b>For … do </b></i>phù hợp, dễ
hiểu hơn cấu trúc <i><b>While…do </b></i>vì biết trước số lần lặp.
ta cũng chỉ cần một câu lệnh lặp, như:
<b>For</b> i:= 1 <b>to</b> 50 <b>do</b>
<b>If</b> Diem [ i ] > 8.0 <b>then</b> writeln ( ‘ Gioi ‘ );
- Để xử lí đồng thời các loại điểm của từng mơn học,
ta có thể khai báo nhiều mảng:
<b>Var</b> DiemToan : <b>array</b> [1..50] <b>of</b> real;
<b>Var</b> DiemVan : <b>array</b> [1..50] <b>of</b> real;
<b>Var</b> DiemLi : <b>array</b> [1..50] <b>of</b> real;
<i><b>hoặc:</b></i>
<b>Var</b> DiemToan, DiemVan, DiemLi : <b>array</b> [1..50] <b>of</b>
real;
- Khi một mảng đã được khai báo, chúng ta có thể
làm việc với các phần tử của nó như: gán giá trị, đọc
<i>giá trị và thực hiện các tính tốn với các giá trị đó</i>.
Ví dụ như:
A[ 1 ]:= 5;
A[ 2 ]:= 8;
hoặc nhập dữ liệu từ bàn phím bằng câu lệnh: <b>For</b>
i:= 1 <b>to</b> 5 <b>do</b> readln ( A [ i ] );
<i><b>Hoạt động 3 : Tìm giá trị lớn nhất và nhỏ nhất của dãy số</b></i>
- GV dùng bảng để minh họa lại thuật tốn tìm giá trị
lớn nhất, (nhỏ nhất) của dãy số nguyên (đã học ở Bài 5).
+ GV giải thích về thuật tốn tìm giá trị lớn nhất của
dãy số nguyên … Sau đó cho HS nhắc lại và thực hiện
trò chơi đã chuẩn bị sẵn để minh họa cho thuật toán này
- GV cho HS đọc ví dụ 3:
+ Để nhập các số nguyên sẽ được nhập vào, trước hết ta
phải làm gì ?
+ Sau khi khai báo N, biến lưu các số được nhập vào
như là các phần tử của một biến mảng A. Ngoài ra, cần
khai báo thêm các biến nào nữa ?
- GV: Trình bày phần khai báo chương trình và giải
thích ý nghĩa từng câu lệnh hay từng đoạn lệnh
- GV cho HS đọc phần ghi nhớ.
* Thuật tốn tìm giá trị lớn nhất ( Max ) của dãy số
nguyên nhập từ bàn phím:
<i><b>Bước 1: Nhập N và dãy A1, … , An;</b></i>
<i><b>Bước 2: Max A1;</b></i>
<i><b>Bước 3: Với i từ 2 đến N thực hiện: Nếu Max < A1</b></i>
<b>thì Max Ai;</b>
<i><b>Bước 4: Đưa ra màn hình giá trị Max rồi kết thúc</b></i>
<b>Ví dụ 3</b>: (SGK)/ Tr 78.
* Phần khai báo chương trình có thể như sau:
<b>Program </b> Lonnhat_Nhonhat;
<b>Uses </b> crt;
<b>Var</b> i, n, Max, Min : integer;
A : <b>array</b> [1..100] <b>of</b> integer;
{Phần thân chương trình sẽ tương tự dưới đây:}
<b>Begin </b>
Clrscr;
Write ( ‘Hay nhap do dai cua day so, N = ‘); readln
(n);
Writeln (‘Nhap cac phan tu cua day so: ’);
<b> For</b> i:= 1 <b>to</b> n <b>do</b>
Begin
Write ( ‘ a[ , i , ] = ‘); readln (a[ i ] );
End;
Max:= a[1]; Min:= a[1];
<b> For</b> i:= 2 <b>to</b> n <b>do</b>
Begin <b>if</b> Max < a[ i ] <b>then</b> Max:= a[ i ];
<b>if</b> Min < a[ i ] <b>then</b> Min:= a[ i ];
End;
Write ( ‘ So lon nhat la Max = ‘ Max);
Write ( ‘ So nho nhat la Min = ‘ Min);
readln (n);
<b>End. </b>
** <b>GHI NHỚ: </b>(SGK) Trang 79.
<b>4 - Củng cố :</b>
<b>5 - Dặn dò :</b>
- Học bài cũ thật kỹ đặc biệt là các cách khai báo, truy cập biến mảng .
<i>- Làm bài tập số 5 và chuẩn bị bài thực hành số 7để tiết sau thực hành .</i>
<b>Tiết : 58</b> <b>Tuần : 29</b> <b>Ngày soạn : 11-27/3/09</b>
<b>Tên bài dạy : </b> <b>LUYỆN VIẾT CHƯƠNG TRÌNH CĨ BIẾN MẢNG</b>
<b>MỤC TIÊU :</b> Qua bài học này học sinh cần đạt được các mục tiêu sau :
- Làm quen với việc khai báo và sử dụng các biến mảng .
- Ôn luyện cách sử dụng câu lệnh lặp for .. do .
- Củng cố các kỹ năng đọc, hiểu và chỉnh sửa chương trình .
<b>CHUẨN BỊ :</b>
- GV : Phịng máy tính, laptop, đèn chiếu Projector, bài giải bài tập 5 trang 79 SGK .
- HS : Theo nhóm đã được phân cơng trên máy .
<b>TIẾN TRÌNH DẠY HỌC :</b>
<b>1 - Ổn định lớp : </b>Kiểm tra số lượng, thiết bị máy tính và các yêu cầu chuẩn bị của học sinh
<b>2 - Kiểm tra bài cũ :</b>
<b>Câu hỏi 1 :</b> Dữ liệu kiểu mảng là gì ? Nêu cú pháp khai báo biến mảng .
<b>Câu hỏi 2 :</b> Nêu lợi ích của việc sử dụng các biến mảng và câu lệnh lặp .
<b>3 - Bài mới :</b>
<b>PHẦN HƯỚNG DẪN CỦA GIÁO VIÊN VÀ</b>
<b>HOẠT ĐỘNG CỦA HỌC SINH</b> <b>NỘI DUNG CẦN GHI NHỚ</b>
<i><b>Hoạt động 1 : Xây dựng thuật toán</b></i>
- HS đọc để và cho biết yêu cầu INPUT và
OUTPUT
- Nêu các bước tiến hành trong phỏng chương
trình
INPUT : Nhập số phần tử của mảng
OUTPUT : Nhập các phần tử của mảng
Bước 1 : Nhập số phần tử của mảng ai
Bước 2 : Cho i tiến lần lượt từ 1 đến n
Bước 3 : Mỗi bước tiến nhập giá trị của phần tử
tương ứng của mảng
<i><b>Hoạt động 2 : Xây dựng chương trình</b></i>
- GV thống nhất đặt tên cho chương trình (ví dụ
nhapbien) và GV viết phần đầu của chương trình
- Ta cần khai báo những biến nào ? (biến n để
chỉ số lượng phần tử của mảng, biến i là chỉ số
của phần tử, a là biến mảng gồm tối đa 100
phần tử kiểu thực) . HS thử viết trên bảng việc
khai báo biến .
- Phần thân chương trình gồm những lệnh nào ?
GV cần chú ý cho HS căn cứ vào các bước khi
xây dựng thuật tốn để sử dụng các câu lệnh
thích hợp ?
- GV đặt câu hỏi cho các bước tương ứng (Với
- Cần bổ sung câu lệnh gì để chương trình thêm
tính thẩm mỹ ? (Writeln (‘Nhap cac gia tri cua
mang: ’);
<b>Program nhapbien;</b>
<b>Uses crt;</b>
<b>Var</b> i, n, : integer;
a : <b>array</b> [1..100] <b>of</b> integer;
<b>Begin </b>
Clrscr;
Write (‘Nhap so phan tu cua mang, N = ‘);
Readln (n);
Writeln (‘Nhap cac gia tri cua mang: ’);
<b> For</b> i:= 1 <b>to</b> n <b>do</b>
Begin
Write ( ‘a[ , i , ] = ‘;
Readln (a[ i ] );
End;
Readln
<b>End. </b>
<i><b>Hoạt động 3 : Thực hành trên máy</b></i>
- HS theo nhóm đã chia trước vào vị trí các máy để thực hành .
- GV hướng dẫn học sinh dịch chương trình và chạy thử .
- Nhận xét và sửa sai cho các nhóm
<b>4 - Củng cố và dặn dị :</b>
<b>- </b>Cho biết lợi ích việc dùng biến mảng và các câu lệnh lặp ?
- Ôn luyện cách sử dụng các lệnh lặp để luyện tập bài tập 1 và 2 trang 80 - 82 SGK
- Tiết sau : Thực hành bài số 7
<b>Tiết : 59 - 60 Tuần : 30</b> <b>Ngày soạn : 1-10/03/09</b>
<b>Tên bài dạy : </b>
<b>BÀI THỰC HÀNH SỐ 7</b>
<b>XỬ LÝ DÃY SỐ TRONG CHƯƠNG TRÌNH </b>
<b>MỤC TIÊU :</b> Qua bài học này học sinh cần đạt được các mục tiêu sau :
- Làm quen với việc khai báo và sử dụng các biến mẫu.
- Ôn luyện cách sử dụng câu lệnh lặp for .. do, if .. then .
- Củng cố kỹ năng đọc, hiểu và chỉnh sửa chương trình .
<b>CHUẨN BỊ :</b>
- GV : Kiểm tra các máy tính, phịng máy, bảng minh họa lời giải của bài tập 1 và 2 .
- HS : Các thuật toán đếm, tính tổng, cú pháp của các câu lệnh lặp .
<b>TIẾN TRÌNH DẠY HỌC :</b>
<b>1 - Ổn định lớp : </b>Kiểm tra số lượng, thiết bị máy tính và các yêu cầu chuẩn bị của học sinh
<b>2 - Kiểm tra bài cũ : </b><i>(5 phút)</i>
<b>Câu hỏi 1 :</b> Dữ liệu kiểu mảng là gì ? Nêu cú pháp khai báo biến mảng .
<b>Câu hỏi 2 :</b> Nêu lợi ích của việc sử dụng các biến mảng và câu lệnh lặp .
<b>3 - Bài mới :</b>
<b>PHẦN HƯỚNG DẪN CỦA GIÁO VIÊN VÀ</b>
<b>HOẠT ĐỘNG CỦA HỌC SINH</b> <b>NỘI DUNG CẦN GHI NHỚ</b>
<i><b>Hoạt động 1 : Viết chương trình nhập điểm (Bài 1 ) </b>( 35 phút)</i>
- HS nêu lại thuật toán nhập các phần tử của mảng đã học
ở tiết trước .
- Trong bài tập này ta cần khai báo thêm những biến gì, ý
nghĩa của các biến đó .
- Nêu lại thuật toán đếm và kết hợp với điều kiện để viết
chương trình .
- HS viết thử và có thể sử dụng chương trình nhapbien.pas
để sửa đổi và lưu lại với tên moi la phanloai.pas
<i>Nội dung chương trình</i>
<b>Program phanloai;</b>
Uses crt;
Var i, n, g, kh, tb, kem : integer;
a : array [1..100] of integer;
<b>Begin </b>
Clrscr;
Write (‘Nhap so hoc sinh cua lop, N = ‘); Readln
(n);
Writeln (‘Nhap diem tung ban: ’);
<b> </b>For i:= 1 to n do
Begin
Write ( ‘a[ , i , ] = ‘;
Readln (a[ i ] );
End;
g : = 0 ; kh := 0; tb :=0; kem :=0;
For i:= 1 to n do
Begin
If a[i] >=8 then g : = g +1;
If a[i]>=6.5 and a[i]<8 then kh:=kh +1;
If a[i]>=5 and a[i]<6.5 then tb:=tb +1;
If a[i] <5 then kem : = kem +1;
End;
Writeln (‘Ket qua phan loai: ’);
Writeln (‘Lop co ‘, g, ’ban loai gioi’);
Writeln (‘Lop co ‘, kh, ’ban loai kha’);
Writeln (‘Lop co ‘, tb, ’ban loai trung binh’);
Writeln (‘Lop co ‘, kem, ’ban loai kem’);
Readln
- HS tìm hiểu ý nghĩa của các câu lệnh : Tại sao phải có
các biến TbToan, TbVan ? Biến DiemToan, DiemVan có
dạng gì ? Vì sao ? ở phần thân chương trình nêu ý nghĩa
của các câu lệnh lặp, phép gán
- HS thực hành việc bổ sung các câu lệnh vào các phần của
chương trình đã viết ở bài 1 và thực hiện dịch và chạy
chương trình . GV kiểm tra và sửa chữa các lỗi sai cho HS
<b>Nội dung cần bổ sung</b>
<b>Phần khai báo</b>
<b>Var </b> TbToan, TbVan: real ;
DiemToan, DiemVan : <b>array</b>[1..100] <b>of</b>
real;
<b>Phần thân chương trình :</b>
<b>Begin </b>
Writeln(‘Diem trung binh :’);
<b> </b>For i:= 1 to n do
<b> </b>Writeln(i,‘ - ’, (DiemToan[i] +
DiemVan[i])/2:3:1);
TbToan:= 0; TbVan:= 0;
<b> </b>For i:= 1 to n do
Begin
TbToan:= TbToan + DiemToan[i];
TbVan:= TbVan + DiemVan[i];
End;
TbToan:= TbToan/n; TbVan:= TbVan/n;
Writeln(‘Diem trung binh mon Toan : ’,
TbToan:3:2);
Writeln(‘Diem trung binh mon Van : ’,
<b>End.</b>
<i><b>Hoạt động 3 : Tổng kết </b>(5 phút)</i>
- GV yêu cầu HS nêu cú pháp khai báo biến mảng kiểu số nguyên và kiểu số thực trong Pascal và cách tham
chiếu phần tử của mảng . HS về nhà ghi phần tổng kết vào vở học
<i><b>Hoạt động 4 :Dặn dò </b>(5 phút)</i>
- Tắt máy theo đúng quy trình .
- Kiểm tra và vệ sinh phịng máy trước khi nghỉ .
- Tương tự bài 2 hãy bổ sung và chỉnh sửa chương trình đã làm để tính tổng, tính diểm cao nhất, thấp nhất
của lớp .
- Ơn tập và tổng kết tồn bộ chương trình học tập .