Tải bản đầy đủ (.doc) (5 trang)

Bài 18: Ví dụ và cách viết CTC(T1)

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 (123.27 KB, 5 trang )

Ngy son: 22/03/2011
Ngy ging: 24/03/2011
Tit theo PPCT: 39
Đ18. V D V CCH VIT
V S DNG CHNG TRèNH CON
I - Mc tiờu bi hc
1. Kiến thức
- Học sinh biết đợc cấu trúc của một thủ tục.
- Hiểu đợc mối quan hệ giữa chơng trình và thủ tục.
- Phân biệt đợc tham trị và tham biến.
- Phân biệt đợc tham số hình thức và tham số thực sự.
- Phân biệt đợc biến cục bộ và biến toàn cục.
2. Kĩ năng
- Học sinh nhận biết đợc các thành phần trong phần đầu của thủ tục.
- Học sinh nhận biết đợc hai loại tham số hình thức trong phần đầu của thủ tục.
- Học sinh nhận biết lời gọi của thủ tục ở chơng trình chính cùng với tham số thực sự.
II Ph ơng pháp, ph ơng tiện dạy hoc
- Phơng pháp: Thuyết trình, đàm thoại, vấn đáp
- Phơng tiện: sgk, giáo án
III Tiến trình bài học
1. ổn định tổ chức lớp
- Lớp:
- Sĩ số:
- Lí do vắng:
2. Kiểm tra bài cũ
Câu hỏi 1: Chơng trình con có những loại nào?Cấu trúc của một chơng trình con?
Câu hỏi 2: Viết chơng trình vẽ lên màn hình hình chữ nhật có dạng:
********
* *
********
3. Nội dung


Hoạt động của giáo viên và
học sinh
Nội dung
? Ta có thể vẽ hình chữ nhật trên nh thế
nào?
- Vẽ hình chữ nhật trên với 3 câu lệnh
1. Cách viết và sử dụng thủ tục
Xét ví dụ: Vẽ hình chữ nhật có dạng
*******
* *
*******
1
writeln.
? Giả sử 1 chơng trình yêu cầu vẽ nhiều
hình chữ nhật nh trên thì ta thầy gặp khó
khăn gì?
- Chơng trình sẽ rất dài với nhiều câu
lệnh lặp đi lặp lại.
Để khắc phục khó khăn này ta nên sử
dụng CTC.
?Theo các em với bài vẽ hình chữ nhật này,
thì chúng ta nên dùng hàm hay thủ tục. Vì
sao?
- Chúng ta nên dùng thủ tục. Vì hàm thì
trả về một giá trị qua tên của nó còn thủ tục
thì không.
? Dựa vào chơng trình trên cho biết cấu
trúc của thủ tục?
CT vẽ hình chữ nhật trên:
Program Ve_Hcn;

Uses crt;
Begin
Clrscr;
Writeln(********);
Writeln(* *);
Writeln(********);
Readln;
End.
CT sử dụng CTC là thủ tục để vẽ hình chữ
nhật
Program Ve_Hcn;
Uses crt;
Procedure ve_hcn;
Begin
Writeln(*******);
Writeln(* *);
Writeln(*******);
End;
Begin Clrscr;
Ve_hcn;
Writeln;
Ve_hcn;
Writeln;
Ve_hcn;
Readln
End.
a, Cấu trúc của thủ tục
Cấu trúc của thủ tục:
procedure <tên thủ tục>[<ds tham số>]
[<phần khai báo>]

Begin
[<dãy các lệnh>]
End;
Trong đó:
+ Phần đầu: Gồm tên dành riêng
2
?Trong chơng trình trên vẽ mấy hình chữ
nhật, kích thớc các hình nh thế nào?
- Vẽ 3 hình chữ nhật. Kích thớc các hình
chữ nhật nh nhau, chiều dài 7, chiều rộng 3.
? Nừu muốn vẽ hình chữ nhật có kích thớc
khác nhau thì phải làm thế nào?
- Cần phải có 2 tham số cho dữ liệu vào
là chiều dài và chiều rộng
Khi đó đầu thủ tục đợc viết
Procedure Ve_Hcn (chdai, chrong:
integer);
Với khai báo nh vậy ta có thể vẽ đợc hình
chữ nhật có kích thớc tuỳ theo giá trị của
tham số chiều dài và chiều rộng.
- Lời gọi vẽ hình chữ nhật có kích thớc
25x10 và kích thớc 10x15
procedure, tiếp theo là tên thủ tục. Danh
sách tham số có thể có hoặc không có.
+ Phần khai báo: Dùng để xác định các
hằng, kiểu, biến và cũng có thể xác định các
chơng trình con khác đợc sử dụng trong thủ
tục.
+ Dãy các câu lệnh: Đợc viết giữa cặp
tên dành riêng begin và end; tạo thành thân

