1. Bài 18: Chương trình con và phân loại.
Ví dụ về cách viết và sử dụng chương trình con(Tiết 1)
Ngày soạn:...../......;
I. Mục tiêu
1. Kiến thức:
Biết được cấu trúc chung của thủ tục, khai báo và tham số hình thức, tham số
thực.
Biết mối liên quan giữa chương trình và thủ tục.
Biết lời gọi một thủ tục.
Phân biệt tham số giá trị và tham số biến.
2. Kỹ năng:
Nhận biết được các thành phần trong phần đầu của thủ tục.
Viết được thủ tục đơn giản.
Làm được bài tập với các kiểu truyền tham số.
II. Chuẩn bị của GV và HS:
Học sinh:
SGK, vở ghi.
Học bài về các kiến thức giới thiệu về chương trình con bài 17.
Đọc tài liệu hỗ trợ học sinh do giáo viên chuẩn bị.
Giáo viên:
Chuẩn bị kĩ lưỡng:
SGK, giáo án
Kiến thức bài dạy.
Các tài liệu liên quan đến dạy học.
Các code chương trình được viết trên giấy khổ lớn.
III. Nội dung:
NỘI DUNG BÀI GIẢNG – HOẠT ĐỘNG CỦA
GIÁO VIÊN
HOẠT ĐỘNG CỦA HỌC
SINH
Tiết 1
Bài 18(T 1) : Cách viết và sử dụng Thủ Tục
Hoạt động 1 : Ổn định lớp và kiểm tra bài cũ:
Ổn định lớp:
Chào cả lớp, mời các học sinh ngồi.
Kiểm diện:
Gọi lớp trưởng báo cáo tình hình sĩ số lớp.
2. Ghi tên các HS vắng.
Kiểm tra bài cũ:
Câu hỏi :
Trình bày các loại chương trình con phổ
biến và cấu trúc tổng quát.
Viết chương trình vẽ 1 hình chữ nhật gồm
các hình „*‟ và „ ‟như hình bên dưới.
* * * * * * *
* *
* *
* * * * * * *
GV : Nêu câu hỏi, gọi học sinh lên bảng trả lời.
GV : Gọi một học sinh khác nhận xét và bổ xung .
GV : Nhận xét, cho điểm .
GV : Gọi học sinh phát biểu ý tưởng và viết tóm tắt
cách thực hiện.
Vẽ nhiều hcn.
Thay đổi về chiều dài – chiều rộng.
GV : Nhận xét và ghi lại các ý phát biểu của học sinh
lên bảng.
Các em đã học cách viết lập trình tuần tự.
Các bài tập trước đây chúng ta chỉ giải quyết một
hoặc tuần tự nhiều vấn đề.
GV : Viết mã giả cho chương trình mà học sinh xây
dựng và gọi học sinh nhận xét về chương trình.
HS : Lên bảng trả lời
HS : Nhận xét, bổ sung .
HS :Đứng tại chổ phát biểu.
Viết thêm các đoạn lệnh
để thực thi các công việc
theo yêu cầu.
Dùng các biến chứa số
đơn vị chiều dài và
chiều rộng.
HS : Đứng tại chổ phát biểu.
Bạn viết đúng tuy nhiên
quá dài dòng.
Khó khăn khi kiểm tra
tính đúng của bài tập.
Lặp lại một số dòng lệnh
giống nhau.
Khó phân biệt được lệnh
3. GV : Ghi lại các ý kiến của các học sinh phát biểu và
chốt lại các ý tưởng của học sinh.
Dẫn vào bài học:
Thầy cảm ơn các ý kiến đóng góp vào bài học
của các em.
Thầy có một số ý kiến như sau:
Chúng ta chỉ mới học lập trình căn bản, đối với
những bài toán đơn giản chúng ta có thể viết
chương trình xử lý một cách tuần tự.
Tuy nhiên khi chúng ta viết một chương trình
lớn, cực lớn thì khối lượng dòng code sẽ rất lớn
và vấn đề nảy sinh thì chúng ta đã phân tích như
trên.
Vì vậy người ta đã đưa ra một khái niệm để giải
quyết vấn đề nêu trên. Đó là khái niệm chương
trình con –SubProgram - mà chúng ta đã nghiên
cứu trong bài học vừa rồi tuy nhiên cách viết và
sử dụng nó như thế nào thì thầy xin giới thiệu với
các em bài học hôm nay.
GV : Yêu cầu học sinh mở sách vở để viết bài và viết
bảng tựa bài mới.
Bài 18 cách viết và sử dụng chương trình con.
Giới thiệu về thời gian bài học
Chúng ta sẽ học trong 5 tiết: 2LT,2BT,1TH.
Tiết đầu tiên chúng ta sẽ học về viết và sử dụng
thủ tục.
Bài mới :
Bài 18(T 1) : Cách viết và sử dụng Thủ Tục
Hoạt động 2 : Giới thiệu về cấu trúc, vị trí của thủ
tục trong chương trình:
nào dùng để làm gì.
….học sinh có thể trả lời
sai hoặc không biết.
4. Cách viết đầu thủ tục :
GV : Đưa ra cách viết đầu thủ tục đã viết sẵn trên giấy
to hoặc ghi lên bảng, giải thích cho học sinh hiểu các
khái niệm : tên thủ tục, danh sách tham số.
Procedure<tên thủ tục>([<DS tham số>]);
Cấu trúc của một thủ tục hoàn chỉnh
Procedure <tên thủ tục>[<ds tham số>] ;
[<phần khai báo>]
begin
[<dãy các lệnh>]
end ;
Cách gọi 1 thủ tục:
TenThuTuc(<các tham so thực>);
Nội dung cụ thể tìm hiểu trong các ví dụ.
GV : Gọi một học sinh nhận xét phần khai báo này
quen thuộc không? Chổ nào?.
GV : Nhắc học sinh chú ý đến dấu kết thúc
Dấu „ ; ‟ là kết thúc khai báo thủ tuc
Dấu „ . ‟ Là kết thúc khai báo chương trình.
<ds tham số> : các tham số trong phần đầu gọi là
tham số hình thức.
Khi gọi thủ tục: các tham số truyền vào thủ tục
gọi là tham số thực.
GV :Cho 1 ví dụ cụ thể và giải thích các thành phần
:
HS : quan sát, nghe giảng, ghi
chép.
HS : Câu trả lời dự kiến.
Giống viết 1 chương
trình trong Passcal.
Dấu kết thúc “;”
HS : ghi chép các chú ý.
HS : Quan sát đoạn code và
ghi chép
5. Thủ tục INSO sau sẽ in các số từ 1 đến giá trị biến
truyền vào.
Code:
{-----------------------------------------}
Procedure INSO(So: Integer);
Var i: Integer;
Begin
For i := 1 to So do
Write( i:10 );
End;
{-----------------------------------------}
GV :Sử dụng ví dụ từ SGK tin11 tr98
Yêu cầu học sinh:
Xác định Input và Output
So sánh với thủ tục vẽ hcn 7x3.
GV :Yêu cầu học sinh chú ý vào VD_thambien2 tr100
và cho nhận xét.
GV : Nhận xét câu trả lời và dẫn vào nội dung kiến thức
cần tìm hiểu.
Để việc sử dụng thủ tục một cách có hiệu quả
chúng ta tìm hiểu về khái niệm và cách sử dụng
tham biến, tham trị trong thủ tục.
Hoạt động 3 :Tham Trị - Tham Biến
HS : Theo dõi vào chương
trình, phát biểu.
Input: chiều dài, chiều
rộng của hcn (số
nguyên).
Output: vẽ ra 1 hcn gồm
các dấu „*‟ và „ „ tùy
theo chiều dài và chiều
rộng.
Có thể vẽ hcn bất kỳ
theo tham số đầu vào.
Tham số đầu vào.
HS : Theo dõi vào chương
trình, phát biểu.
Xuất hiện từ Var trong
phần đầu của thủ tục.
HS : Quan sát đoạn code và
ghi chép.
6. GV : Trình bày vấn đề màVD_thambien1 muốn giải
quyết là hoán vị 2 số.
Input: 2 số a và b kiểu nguyên.
Output: hoán vị giá trị của a và b cho nhau.
GV : Khi sử dụng thủ tục cho bài toán này người ta
sử dụng đến kỹ thuật truyền tham số cho thủ tục.
Procedure Hoandoi(var x,y : Integer);
GV : Nêu khái niệm về tham trị và tham biến. và
cách khai báo
Tham trị:
Trong lệnh gọi thủ tục, các tham số hình thức
được thay bằng các tham số thực tương ứng là
các giá trị cụ thể.
Tham trị được dùng để truyền thông tin vào
chương trình con, nhưng không dùng để chuyển
thông tin ra
Tham biến:
Trong lệnh gọi thủ tục, các tham số hình thức
được thay bằng các tham số thực tương ứng là tên
các biến chứa dữ liệu ra.
Để chuyển thông tin ra hoặc cả vào và ra, ta dùng
tham biến.
Cách khai báo:
Tham trị: procedure(x : Integer);
Tham biến: procedure(Var x : Integer);
GV: Chúng ta cùng nhau tìm hiểu 2 ví dụ
VD_Thambien1 và VD_Thambien2.
Chú ý vào đoạn code:
{------------------------}
Clrscr;
a:=5; b:=10;
Hoandoi(a,b);
Write(a :6,b:6);
HS : Ghi chép và có thể thắc
mắc các vấn đề khi nào sử
dụng tham trị và tham biến.
HS:Đứng tại chổ phát biểu
2 đoạn lệnh gọi thủ tục
rất giống nhau.
Kết quả của 2 chương
trình khác nhau.
2 đoạn lệnh trong thân
thủ tục giống nhau.
7. {------------------------}
Yêu cầu học sinh nhận xét 2 chương trình
GV:Muốn sử dụng tham biến hay tham chiếu ta cần
căn cứ vào hình sau:
Khi
giá trị
biến đầu
ra cần
thay đổi.
tham
biến.
Khi giá trị biến đầu ra không cần thay đổi. tham
trị.
GV: Thay đổi VD_Thamchieu2 để học sinh kiểm thử
kết quả.
Procedure Hoanvi(Var x: Integer; y: Integer);
GV:Nhận xét về kết quả và cách đọc chương trình
của học sinh để chấn chỉnh các lỗi sai của các em.
Hoạt động 4:Dặn dò học bài và cho bài tập
GV: Hệ thống lại bài học của ngày hôm nay và kiến
thức chính cần nắm:
Thủ tục là gì? Cách khai báo?
Tham số hình thức, thực là gì? Xuất hiện ở đâu?
Vị trí khi khai báo, khi sử dụng 1 thủ tục?
Tham biến, tham trị là gì? Cách sử dụng?
GV:
Dặn dò học sinh xem và chuẩn bị bài Hàm.
Phần khai báo trong
phần đầu có 1 chút khác
nhau cụ thể là:
Procedure A(Var x,y :Integer);
Procedure A (x:Integer; Var
y:Integer);
HS: Chú ý nghe GV giảng và
ghi chú.
HS:
Trao đổi với nhau để
giải quyết bài toán.
Phát biểu kết quả cũng
như cách đọc chương
trình.
HS: Trả lời các câu hỏi của
giáo viên và ghi tóm tắt dàn ý
để dễ học bài.
HS: Ghi chép cẩn thận các
yêu cầu cho tiết sau.
Thủ Tục A
X mới
Y
X
Y mớiZ
8. Bài tập: giải bài toán
Tính giá trị bieu thức S bằng thủ tục với m,n là 2 số
nguyên dương.
Gợi ý:
Sử dụng 2 biến để chứa kết quả trung gian để tính S.
giaiThua_m.
giaiThua_n.
Tiết 2
Bài 18(T 2) : Cách viết và sử dụng Hàm
Hoạt động 1 : Cấu trúc của Hàm
GV: Gọi 1 học sinh lên giải bài tập tính giá trị biểu
thức S của phần bài tập về nhà.
Tính giá trị bieu thức S bằng thủ tục với m,n là 2 số
nguyên dương.
Input: 2 số nguyên dương m và n.
Output: tính giá trị biểu thức
HS: lên bảng viết thủ tục giải
quyết bài toán.
Sử dụng 2 biến tạm để
chứa kết quả trung gian.
giaiThua_m.
giaiThua_n.
Sử dụng kiểu truyền
tham biến cho 2 biến
tạm này.
Tính giá trị S thông qua
2 biến tạm này.
9. GV:
Gọi 1 học sinh khác nhận xét bài làm.
Nhận xét và cho điểm.
GV: Phân tích các vấn đề của bài giải trên.
Điểm chung nhất khi nhìn vào biểu thức?
Tốn hao bộ nhớ khi cấp phát cho quá nhiều biến
tạm- biến toàn cục vấn đề sẽ trình bày sau.?
Có thể gây chậm chương trình nếu số lượng biến
quá lớn.?
Có thể tách thành các bài toán con không? Tách
như thế nào cho hợp lý?
Việc trả kết quả về cho từng bài toán con?
GV:Yêu cầu học sinh nhắc lại 2 chương trình con
phổ biến trong lập trình mà ta đã học.
Dẫn bài: đó là các vấn đề xuất hiện khi ta giải quyết bài
toán này. Rất may là người ta còn cung cấp cho chúng
ta 1 khái niệm để giải quyết các vấn đề trên. Bây giờ
chúng ta vào bài học mới : cách viết và sử dụng Hàm.
GV: Nêu khái niệm, cấu trúc và giải thích các thành
phần.
Khái niệm:
Chương trình con.
Trả về giáo trị thông qua tên của nó.
Phân loại: hàm chuẩn & hàm tự định nghĩa.
Cấu trúc và giải thích:
Function <tên hàm>[<ds tham số>] :<kieu du
lieu>;{kieu du lieu tra ve
integer,real,char,boolean,string}
[<phần khai báo>]
begin
[<dãy các lệnh>]
<tên hàm>:=<biểu thức>;{trả về}
HS: chú ý và phát biểu các ý
kiến khi giáo viên hỏi.
HS:Phát biểu tại chổ
Thủ tục và hàm.
HS: ghi chép và chú thích các
thành phần rõ ràng để làm nền
tảng cho câu so sánh.
10. end ;
GV: Trình bày các sự khác biệt cần chú ý khi sử
dụng hàm.
Sử dụng từ khóa Function
Kiểudữliệutrảvề:integer,real,char, boolean,string.
Mục đích sử dụng hàm là để lấy trị trả về do đó
cần lưu ý gán kết quả cho tên hàm trong thân
hàm.
Chỉ trả về một giá trị.
HS:Ghi chú cẩn thận các ý để
sử dụng hàm cho đúng.
11. Hoạt động 2: Biến toàn cục và cục bộ
GV: Trình bày về tầm vực biến.
Là phạm vi mà biến đó hoặc chương trình con đó
được nhìn thấy trong chương trình.
HS: ghi chép và chú thích các
phạm vi cho các biến <tóm
tắt>.
12. Giải thích các tầm vực của biến và chương trình
con trong hình trên.
GV: Giới thiệu về biến toàn cục và cục bộ
Khái niệm:
Biến toàn cục:
h.
T
.
Biến cục bộ:
.
.
Phạm vi:
Biến toàn cục:
C .
T .
Biến cục bộ:
.
T
.
Vấn đề khi sử dụng biến toàn cục:
Chiếm vùng nhớ.
Có thể làm chương trình chậm nếu sử dụng quá
nhiều.
Có thể sai sót trong quá trình tính toán vì biến
mang một giá trị của lần dùng trước.
Cân nhắc khi sử dụng.
Lưu ý:
Nếu 1 biến toàn cục được khai báo với tên A mà trong
chương trình con tiếp tục khai báo biến cục bộ A. Thì
trong chương trình con chúng ta chỉ truy xuất được biến
HS: chú ý lắng nghe và ghi
chép vì phần này là phần khó
ảnh hưởng đến tưu duy lập
trình cấu trúc.
13. cục bộ A.
VD: Giáo viên sử dụng hình trên để làm ví dụ.
- Xác định biến toàn cục và cục bộ theo tầm vực đã
nêu trên.
- Một số điều lưu ý khi sử dụng biến toàn cục và
cục bộ bằng ví dụ ExpGlobalandLocal
Hoạt động 3:So sánh – phân biệt Hàm và Thủ tục
GV: hướng dẫn cho học sinh phân biệt giữa hàm và thủ
tục theo các tiêu chí sau:
Bản chất
Số lượng biến kết quả.
Nhiệm vụ.
Khi so sánh, gán, biểu thức.<có code test>
GV: Mở rộng vấn đề sử dụng Hàm và Thủ tục.
Khi nào sử dụng Hàm, Thủ tục.
Biến đổi qua lại giữa hàm và thủ tục.
Vấn đề sử dụng ngày nay.
Kinh nghiệm của người lập trình.
Tuân theo nguyên tắc của người thiết kế.
Hoạt động4: Củng cố và giải đáp
GV: Cho học sinh làm các vi dụ „VD1‟, „VD2‟, „tinh_
bieu_thuc‟.
VD1: Kiểm tra các lỗi cú pháp của chương trình.
VD2: Sử dụng tham biến, tham trị, rèn luyện kỹ năng
đọc code.
Tinh_Bieu_Thức: tổng hợp hàm và thủ tục trong
chương trình. Phát hiện những chổ sai hoặc các điều các
em chưa hiểu nhưng không dám phát biểu.
GV: Tiếp nhận và giải đáp các thắc mắc của học sinh.
GV: Dặn dò cho tiết bài tập.
HS: Phát biểu tại chổ
(Hàm/Thủ Tục)
Chương trình con.
1/Từ 2 trở lên.
Trả về giá trị/ thực hiện 1đoạn
lệnh chương trình.
….
HS: làm việc với bạn ngồi
cạnh mình để:
Kiểm tra và sửa lỗi.
Đọc chương trình và
tính kết quả của chương
trình.
HS: thắc mắc các vấn đề lien
quan đến bài học.