Trờng THPT Thanh Hà Giáo án Tin học lớp 11ví dụ về cách viết và sử dụng chơng trình con III.. Bài mới Hoạt động 1: Cách viết và sử dụng hàm.. Từ đó suy ra cấu trúc của hàm GV giảng thêm
Trang 1Trờng THPT Thanh Hà Giáo án Tin học lớp 11
ví dụ về cách viết và sử dụng chơng trình con
III Các hoạt động dạy và học
1 ổ n định tổ chức lớp
2 KTBC
? Hãy nêu và phân tíc cấu trúc của thủ tuc? Cách sử dụng thủ tục ntn?
? Thế nào là tham số giá trị, tham số biến? Cho VD minh hoạ
3 Bài mới
Hoạt động 1: Cách viết và sử dụng
hàm
? Nhắc lại điểm khác nhau cơ bản
giữa thủ tục và hàm
HS nhắc lại cấu trúc của thủ tục
? Từ đó suy ra cấu trúc của hàm
GV giảng thêm: Tuy nhiên phần
đầu của hàm có khác do nó trả về
giá trị kết quả thuộc kiểu xác định
nên tên hàm phải thuộc kiểu dữ
liệu chuẩn
? Với thủ tục nếu không có tham
số hình thức thì sao? Hàm cũng
vậy
Từ đó đa ra cấu trúc của hàm
? Do hàm trả về giá trị qua tên
hàm nên trong thân hàm có lệnh
gán giá trị cho tên hàm
<tên hàm>:=<biểu thức>
GV YC HS nhớ lại VD : Tìm
ƯCLN của 2 số (đã học), từ đó
viết hàm tìm ƯCLN
function ucln(x,y: integer):
integer;
begin
while x<>y do
if x>y then x:=x-y
else y:=y-x;
ucln:=x;
end;
Từ đó xét chơng trình rút gọn một
phân số
? Đã có hàm ucln ta rút gọn phân
số ntn?
Tử số div ucln (tử số, mẫu số);
Mẫu số div ucln (tử số, mẫu số);
HS dựa vào SGK và xây dựng
ch-ơng trình Tìm BSCNN
Trong VD này là cách khác của
tìm UCLN, cả 2 cách đều đúng,
các em nên biết cả hai cách
Qua VD này HS tìm hiểu về cách
2 Cách viết và sử dụng hàm
Hàm luôn trả về giá trị kết quả thuộc kiểu xác định và giá trị đó đợc gán cho tên hàm
Khai báo phần đầu 1 hàm nh sau:
function <tên hàm>[(< DS tham số>)]:<kiểu dl>; [< phần khai báo>];
begin [<dãy câu lệnh>];
end;
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>
VD1: Chơng trình rút gọn phân số, có sử dụng hàm tính UCLN của 2 số nguyên
program rutgonphanso;
var tuso, mauso, a:integer;
function ucln(x,y:integer):integer;{bat dau ham ucln} begin
while x<> y do
if x>y then x:=x-y else y:=y-x;
ucln:=x;
end; {het ham ucln}
begin write(' Nhap tu so, mau so vao');
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);
readln;
end
GV: Tiêu Thị Kim Thu
94
Tiết 42
Trang 2Trờng THPT Thanh Hà Giáo án Tin học lớp 11
viết và sử dụng hàm
HS nghiên cứu VD2
GV gọi HS lên bảng viết chơng
trình con ( hàm) tìm số nhỏ nhất
trong hai số đã cho
HS khác lên bảng viết chơng trình
chính, gọi hàm tìm Min(a,b) sau
đó tìm Min(Min(a,b),c);
GV hớng dẫn HS phân tích: Hàm
Min đợc thực hiện với hai tham số
thực sự : Tham số thực sự thứ nhất
là kết quả thực hiện hàm min(a,b)
còn tham số thứ hai là giá trị của
biến c Tham số thứ nhất hàm
Min(a,b) đã đợc thực hiện, kết quả
trả về là số nhỏ hơn trong hai giá
trị của biến a và b Nh vậy
Min(Min(a,b),c) sẽ cho số nhỏ
nhất trong 3 giá trị của các biến a,
b, c
Từ các VD trên GV cần lu ý cho
HS
- Việc sd hàm tơng tự nh sử dụng
các hàm chuẩn
- Kết quả trả về qua tên hàm chỉ có
thể thuộc các kiểu dữ liệu chuẩn
- Vì kết quả trả về đã gán cho tên
hàm nên thông thờng các tham số
dùng trong hàm là tham số giá trị
Tơng tự chơng trình tìm min của 3
số, em hãy đa ra cách tìm min của
4 số, 5 số
HS trả lời:
VD 2: Chơng trình cho biết giá trị nhỏ nhất trong 3 số nhập từ bàn phím, có sử dụng hàm tìm số nhỏ nhất trong hai số
program min3so;
var a, b, c:real;
{Ham tim so nho nhat trong 2 so a va b}
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)); readln;
end
program min4so;
var a, b, c,d:real;
{Ham tim so nho nhat trong 2 so a va b}
function Min(a,b:real):real;
begin
if a<b then min:=a else min:=b;
end;
Begin write(' Nhap vao 4 so'); readln(a, b, c, d);
writeln(' So nho nhat trong 4 so la:',min(min(min(a,b),c),d):5:2);
readln; end
Chỉ việc thay câu lệnh min(min(a,b),c) bằng câu lệnh min(min(min(a,b),c),d) (tìm min của 4 số) và nhập 4 số min(min(min(min(a,b),c),d),e) ( tìm min của 5 số) và nhập 5 số
4
Củng cố
- GV củng cố cho HS các khái niệm: chơng trình con, thủ tục, hàm, tham số hình thức, tham số thực sự, biến cục bộ, biến toàn cục
5
HDVN
- Học bài: vở, SGK; đọc lại các VD về chơng trình con
- Làm bài 3, 4 (tr 117).- GV HD HS làm bài 4:
- BSCNN(a,b) có thể tính theo CT: ab/d, trong đó d là ƯSCLN của a và b
- Nên viết hàm để tính BSCNN của 2 số nguyên dơng vì chơng trình con cần trả ra
1 giá trị
- Hàm tính BSCNN của 2 số a, b cần sd hàm tính ƯCLN của a và b
GV: Tiêu Thị Kim Thu
95