của thủ tục.
* Chú ý:
- Các thủ tục (nếu có) phải đợc khai báo
và mô tả trong phần khai báo của chơng
trình chính, ngay sau phần khai báo các
biến.
- Khi cần thực hiện, ta phải viết lệnh gọi
thủ tục tơng tự nh các thủ tục chuẩn.
<tên thủ tục>[(các tham số thực sự)]
b, Ví dụ về thủ tục
Chơng trình mô tả đầy đủ với 2 tham số
chiều dài và chiều rộng
Program hcn;
Uses crt;
Var a, b, i : integer;
Procedure ve_hcn(cd, cr : integer);
Var i, j : integer;
Begin
For i:=1 to cd do
Write(*);
Writeln;
For j:=1 to cr 2 do
Begin
Write(*);
For i:=1 to cd 2 do
Write(*);
Writeln;
End;
Begin clrscr;
Ve_hcn(25,10);

Writeln;
Ve_hcn(10,15);
Reaadln;
3
Cùng học sinh xây dựng chơng trình
VD_thambien1
Chạy chơng trình với a=5; b=10.
? Em nào hãy cho cô biết giá trị của a, b
sau khi thực hiện thủ tục Hoan_doi có thay
đổi nh thế nào?
- Có thay đổi a nhận giá trị của b và ngợc
lại.
Sau khi chạy chơng trình ta thấy trớc và
sau khi gọi thực hiện thủ tục các tham biến
đã thay đổi, giá trị của tham biến sau lời gọi
thủ tục là giá trị sau cùng khi kết thúc thực
hiện thủ tục.
Sửa lại chơng trình VD_thambien1 thành
chơng trình VD_thambien2 với thủ tục
Procedure Hoan_doi (x: integer; var y:
integer);
- Chạy chơng trình VD_thambien2 với
a=5 và b=10.
?So sánh kết quả khi chạy hai chơng trình
VD_thambien1 và VD_thambien2?
? Nêu sự khác nhau giữa tham biến và tham
trị?

{ve 4 hcn hinh dau tien co kich thuoc 4x2,
moi hinh sau co kich thuoc gap doi hinh

truoc}
a:=4; b:=2
for i:=1 to 4 do
begin
ve_hcn(a,b);
readln
a:=a*2; b:=b*2;
end;
readln
end.
- Trong lệnh gọi thủ tục các tham số hình
thức đợc thay bằng tham số thực sự tơng
ứng là các giá trị cụ thể gọi là tham số giá
trị (gọi tắt là tham trị)
VD: 25 x 10, 10 x 15 là tham số giá trị
- Trong lệnh gọi thủ tục các tham số hình
thức đợc thay bằng tham số thực sự tơng
ứng là các biến chứa dữ liệu ra đợc gọi là
tham số biến.
Lu ý:
Để phân biệt tham số biến và tham số giá
trị Pascal sử dụng từ khoá Var để khai báo
những tham số biến.
xét ví dụ sau: Viết chơng trình trong đó có
sử dụng thủ tục Hoan_doi để đổi giá trị của
2 biến.
- Trong khai báo tham số hình thức của
một thủ tục: Tham số biến đợc dùng để ghi
lại dữ liệu kết quả của việc thực hiện thủ tục
4

(có từ khoá var ở trớc), còn tham số giá trị
chỉ để đa dữ liệu vào cho thủ tục khi bắt đầu
thực hiện thủ tục.
- ở lời gọi thực hiện một thủ tục: Một
hằng hay một tên biến hay một biểu thức có
thể xuất hiện ở vị trí một tham số thực sự t-
ơng ứng với tham số giá trị, trong khi đó ở
vị trí một tham số thực sự tơng ứng với
tham số biến chỉ có thể là một tên biến
IV Củng cố
- Cấu trúc của thủ tục.
- Tham biến, tham trị
5

×