Ví dụ về hàm: Ví dụ 1: Lập chương trình thực hiện việc rút gọn một phân số, trong đó có sử dụng hàm tính ước số chung lớn nhất ƯCLN của hai số nguyên.... Chương trình rút gọn phân số Pro[r]
Trang 1Bài 18.
VÍ DỤ VỀ CÁCH VIẾT VÀ
SỬ DỤNG CHƯƠNG
TRÌNH CON
(tiết 2)
Trang 2KIỂM TRA BÀI CỦ
1 Nêu cấu trúc của thủ tục?
2 Cho phần đầu thủ tục như sau:
Procedure Tong(x,y:integer; var s:integer);
Trong lời gọi thủ tục ở chương trình ta gọi:
Tong(a,b,T);
- Hãy xác định tham số hình thức, tham số thực sự?
- Xác định tham số giá trị, tham số biến?
Trang 3NỘI DUNG
1 Cách viết và sử dụng thủ tục.
a Cấu trúc thủ tục:
b Ví dụ về thủ tục
2 Cách viết và sử dụng hàm
a Cấu trúc của hàm.
b Ví dụ về hàm.
Trang 42 Cách viết và sử dụng hàm.
a.Cấu trúc của hàm:
Function <tên hàm>[(<ds tham số>)]: <kiểu dữ liệu> ;
[<phần khai báo>]
Begin
[<dãy các lệnh>]
<tên hàm>:= <biểu thức>;
End;
Kiểu dữ liệu trả về có thể gồm những kiểu nào?
Kiểu dữ liệu chỉ có thể là kiểu dữ liệu chuẩn
(integer, real, boolean, char, string)
Trang 52 Cách viết và sử dụng hàm.
Cấu trúc hàm
Cấu trúc hàm
Function <tên hàm> [(<ds tham số>)]:
<kiểu dữ liệu> ;
[<phần khai báo>]
Begin
[<dãy các lệnh>]
<tên hàm>:= <biểu thức>;
End;
Procedure <tên th ủ tục > [(<ds tham số>)] ;
[<phần khai báo>]
Begin
[<dãy các lệnh>]
End;
Cấu trúc thủ tục
So sánh sự giống và khác nhau của hàm và
thủ tục?
Trang 62 Cách viết và sử dụng hàm.
a.Cấu trúc của hàm:
Giống nhau:
+ Đều là chương trình con, có cấu trúc
giống một chương trình
+ Đều có thể có tham số (tham biến hoặc tham trị), cùng tuân theo quy định về khai báo và sử dụng của các tham số này
Khác nhau:
+ Việc thực hiện hàm luôn trả về giá trị
thuộc kiểu xác định qua tên hàm
+ Trong thân hàm thường có câu lệnh gán giá trị cho tên hàm
Trang 72 Cách viết và sử dụng hàm.
b Ví dụ về hàm:
Ví dụ 1: Lập chương trình thực hiện việc rút gọn
một phân số, trong đó có sử dụng hàm tính ước
số chung lớn nhất (ƯCLN) của hai số nguyên
Trang 8HÃY XÁC ĐỊNH
Trong chương trình có mấy hàm?
Hàm UCLN dùng để làm gì?
Biến nào là biến toàn cục? Biến nào là biến cục bộ?
Tham số hình thức là tham biến hay tham trị? Lời gọi hàm:
Câu lệnh gán giá trị cho tên hàm?
UCLN:=x
Chương trình rút gọn phân số
tuso,mauso,a
sodu Tham trị: x,y:integer
a:=UCNL(tuso,mauso)
Program Rutgon_phanso;
USES CRT;
Var tuso,mauso,a:integer;
Begin
Write(‘Nhap tu so, mau so’);Readlln(tuso,mauso);
a:=UCNL(tuso,mauso);
If a>1 Then
Begin
tuso:=tuso div a; mauso:=mauso div a;
End;
Write(tuso:5, mauso:5);
End.
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;
Có một hàm
Tìm ước số chung lớn nhất của x,y
Trang 9CHƯƠNG TRÌNH RÚT GỌN
Trang 102 Cách viết và sử dụng hàm.
a Cấu trúc của hàm:
b Ví dụ về hàm:
Hàm được sử dụng như thế nào trong chương trình?
Sử dụng hàm:
+ Việc sử dụng hàm tương tự như sử dụng các hàm
chuẩn
+ Lệnh gọi hàm có thể tham gia vào biểu thức như 1
toán hạng hoặc làm tham số cho chương trình con khác
Ví dụ: a:=UCLN(tuso,mauso)+5;
write(UCLN(tuso,mauso);
Trang 11Ví dụ 2: Viết chương trình tìm số nhỏ nhất trong 3 số.
(xây dựng hàm tính giá trị nhỏ nhất của 2 số)
Giả sử x = 3, y = 7
=> số nhỏ nhất là x = 3.
Làm thế nào để biết được số nhỏ nhất?
So sánh giá trị của 2 số Nếu x>y thì số
nhỏ nhất là y, ngược lại số nhỏ nhất là x.
Trang 12Chương trình tìm số nhỏ nhất trong 3 số
Program Minbaso;
var a, b, c: real;
Begin
Write(‘ Nhap vao ba so’);
Readln(a,b,c);
Writeln(‘So nho nhat trong 3 so
la:’,Min(Min(a,b),c));
Readln
End.
Biến toàn cục:
Tham số giá trị:
Hàm sử dụng làm tham số hay tham gia biểu thức?
a,b,c x,y
Làm tham số
Function Min(x,y:real):real;
Begin
if x>y then Min:=y else Min:=x;
End;
Trang 13Chương trình tìm số nhỏ nhất trong 3 số
Trang 14Ví du 3: Viết chương trình con tính tổng của 2
nguyên số nhập vào từ bán phím.
Function Tong(x,y:integer):integer;
Begin
Tong:=x+y;
End;
Procedure Tong(x,y:integer; var t:integer);
Begin
t:=x+y;
End;
Nên sử dụng thủ tục hay hàm?
=> Nên sử dụng hàm
Trang 15Ví dụ 4: Viết chương trình con kiểm tra số
nguyên a là số chẵn hay số lẻ.
Procedure KT(a:integer);
Begin
IF a mod 2 = 0 Then
Write(‘ La so chan’)
Else Write(‘La so le);
End;
Function KT(a:integer):boolean;
Begin
IF a mod 2 = 0 Then KT:=true Else KT:=false;
End;
Nên sử dụng thủ tục hay hàm?
=> Nên sử dụng thủ tục
Trang 16Ví du 3: Chương trình tính tổng của 2 số nhập vào từ bàn
phím (sử dụng hàm tính tổng của hai số)
Program Tinh_tong;
Var a,b:integer;
Begin
Writeln(‘Nhap 2 so:’); readln(a,b);
Writeln(‘Tong cua 2 so’,Tong(a,b));
Readln
End.
Begin
Tong :=x+y;
End;
HAM
THUTUC
Trang 17Ví du 4: Chương trình kiểm tra 1 số nguyên nhập vào từ
bàn phím là số chẳn hay lẻ.
Program Kiem_tra;
Var a:integer;
Begin
Writeln(‘Nhap vao 1 so:’); readln(a);
Begin
IF x mod 2 = 0 Then Write(‘ La so chan’)
Else Write(‘La so le’);
End;
Trang 18Kiến thức cần nhớ
- Khái niệm chương trình con
- Phân loại chương trình con
+ Thủ tục + Hàm
- Cấu trúc chương trình con
<phần đầu>
[<phần khai báo>]
<phần thân>
- Tham số hình thức
+ Tham số giá trị + Tham số biến
- Biến cục bộ
- Biến toàn cục
Trang 19KÍNH CHÀO CÁC THẦY CÔ
VÀ CÁC EM!
Trang 20Bài tập
Bài 1:Viết chương trình con kiểm tra 1 số
nguyên là số âm hay số dương?
Bài 2: Viết chương trình con tính tổng bình
phương của 2 số nguyên.