Ví dụ về cách viết và sử dụng chương trình con
Trang 1Đoàn TT trường ĐHSP Hà Nội
Chương VI.
CHƯƠNG TRÌNH CON VÀ LẬP TRÌNH CÓ CẤU TRÚC
§ 18 Ví dụ về cách viết và sử dụng chương trình con.
GVHD: Trần Thị Thu Thủy Giáo sinh thực tập: Nguyễn Thị Huệ
Ngày soạn: ……/……/2011
1 KIẾN THỨC, KĨ NĂNG
1.1 Kiến thức
- Biết được cấu trúc chung và vị trí của thủ tục trong chương trình
- Phân biệt được tham số giá trị và tham số biến
- Nắm được khái niệm về biến toàn cục và biến cục bộ
1.2 Kĩ năng
- Nhận biết được các thành phần trong đầu của thủ tục
- Nhận biết được hai loại tham số hình thức trong đầu của thủ tục
- Biết cách khai báo hai loại chương trình con cùng với tham số hình thức của chúng
- Sử dụng đúng lời gọi chương trình con trong thân chương trình chính
- Phân biệt được khác nhau cơ bản của hàm và thủ tục
- Phân biệt và sử dụng đúng biến toàn cục và biến cục bộ
2 PHƯƠNG PHÁP, PHƯƠNG TIỆN
2.1 Phương pháp:
- Kết hợp các phương pháp giảng dạy như: Thuyết trình, vấn đáp,…
2.2 Phương tiện:
- Chuẩn bị của giáo viên: giáo án, SGK, sách bài tập,…
- Chuẩn bị của học sinh: SGK, vở ghi, sách bài tập
Trang 23 TIẾN TRÌNH LÊN LỚP, NỘI DUNG BÀI GIẢNG
3.1 Ổn định lớp (3’)
- Khi vào lớp yêu cầu lớp ổn định, giữ trật tự, chuẩn bị đầy đủ các thiết bị học tập cần thiết và bắt đầu bài học
- Yêu cầu lớp trưởng báo cáo sĩ số của lớp
3.2 Kiểm tra bài cũ, gợi động cơ cho bài mới
3.2.1 Kiểm tra bài cũ: (5’)
Câu hỏi: Chương trình con có mấy loại? Đó là những loại nào? Cấu trúc
chung của chương trình con?
- Trả lời:
+ Chương trình con có hai loại: Hàm và thủ tục
• Hàm (Function): là chương trình con thực hiện một số thao tác nào đó và trả về một giá trị qua tên của nó
• Thủ tục (Procedure): là chương trình con thực hiện thao tác nhất định nhưng không trả về giá trị nào qua tên của nó
+ Cấu trúc chung của một chương trình con:
<Phần đầu>
[<Phần khai báo>]
<Phần thân>
Hỏi thêm: Lợi ích của việc sử dụng chương trình con?
3.2.2 Gợi động cơ cho bài mới: (1’)
Trong bài học trước, chúng ta đã được học về chương trình con và phân loại Vậy
để hiểu rõ hơn cách viết và sử dụng của mỗi loại chương trình con chúng ta bài hôm nay Bài 18: Ví dụ về cách viết và sử dụng chương trình con
3.3 Nội dung bài giảng: (T: thời gian dự kiến; GV: Giáo viên; HS: học sinh)
Trước tiên ta tìm hiểu loại
thứ nhất của chương trình
con Chúng ta vào phần 1
Thủ tục
? Một em hãy xem trong
SGK và hãy cho cô biết cấu
trúc của thủ tục
1 Cách viết và sử dụng thủ tục
a Cấu trúc: (3’)
Procedure <tên_TT>[(<DS tham
số hình thức>: <kiểu dữ liệu>)];
[<Phần khai báo>]
Begin
- Lắng nghe và ghi bài
- Trả lời cấu trúc của thủ tục
Trang 3- Trong cấu trúc của thủ tục
mà bạn vừa nêu chúng ta
cần phải chú ý một số đặc
điểm sau: Tên_TT: do
người dùng đặt; <DS tham
số> có thể có hoặc không
- Để hiểu rõ hơn về cấu trúc
của thủ tục, chúng ta sang
phần b: Ví dụ
? Để in ra các dấu x thì
chúng ta phải dùng lệnh gì?
? Vậy thì chúng ta phải
dùng mấy lệnh writeln?
- Ta phải dùng 3 lệnh
writeln
- Vậy từ đây em nào có thể
đứng lên viết cho cô thủ tục
vẽ HCN này?
? Để in 1 HCN ta phải làm
thế nào?
- Khi chúng ta đã có thủ tục
rồi, vậy thì sử dụng nó trong
chương trình như thế nào?
- Như vậy, để gọi thủ tục
veHCN chúng ta phải gọi
tên của nó trong chương
trình chính
? Nếu chúng ta muốn vẽ 3,
4 HCN thì phải làm như thế
nào?
- Nếu chúng ta muốn vẽ
100, 1000 HCN thì liệu
chúng ta có thể liệt kê được
100, 1000 thủ tục veHCN
không? Vậy chúng ta phải
làm thế nào?
- Dựa vào chương trình trên,
một em hãy cho cô biết vị
trí của thủ tục?
<Dãy câu lệnh>;
End;
b Ví dụ: (5’)
- VD1 : Vẽ HCN có dạng:
x x x x x x x x
x x
x x x x x x x x
Lệnh Writeln:
Writeln(‘x x x x x x x x ’);
Writeln(‘x x’);
Writeln(‘x x x x x x x x ’);
Program HCN;
Var i, n: integer;
Procedure veHCN;
Begin
Writeln(‘x x x x x x x x ’);
Writeln(‘x x’);
Writeln(‘x x x x x x x x ’);
End;
BEGIN
veHCN;
veHCN;
n:= 100;
for i:= 1 to n do veHCN;
Readln;
END.
*
VD2 : (10’) Vẽ HCN có kích
thước khác nhau: 10x5, 8x6,…
- Lắng nghe và ghi bài
- writeln
- 3 lệnh writeln
- Lắng nghe và ghi bài
- Trả lời
- Quan sát và ghi bài
- Chúng ta phải gọi thủ tục veHCN 3 hay
4 lần
- Không Chúng ta phải sử dụng lệnh for to do
- Thủ tục nằm trước thân chương trình chính và sau phần khai báo của chương
Trang 4- Ở đây chúng ta chỉ vẽ
được HCN có kích thước
bằng nhau Ví dụ, cô muốn
vẽ nhiều hình chữ nhật có
kích thước khác nhau thì cô
phải làm thế nào? Chúng ta
cùng sang ví dụ thứ 2
- Để vẽ được những HCN
có kích thước khác nhau
như thế này thì chúng ta
phải làm thế nào? Giả sử
chúng ta muốn viết thủ tục
vẽ hình chữ nhật với các
kích thước d, r bất kì như
sau:
- Vậy thì dựa vào đây chúng
ta phải viết các câu lệnh như
thế nào? Dựa vào đó chúng
ta sẽ viết thủ tục như thế
nào?
- Trong ví dụ trước chúng ta
đã gọi thủ tục không tham
số Vậy thì thủ tục có tham
số như thủ tục này thì chúng
ta phải gọi như thế nào?
? Nếu chúng ta muốn nhập
trực tiếp cạnh hình chữ nhật
thì phải làm thế nào?
- Tiếp theo chúng ta sang
khái niệm mới tham biến,
tham trị
+ dòng 1: d x + dòng r: d x
+ dòng từ 2 đến r-1 có 2 dấu x ở đầu và cuối còn ở giữa có d-2 dấu cách
Uses crt;
Procedure HCN(d, r:integer);
Var i, j: integer;
Begin For i:= 1 to d do write(‘x ’);
writeln;
For i:= 2 to r-1 do Begin
Write(‘x ’);
For j:= 2 to d-1 do
write(‘ ’); writeln(‘x ’);
End;
For i:= 1 to d do write(‘x ’);
writeln;
End;
BEGIN
HCN(10, 5); HCN(8, 6); readln;
END.
Readln(d, r); HCN(d, r);
- Tham biến: khi gọi chương trình
con nó đem giá trị thay đổi ra khỏi chương trình con Được khai báo bằng từ khóa Var
trình chính
- Lắng nghe và ghi bài
- Quan sát và lắng nghe
- Trả lời:
- Chúng ta phải gọi
cả tên thủ tục cùng với danh sách tham
số của nó
- Dùng lệnh readln(dài, rộng);
- Lắng nghe và ghi bài
Trang 5- Chúng ta xét ví dụ dùng
thủ tục Hoandoi
? Để hoán đổi giá trị trong
hai biến x, y ta phải làm thế
nào?
- Vậy thì dựa vào những gì
các em đã được học thì các
em hãy suy đoán xem kết
quả của hai chương trình
trong SGK trang 99 và 100
là như thế nào?
- Tham trị: khi gọi chương trình
con nó không đem giá trị thay đổi
ra khỏi chương trình con Không được khai báo bằng từ khóa Var
tg:= x; x:= y; y:= tg;
- Trong VD_thambien1
5 10
10 5
- Trong VD_thambien2
5 10
5 5
- Dùng biến trung gian
- Trả lời
Chúng ta sẽ sang tìm hiểu
loại thứ hai của chương
trình con
- Dựa vào cấu trúc của thủ
tục và hàm như thế này
Một em hãy so sánh cho cô
sự giống và khác nhau giữa
hàm và thủ tục
- Để tìm hiểu rõ hơn về hàm
chúng ta sẽ đi vào các ví dụ
cụ thể
- Các em còn nhớ mấy
phương pháp để tìm UCLN
của hai số bất kì mà ta đã
học ở lớp 10?
- Sau đây cô sẽ giới thiệu
với các em phương pháp trừ
để tìm UCLN của hai số
Vậy từ ví dụ trên các em
hãy viết thủ tục tìm UCLN
2 Cách viết và sử dụng hàm
a Cấu trúc: (3’)
Function <tên_hàm>[(<DS tham
số hình thức>: <kiểu dữ liệu>)]:
<kiểu trả về>;
[<Phần khai báo>]
Begin
<Dãy lệnh>;
<tên_hàm>: = <giá trị trả về>;
End;
- Giống nhau:
- Khác nhau:
b Ví dụ: (10’)
* VD1: Tìm UCLN của 2 số m, n
Function UCLN(m, n: integer):
integer;
Begin While m<>n do
If m>n then m:= m- n Else n:= n- m;
- Lắng nghe và ghi bài
- Trả lời:
- Lắng nghe và ghi bài
- 3 phương pháp: phương pháp trừ, chia, nguyên tố
- Quan sát, lắng nghe
và ghi bài
- Trả lời:
Trang 6của hai số m, n bất kì:
- Cũng như thủ tục, việc gọi
hàm trong chương trình
cũng cần gọi tên hàm và
danh sách tham số kèm
theo, nhưng khác là hàm trả
về kết quả Để tìm hiểu rõ
hơn về điều này chúng ta
cùng xét VD2
- Để dựa vào hàm UCLN
chúng ta có ví dụ sau:
- Do thời gian không còn
nhiều nên cô sẽ gợi ý và các
em về nhà hãy viết chương
trình tính Coi như đây là
bài tập về nhà
UCLN:= m;
End;
* VD 2: (4) Dựa vào hàm tính
UCLN của hai số m, n bất kì ở trên em hãy viết chương trình tối giản phân số a, b bất kì:
12/18 = 2/3 Mà UCLN(12,18)=6
+ UC:= UCLN(a, b);
+ a:= a div UC;
+ b:= b div UC;
- Lắng nghe và ghi bài
- Quan sát và ghi bài
4 CỦNG CỐ KIẾN THỨC (thời gian còn lại)
4.1 Củng cố:
- Biết cách phân loại hàm và thủ tục Chú ý: chương trình con chỉ được thực hiện khi có lời gọi nó
- Biết được cấu trúc chung và vị trí của hàm, thủ tục trong chương trình
- Cách viết và sử dụng thủ tục, hàm trong mỗi bài toán, chương trình cụ thể
- Phân biệt được tham biến, tham trị, cách sử dụng chúng Ngoài ra cũng phải xác định được biến toàn cục và biến địa phương (biến cục bộ)
4.2 Bài tập về nhà.
- Đọc trước các bài tập thực hành 6 và 7 Bài 19: Thư viện chương trình con chuẩn
- Làm bài tập trong sách giáo khoa và sách bài tập
- Bài tập làm thêm: Viết chương trình có sử dụng chương trình con (thủ tục hoặc hàm) để thực hiện tính chu vi và diện tích hình chữ nhật Yêu cầu nhập chiều dài
và chiều rộng trong chương trình chính rồi gọi chương trình con để tính diện tích
và chu vi
Trang 7Nhận xét của giáo viên hướng dẫn
………
………
………
………
………
………
Giáo viên hướng dẫn Người soạn giáo án (Ký và ghi rõ họ tên) (Ký và ghi rõ họ tên) ……… ………