VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON I - Mục tiêu bài học 1.. Kiến thức - Học sinh cần nắm được sự giống nhau và khác nhau giữa thủ tục và hàm.. Kỹ năng - Học sinh nhận biết đư
Trang 1Ngày soạn: 10/04/2010
Ngày giảng: 13/04/2010
Tiết theo PPCT: 44
§18 VÍ DỤ VỀ CÁCH VIẾT
VÀ SỬ DỤNG CHƯƠNG TRÌNH CON
I - Mục tiêu bài học
1 Kiến thức
- Học sinh cần nắm được sự giống nhau và khác nhau giữa thủ tục và hàm
2 Kỹ năng
- Học sinh nhận biết được các thành phần trong đầu hàm Nhận biết được câu lệnh
sử dụng hàm ở trong chương trình chính cùng các tham số thực sự
II - Phương pháp, phương tiện dạy học
- Phương pháp: Đàm thoại, giảng giải…
- 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àì cũ
Câu hỏi : Trình bày về cấu trúc thủ tục? Nêu sự khác nhau giữa tham số giá trị và
tham số biến (khi khai báo và khi thay thế bởi tham số thực sự)
3 Nội dung bài mới
? Em hãy kể tên hàm mà chúng ta đã học?
- Như các hàm: Abs(x), sqrt(x), sin(x)…
? Sự giống nhau và khác nhau giữa hàm và
thủ tục?
- Hàm trâ về giá trị qua tên của nó, còn thủ
tục thì không
? Cấu trúc của hàm có giống cấu trúc của
thủ tục không?
- Hàm có cấu trúc tương tự thủ tục Tuy
nhiên có sự khác nhau ở phần đầu
2 Cách viết và sử dụng hàm
* Cấu trúc của hàm
Function <tên hàm>[<danh sách tham số>]:
<kiểu dữ liệu>;
[<khai báo các biến>];
Begin
[<dãy các lệnh>];
Trang 2? Xác định biến toàn cục, biến cục bô?
?Trong ví dụ có bao nhiêu hàm?
- Có một hàm UCLN
? Hàm UCLN(x,y): được dùng để làm gì?
- Tính ước chung lớn nhất của hai số x, y.
? Chỉ ra lệnh gán giá trị cho tên hàm?
- UCLN:= x;
? Nêu cách sử dụng hàm?
End;
Trong đó:
- <Kiểu dữ liệu>: Kiểu dữ liệu trả lại của hàm như các kiểu integer, real, char, boolean, string
Vd: Function tong(x,y: integer): integer;
- Cũng giống như thủ tục [<danh sách tham số>]: không cần thiết nếu hàm không
có tham số
Ví dụ 1:
Chương trình thực hiện rút gọn một phân
số, sử dụng hàm tính ước chung lơn của 2 số
program VD1;
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 write('Nhap tu so va mau so ');
readln(tuso,mauso);
a := ucln(tuso,mauso);
if a > 1 then begin
tuso := tuso div a;
mauso := mauso div a;
end;
Write('Phan so thu duoc: ', tuso,'/',mauso);
readln End
Trang 3?Chỉ ra các biến được sử dụng trong
chương trình, phân biệt biến cục bộ, biến
toàn cục, được khai báo ở vị trí nào trong
chương trình ?
- Biến được sử dụng gồm 3 biến
- a, b vừa là biến toàn cục vừa là biến cục
bộ, c là biến toàn bộ
?Giá trị kết quả của hàm thuộc kiểu dữ liệu
nào?
- Giá trị kết quả thuộc kiểu dữ liệu real
? Hàm được sử dụng mấy lần?
- Hàm được sử dụng 2 lần
Cách sử dụng hàm:
- Việc sử dụng hàm hoàn toàn tương tự việc sử dụng hàm chuẩn
- Lệnh gọi hàm có thể tham gia vào biểu thức như một toán hạng hoặc có thể là tham
số cho lời gọi của hàm hay thủ tục khác
Ví dụ: A:= 6*UCLN(x,y)+1;
Ví dụ 2:
Chương trình tìm ra số nhỏ nhất trong 3 số được nhập từ bàn phím
program VD2;
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 3 gia tri');
readln(a,b,c);
writeln('So nho nhat la: ', Min(Min(a,b),c)); readln
end
IV - Củng cố
- Nhấn mạnh lại cách khai báo hàm, phân biệt giữa hàm và thủ tục
- Phân được biến toàn cục và biến cục bộ