GV: Chạy tay và giải thích từng câu leänh cho keát quaû 5 10 10 5 GV: Để thấy được rõ hơn về sự khác biệt giữa tham biến và tham trị ta xet theâm ví duï tham bieán 2... GV: Chạy tay và g[r]
Trang 1Đơn vị: Trường THPT NGUYỄN TRÃI
Tên giáo viên: Nguyễn Huỳnh Nhật Việt
Giáo án: Bài 18 – Môn tin 11
Ngày soạn: 25/7/2007 Tên bài dạy: Bài 18
VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON
BÀI 18: VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON
A Mục tiêu bài dạy:
1 Kiến thức:
Biết cấu trúc một thủ tục hàm
Biết mối liên quan giữa chương trình và thủ tục, hàm
Biết gọi thủ tục, hàm
2 Kĩ năng:
Nhận biết được các thành phần trong phần đầu của thủ tục, hàm
Viềt được thủ tục và hàm đơn giản
B Chuẩn bị giáo viên và hoc sinh:
1 Giáo viên: Giáo án
2 Học sinh: Chuẩn bị bài trước
C Phân tiết:
D Tiến trình bài dạy:
1 Điểm danh:
2 Kiểm tra bài cũ:
GV: Trình bày cấu trúc và tại sao phải dùng chương trình con
HS: Trả lời câu hỏi
GV: Nhận xét, đánh giá và cho điểm
3 Bài mới:
Nội dung Hoạt đông của giáo viên và học sinh
1 Cách viết và sử dụng thủ tục:
Xét chương trình
Procedure Ve_Hcn;
Begin
Writeln(‘**********’);
Writeln(‘* *’);
Writeln(‘**********’);
End;
Begin
Ve_Hcn;
Writeln; Writeln;
GV: Các em nhìn vào chương trình bên cho biêt xuât ra kết quả gì?
HS: Trả lời câu hỏi
GV: Nhận xét
GV: Chạy chương trình bằng tay và giải thích từng câu lệnh và nói học sinh chú ý đến khai báo thủ tục và gọi thủ tục
Trang 2Writeln; Writeln;
Ve_Hcn;
End
a) Cấu trúc thủ tục:
Procedure <tên thủ tục>[(<danh sách tham số>)];
[<phần khai báo>]
Begin
[<dãy các lệnh>]
End;
b) Thủ tục có tham số:
Xét chương trình
Program VD_thutuc2;
uses crt;
var a,b,i:integer;
Procedure Ve_Hcn(chdai,chrong:integer);
var i,j:integer;
Begin
for i:=1 to chdai do write(‘*’);
writeln;
for j:=1 to chrong-2 do write(‘ ‘);
writeln(‘*’);
End;
for i:=1 to chdai do write(‘*’);
writeln;
Begin
clrscr;
Ve_Hcn(25,10);
writeln; writeln;
Ve_Hcn(5,10);
Readln;
clrscr;
a:=4; b:=2;
for i:=1 to 4 do
begin
Ve_Hcn(a,b);
Readln;
clrscr;
a:=a*2; b:=b*2;
End;
Readln;
End
GV: Gọi một học sinh hãy nhìn vào chương trình và chú ý đến thủ tục và cho biết cấu trúc của thủ tục gồm những phần nào?
HS: Trả lời
GV: Nhận xét
GV: Các em sang thủ tục 2 Xé thủ tục có tham số
GV: Em nhận xét giữa thủ tục 1 và thủ tục 2?
HS: Trả lời
GV: Nhận xét
GV: Chạy chương trình bằng tay và giải thích từng câu lệnh
GV: Chỉ cho học sinh biết biến toàn cục và biến địa phương và phạm vi hoạt động của từng loại biến
GV: Cần nói rõ về tham số trong thủ tục 2 là tham số trị và giải thich Ngoài ra còn có tham số biến
GV: Tham số biến Pascal sử dụng từ khoá Var để khai báo Ta xét ví dụ ở mục c để hiểu về tham số biến
Trang 3c) Tham biến:
Xét chương trình
Program VD_thambien1;
uses crt;
var a,b:integer;
Procedure Hoan_doi(var x,y:integer);
var TG:integer;
Begin
TG:=x;
x:=y;
y:=TG;
End;
Begin
clrscr;
a:=5;b:=10;
writeln(a:6,b:6);
Hoan_doi(a,b);
writeln(a:6,b:6);
End
Program VD_thambien2;
uses crt;
var a,b:integer;
Procedure Hoan_doi(x:integer; var y:integer);
var TG:integer;
Begin
TG:=x;
x:=y;
y:=TG;
End;
Begin
clrscr;
a:=5; b:=10;
writeln(a:6,b:6);
Hoan_doi(a,b);
writeln(a:6,b:6);
End
2 Cách viết và sử dụng hàm:
Hàm có cấu trúc tương tự như thủ tục Tuy nhiên có
khác nhau phần đầu:
Khai báo phần đầu:
function <tên hàm>[(<danh sách tham số>)]:<kiểu dl>;
GV: Chạy tay và giải thích từng câu lệnh cho kết quả 5 10
10 5
GV: Để thấy được rõ hơn về sự khác biệt giữa tham biến và tham trị ta xet thêm ví dụ tham biến 2
GV: Chạy tay và giải thích từng câu lệnh Cho kết qủa: 5 10
5 5
GV: Từ các ví dụ trên ta thấy được sự khác biệt khi sử dụng tham biến và tham trị
GV: Khi viết chương trình con ngoài thủ tục còn có thể sử dụng hàm Để nói rõ về hàm và cách dùng hàm các
em sang mục 2
Trang 4 Khác với thủ tục trong thân hàm cần có lệnh gán giá trị
cho tên hàm:
<tên hàm>:= <biểu thức>;
Ví dụ 1: Xét chương trình:
Program Rutgon_phanso;
uses crt;
var Tuso, Mauso,a:integer;
function UCLN(x,y:integer):integer;
var Sodu:integer;
Begin
while y < > 0 do
Begin
Sodu:= x mod y;
x:=y;
y:=Sodu;
End;
UCLN:=x;
End;
Begin
clrscr;
write(‘Nhap Tuso, Mauso:’); readln(Tuso,Mauso);
a:=UCLN(Tuso,Mauso);
if a>1 then
Begin
Tuso:= Tuso div a;
Mauso:= Mauso div a;
End;
Writeln(Tuso:5, Mauso:5);
End
Ví dụ 2: Xét chương trình
Program Minbaso;
var a,b,c: real;
function Min(a,b:real):real;
Begin
if a < b then Min:=a
else Min:=b;
End;
Begin
Write(‘Nhap vao 3 so’);
Readln(a,b,c);
writeln(‘So nho nhat trong 3 so la:’,Min(Min(a,b),c);
GV: Chạy tay và giải thich từng câu lênh
GV: Chạy tay và giải thích từng câu lệnh
Trang 5End
4 Củng cố:
Cách dùng thủ tục và hàm và sự khác nhau giữa thủ tục và hàm
Sự khác nhau giữa tham biến và tham trị Cách dùng hai tham số này
Phạm vi tác động của biến toàn cục và biến cục bộ
5 Dặn dò:
Chuẩn bị bài tập và thực hành 6 trang 103-104
Chuẩn bị bài tập và thực hành 7 từ trang 105 đến 108