lOMoARcPSD| 40425501
NMLT - H m
(Function)
Nội dung
NMLT - H m
(Function)
lOMoARcPSD| 40425501
NMLT - H m
(Function)
VC
VC
&
&
BB
BB
Đặt
vấn
printf( Nhap mot
so nguyen duong:
); scanf( %d ,
&a);
printf( Nhap mot
so nguyen duong:
); scanf( %d ,
&b);
printf( Nhap mot
so nguyen duong: ); scanf( %d , &c);
lOMoARcPSD| 40425501
NMLT - H m (Function) NMLT - H m (Function)
VC
VC
&
&
BB
BB
Đặt vấn
3 oạn lệnh t nh s1 = a!, s2 = b!, s3 = c!
{ T nh s1 = a! = 1 * 2 * * a } s1 = 1; for
(i = 2; i <= a ; i++)
s1 = s1 * i;
{ T nh s2 = b! = 1 * 2 * * b } s2 = 1; for
(i = 2; i <= b ; i++)
s2 = s2 * i;
{ T nh s3 = c! = 1 * 2 * * c } s3 = 1; for
(i = 2; i <= c ; i++)
s3 = s3 * i;
NMLT - H m (Function)
Đặt vấn
Giải phÆp => Viết 1 lần v sử dụng nhiều lần
Đoạn lệnh nhập tổng quÆt, với n = a, b,
c
do { printf( Nhap mot so nguyen duong: );
scanf( %d , &n);
} while (n <= 0);
Đoạn lệnh t nh giai thừa tổng quÆt, n = a, b,
c
{ T nh s = n! = 1 * 2 * * n }
s = 1; for (i = 2; i <= n ;
i++)
s = s * i;
NMLT - H m (Function)
&&
lOMoARcPSD| 40425501
NMLT - H m (Function)
VC
VC
&
&
BB
BB
VC
VC
BBBB H m
lOMoARcPSD| 40425501
NMLT - H m (Function) NMLT - H m (Function)
VC
VC
&
&
BB
BB
KhÆi niệm
Một oạn chương tr nh c tŒn, ầu v o
v ầu ra.
C chức năng giải quyết mt s
vấn ề chuyŒn biệt cho chương tr nh ch
nh.
Được gọi nhiều lần với cÆc tham
số khÆc nhau.
Được sử dụng khi c nhu cầu:
TÆi sử dụng.
Sửa lỗi v cải tiến.
&&
lOMoARcPSD| 40425501
NMLT - H m (Function)
VC
VC
&
&
BB
BB
VC
VC
BBBB H m
lOMoARcPSD| 40425501
NMLT - H m (Function) NMLT - H m (Function)
VC
VC
&
&
BB
BB
Cœ phÆp
<kiểu trả về> <tŒn h m>([danh sÆch tham số])
{
<cÆc c u lệnh>
[return <giÆ trị>;]
}
Trong
<kiểu trả về> : kiểu bất kỳ của C (char, int,
long, float, ). Nếu kh ng trả về th l void. <tŒn
h m>: theo quy tắc ặt tŒn ịnh danh.
<danh sÆch tham số> : tham số h nh thức u
v o giống khai bÆo biến, cÆch nhau bằng
dấu , <giÆ trị> : trả về cho h m qua lệnh
return.
H m
V dụ 1
TŒn h m: XuatTong
C ng việc: t nh v xuất tổng 2 số nguyŒn
Đầu v o: hai s nguyŒn x v y Đầu ra:
kh ng c
void XuatTong(int x, int y)
{ int s; s =
x + y;
printf( %d cong %d bang %d , x, y, s);
}
NMLT - H m (Function)
lOMoARcPSD| 40425501
NMLT - H m (Function)
VC
VC
&
&
BB
BB
&&
lOMoARcPSD| 40425501
NMLT - H m (Function) NMLT - H m (Function)
VC
VC
&
&
BB
BB
VC
VC
BBBB H m
lOMoARcPSD| 40425501
NMLT - H m (Function)
VC
VC
&
&
BB
BB
V dụ 2
TŒn h m: TinhTong
C ng việc: t nh v trả về tổng 2 số
nguyŒn
Đầu v o: hai số nguyŒn x v y
Đầu ra: một số nguyŒn c giÆ trị x
+ y
int TinhTong(int x, int y)
{ int s; s = x +
y; return
s;
}
&&
lOMoARcPSD| 40425501
NMLT - H m (Function) NMLT - H m (Function)
VC
VC
&
&
BB
BB
VC
VC
BBBB Chương tr nh con - Function
lOMoARcPSD| 40425501
NMLT - H m (Function)
VC
VC
&
&
BB
BB
V dụ 3
TŒn h m: NhapXuatTong
C ng việc: nhập v xut tổng 2 số
nguyŒn
Đầu v o: kh ng c Đầu ra: kh ng
c
void NhapXuatTong()
{ int x, y; printf( Nhap 2 so nguyen: );
scanf( %d%d , &x, &y); printf( %d cong
%d bang %d , x, y, x + y);
}
lOMoARcPSD| 40425501
NMLT - H m (Function) NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com)
VC
VC
&
&
BB
BB
Tầm vực
KhÆi niệm
L phạm vi hiệu quả của biến v h m.
Biến:
To n cục: khai bÆo trong ngo i tất cả cÆc h m
(kể cả h m main) v c tÆc dụng lŒn to n bộ
chương tr nh.
Cục bộ: khai bÆo trong h m hoặc khối { } v chỉ
c tÆc dụng trong bản th n h m hoặc khối khối
con n ). Biến cục bộ sẽ bị x a khỏi bộ nhớ khi
kết thœc khối khai bÆo n .
NMLT - H m (Function)
&&
lOMoARcPSD| 40425501
NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com)
NMLT -Hm (Function
)
VC
VC
BBBB Một số lưu
lOMoARcPSD| 40425501
NMLT - H m (Function) NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com)
VC
VC
&
&
BB
BB
Th ng thường người ta thường t phần tiŒu
h m/nguyŒn mẫu h m (prototype) trŒn h m
main v phn ịnh nghĩa h m dưới h m main.
void XuatTong(int x, int y); // prototype
void main()
{ }
void XuatTong(int x, int y)
{ printf( %d cong %d bang %d , x, y, x + y);
}
lOMoARcPSD| 40425501
NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com)
NMLT -Hm (Function
)
VC
VC
BBBB
&&
CÆc cÆch truyền ối số
lOMoARcPSD| 40425501
NMLT - H m (Function) NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com)
VC
VC
&
&
BB
BB
Truyền GiÆ trị (Call by Value)
Truyền ối số cho h m ở dạng giÆ
tr.
C thể truyền hằng, biến, biểu thức
nhưng h m chỉ sẽ nhận giÆ trị.
Được sử dụng khi kh ng c nhu cầu
thay ổi giÆ trị của tham số sau khi thực hiện
h m.
void TruyenGiaTri(int x)
{
x++;
}
CÆc cÆch truyền ối số
Truyền Địa chỉ (Call by Address)
Truyền ối số cho h m ở dạng ịa chỉ
(con trỏ).
Kh ng ược truyền giÆ trị cho tham
số n y.
Được sử dụng khi c nhu cầu
thay ổi giÆ trị của tham ssau khi thực
hiện h m.
void TruyenDiaChi(int *x) {
*x++;
}
NMLT - H m (Function)
lOMoARcPSD| 40425501
NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com)
NMLT -Hm (Function
)
CÆc cÆch truyền ối số
Truyền Tham chiếu (Call by Reference) (C++)
Truyền ối số cho h m dạng ịa chỉ (con
trỏ). Được bắt ầu bng & trong khai bÆo.
Kh ng ược truyền giÆ trị cho tham số n y.
Được sử dụng khi c nhu cầu thay ổi giÆ
trị của tham số sau khi thực hiện h m.
void TruyenThamChieu(int &x) {
lOMoARcPSD| 40425501
NMLT - H m (Function) NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com)
VC
VC
&
&
BB
BB
x++;
lOMoARcPSD| 40425501
NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com)
NMLT -Hm (Function
)
}
NMLT - H m (Function)
&&
lOMoARcPSD| 40425501
NMLT - H m (Function) NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com)
VC
VC
&
&
BB
BB
VC
VC
BBBB Lưu khi truyền ối số
lOMoARcPSD| 40425501
NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com)
NMLT -Hm (Function
)
Lưu
Trong một h m, cÆc tham số c th
truyền theo nhiều cÆch.
void HonHop(int x, int &y)
{
x++; y++;
}
&&
lOMoARcPSD| 40425501
NMLT - H m (Function) NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com)
VC
VC
&
&
BB
BB
VC
VC
BBBB Lưu khi truyền ối số
lOMoARcPSD| 40425501
NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com)
NMLT -Hm (Function
)
u
Sử dụng tham chiếu l một cÆch
trả về giÆ trị cho chương tr nh.
int TinhTong(int x, int y)
{ return x + y; }
void TinhTong(int x, int y, int &tong)
{ tong = x + y; }
void TinhTongHieu(int x, int y, int &tong, int
&hieu)
{ tong = x + y; hieu = x y;
}
lOMoARcPSD| 40425501
NMLT - H m (Function) NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com)
VC
VC
&
&
BB
BB
B
BBB
Lời gọi h m
lOMoARcPSD| 40425501
NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com)
NMLT -Hm (Function
)
CÆch thực hiện
Gọi tŒn của h m ồng thời truyền cÆc i
số
(hằng, biến, biểu thc) cho cÆc tham số
theo œng thứ tự ª ược khai bÆo trong h
m.
c biến hoặc trị n y cÆch nhau bằng
dấu ,
c ối số n y ược ược ặt trong cặp dấu
ngoặc ơn ( )
<tŒn h m> (<ối số 1>, , <ối số n>);
NMLT - H m (Function)
l
O
M
o
A
R
c
P
S
D
|
4
0
4
2
5
5
0
1
NMLT - H m (Function) NMLT - H m (Function)
D
o
w
nl
oa
de
d
by
M
ai
Le
Th
i
N
gu
ye
t
(h
oa
th
an
vu
72
9
@
g
m
ail
.c
o
m)
VC
VC
&
&
BB
BB
l
O
M
o
A
R
c
P
S
D
|
4
0
4
2
5
5
0
1
NMLT - H m (Function)
D
o
w
nl
oa
de
d
by
M
ai
Le
Th
i
N
gu
ye
t
(h
oa
th
an
vu
72
9
@
g
m
ail
.c
o
m)
NMLT -Hm (Function
)
Lời gọi h m
l
O
M
o
A
R
c
P
S
D
|
4
0
4
2
5
5
0
1
NMLT - H m (Function) NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet
(hoathanvu729@gmail.com)
VC
VC
&
&
BB
BB
&&
l
O
M
o
A
R
c
P
S
D
|
4
0
4
2
5
5
0
1
NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet
(hoathanvu729@gmail.com)
NMLT -Hm (Function
)
VC
VC
Lời gọi chương tr nh con
l
O
M
o
A
R
c
P
S
D
|
4
0
4
2
5
5
0
1
NMLT - H m (Function) NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet
(hoathanvu729@gmail.com)
VC
VC
&
&
BB
BB
BBBB
lOMoARcPSD| 40425501
NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com)
NMLT -Hm (Function
)
VCVCBBBB&& Đệ quy
lOMoARcPSD| 40425501
NMLT - H m (Function) NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com)
VC
VC
&
&
BB
BB
KhÆi niệm
Một chương tr nh con c thể gọi mt
chương tr nh con khÆc.
Nếu gọi ch nh n th ược gọi l sự
quy.
Số lần gọi n y phải c giới hạn ( iểm
dừng)
V d
T nh S(n) = n! = 1*2* *(n-1)*n
Ta thấy S(n) = S(n-1)*n
Vậy thay v t nh S(n) ta sẽ i t nh S(n-1)
lOMoARcPSD| 40425501
NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com)
NMLT -Hm (Function
)
Tương tự t nh S(n-2), , S(2), S(1),
lOMoARcPSD| 40425501
NMLT - H m (Function) NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com)
VC
VC
&
&
BB
BB
S(0) = 1
lOMoARcPSD| 40425501
NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com)
NMLT -Hm (Function
)
BBBB Đệ quy
lOMoARcPSD| 40425501
NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com)
NMLT -Hm (Function
)
V d
int GiaiThua(int n)
{ if (n == 0) return
1;
else return GiaiThua(n 1) * n;
} int GiaiThua(int
n)
{ if (n > 0) return GiaiThua(n 1) * n;
else return 1;
}
NMLT - H m (Function)
B i tập thực h nh
5. B i 4, 5, 6, 7, 8 trang 140-141 chương 8 (C u
lệnh iều kiện v rẽ nhÆnh)
a. Viết h m ổi một k tự hoa sang k tự thưng.
b. Viết thủ tục giải phương tr nh bậc nht.
c. Viết thủ tục giải phương tr nh bậc hai.
d. Viết h m trả về giÆ trị nhnht của 4 số
nguyŒn.
e. Viết thủ tục hoÆn vị hai số nguyŒn.
f. Viết thủ tục sắp xếp 4 số nguyŒn
tăng dần.
NMLT - H m (Function)
lOMoARcPSD| 40425501
NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com)
NMLT -Hm (Function
)
VC
VC
BBBB&& B i tập thực h nh
lOMoARcPSD| 40425501
NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com)
NMLT -Hm (Function
)
6. B i tập 3 trang 155 chương 9 (C u lệnh lặp). H m
nhận v o mt số nguyŒn dương n v thực hiện: a.
Trả về số ảo của số .
b. C phải l số ối xứng (Trả về True/False)
c. C phải l số ch nh phương.
d. C phải l số nguyŒn tố.
e. Tổng cÆc chữ số lẻ.
f. Tổng cÆc chữ số nguyŒn tố.
g. Tổng cÆc chữ số ch nh phương.
&&
lOMoARcPSD| 40425501
NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com)
NMLT -Hm (Function
)
VC
VC B i tập thực h nh
lOMoARcPSD| 40425501
NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com)
NMLT -Hm (Function
)
BBBB
7. B i tập 4 trang 156 chương 9 (C u lệnh lặp). H m
nhận v o mt số nguyŒn dương n v thực hiện: a.
S = 1 + 2 + + n
b. S = 1
2
+ 2
2
+ + n
2
c. S = 1 + 1/2 + + 1/n
d. S = 1 * 2 * * n
e. S = 1! + 2! + + n!
8. H m trả về USCLN của 2 số nguyŒn.
9. In ra n phần tử của dªy Fibonacy.

Preview text:

lOMoAR cPSD| 40425501 Nội dung NMLT - H m (Function) NMLT - H m (Function) lOMoAR cPSD| 40425501 & & VC VC BB BB Đặt vấn ề printf( Nhap mot so nguyen duong: ); scanf( %d , &a); printf( Nhap mot so nguyen duong: ); scanf( %d , &b); printf( Nhap mot
so nguyen duong: ); scanf( %d , &c); NMLT - H m (Function) & lOMoAR cPSD| 40425501 & VC VC BB BB Đặt vấn ề Đặt vấn ề
3 oạn lệnh t nh s1 = a!, s2 = b!, s3 = c!
Giải phÆp => Viết 1 lần v sử dụng nhiều lần
{ T nh s1 = a! = 1 * 2 * * a } s1 = 1; for
 Đoạn lệnh nhập tổng quÆt, với n = a, b,
(i = 2; i <= a ; i++) c s1 = s1 * i;
do { printf( Nhap mot so nguyen duong: );
{ T nh s2 = b! = 1 * 2 * * b } s2 = 1; for scanf( %d , &n);
(i = 2; i <= b ; i++) } while (n <= 0); s2 = s2 * i;
 Đoạn lệnh t nh giai thừa tổng quÆt, n = a, b,
{ T nh s3 = c! = 1 * 2 * * c } s3 = 1; for (i = 2; i <= c ; i++) c s3 = s3 * i;
{ T nh s = n! = 1 * 2 * * n } NMLT - H m (Function)
s = 1; for (i = 2; i <= n ; i++) s = s * i; NMLT - H m (Function) && NMLT - H m (Function) NMLT - H m (Function) & lOMoAR cPSD| 40425501 & VC VC BB BB VCVCBBBB H m NMLT - H m (Function) & lOMoAR cPSD| 40425501 & VC VC BB BB KhÆi niệm 
Một oạn chương tr nh c tŒn, ầu v o v ầu ra.  C
chức năng giải quyết một số
vấn ề chuyŒn biệt cho chương tr nh ch nh. 
Được gọi nhiều lần với cÆc tham số khÆc nhau. 
Được sử dụng khi c nhu cầu: TÆi sử dụng. Sửa lỗi v cải tiến. && NMLT - H m (Function) NMLT - H m (Function) & lOMoAR cPSD| 40425501 & VC VC BB BB VCVCBBBB H m NMLT - H m (Function) & lOMoAR cPSD| 40425501 & VC VC BB BB Cœ phÆp
([danh sÆch tham số]) { [return ;] }  Trong
: kiểu bất kỳ của C (char, int,
long, float, ). Nếu kh ng trả về th l void. h m>: theo quy tắc ặt tŒn ịnh danh. : tham số h nh thức ầu
v o giống khai bÆo biến, cÆch nhau bằng H m V dụ 1  TŒn h m: XuatTong 
C ng việc: t nh v xuất tổng 2 số nguyŒn 
Đầu v o: hai số nguyŒn x v y  Đầu ra: kh ng c
void XuatTong(int x, int y) { int s; s = x + y;
printf( %d cong %d bang %d , x, y, s); } NMLT - H m (Function)
dấu , : trả về cho h m qua lệnh return. NMLT - H m (Function) NMLT - H m (Function) & lOMoAR cPSD| 40425501 & VC VC BB BB && NMLT - H m (Function) & lOMoAR cPSD| 40425501 & VC VC BB BB VCVCBBBB H m NMLT - H m (Function) NMLT - H m (Function) & lOMoAR cPSD| 40425501 & VC VC BB BB V dụ 2  TŒn h m: TinhTong 
C ng việc: t nh v trả về tổng 2 số nguyŒn 
Đầu v o: hai số nguyŒn x v y 
Đầu ra: một số nguyŒn c giÆ trị x + y
int TinhTong(int x, int y) { int s; s = x + y; return s; } && NMLT - H m (Function) & lOMoAR cPSD| 40425501 & VC VC BB BB
VCVCBBBB Chương tr nh con - Function NMLT - H m (Function) NMLT - H m (Function) & lOMoAR cPSD| 40425501 & VC VC BB BB V dụ 3  TŒn h m: NhapXuatTong 
C ng việc: nhập v xuất tổng 2 số nguyŒn 
Đầu v o: kh ng c  Đầu ra: kh ng c void NhapXuatTong()
{ int x, y; printf( Nhap 2 so nguyen: );
scanf( %d%d , &x, &y); printf( %d cong
%d bang %d , x, y, x + y);
} NMLT - H m (Function) lOMoAR cPSD| 40425501 & & VC VC BB BB Tầm vực KhÆi niệm  L
phạm vi hiệu quả của biến v h m.  Biến:
To n cục: khai bÆo trong ngo i tất cả cÆc h m
(kể cả h m main) v c tÆc dụng lŒn to n bộ chương tr nh.
Cục bộ: khai bÆo trong h m hoặc khối { } v chỉ
c tÆc dụng trong bản th n h m hoặc khối khối
con n ). Biến cục bộ sẽ bị x a khỏi bộ nhớ khi
kết thœc khối khai bÆo n . NMLT - H m (Function) && NMLT - H m (Function) NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) lOMoAR cPSD| 40425501
VCVCBBBB Một số lưu NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) NMLT -Hm (Function ) & lOMoAR cPSD| 40425501 & VC VC BB BB
Th ng thường người ta thường ặt phần tiŒu ề
h m/nguyŒn mẫu h m (prototype) trŒn h m
main v phần ịnh nghĩa h m dưới h m main.
void XuatTong(int x, int y); // prototype void main() { }
void XuatTong(int x, int y)
{ printf( %d cong %d bang %d , x, y, x + y); } NMLT - H m (Function) NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) lOMoAR cPSD| 40425501
VCVCBBBB&& CÆc cÆch truyền ối số NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) NMLT -Hm (Function ) & lOMoAR cPSD| 40425501 & VC VC BB BB
Truyền GiÆ trị (Call by Value)
CÆc cÆch truyền ối số
 Truyền ối số cho h m ở dạng giÆ trị.
Truyền Địa chỉ (Call by Address) 
C thể truyền hằng, biến, biểu thức 
Truyền ối số cho h m ở dạng ịa chỉ
nhưng h m chỉ sẽ nhận giÆ trị. (con trỏ). 
Được sử dụng khi kh ng c nhu cầu 
Kh ng ược truyền giÆ trị cho tham
thay ổi giÆ trị của tham số sau khi thực hiện số n y. h m.  Được sử dụng khi c nhu cầu
void TruyenGiaTri(int x)
thay ổi giÆ trị của tham số sau khi thực { hiện h m. x++;
void TruyenDiaChi(int *x) { } *x++; } NMLT - H m (Function) NMLT - H m (Function) NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) lOMoAR cPSD| 40425501
CÆc cÆch truyền ối số
Truyền Tham chiếu (Call by Reference) (C++)
 Truyền ối số cho h m ở dạng ịa chỉ (con
trỏ). Được bắt ầu bằng & trong khai bÆo.
 Kh ng ược truyền giÆ trị cho tham số n y.
 Được sử dụng khi c nhu cầu thay ổi giÆ
trị của tham số sau khi thực hiện h m.
void TruyenThamChieu(int &x) { NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) NMLT -Hm (Function ) & lOMoAR cPSD| 40425501 & VC VC BB BB x++; NMLT - H m (Function) NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) lOMoAR cPSD| 40425501 } NMLT - H m (Function) && NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) NMLT -Hm (Function ) & lOMoAR cPSD| 40425501 & VC VC BB BB
VCVCBBBB Lưu khi truyền ối số NMLT - H m (Function) NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) lOMoAR cPSD| 40425501 Lưu &&
 Trong một h m, cÆc tham số c thể truyền theo nhiều cÆch.
void HonHop(int x, int &y) { x++; y++; } NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) NMLT -Hm (Function ) & lOMoAR cPSD| 40425501 & VC VC BB BB
VCVCBBBB Lưu khi truyền ối số NMLT - H m (Function) NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) lOMoAR cPSD| 40425501 Lưu
 Sử dụng tham chiếu l một cÆch
ể trả về giÆ trị cho chương tr nh.
int TinhTong(int x, int y) { return x + y; }
void TinhTong(int x, int y, int &tong) { tong = x + y; }
void TinhTongHieu(int x, int y, int &tong, int &hieu)
{ tong = x + y; hieu = x y; } NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) NMLT -Hm (Function ) & lOMoAR cPSD| 40425501 & VC VC BB BB BBBB Lời gọi h m NMLT - H m (Function) NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) lOMoAR cPSD| 40425501 CÆch thực hiện
 Gọi tŒn của h m ồng thời truyền cÆc ối số
(hằng, biến, biểu thức) cho cÆc tham số
theo œng thứ tự ª ược khai bÆo trong h m.
 CÆc biến hoặc trị n y cÆch nhau bằng dấu ,
 CÆc ối số n y ược ược ặt trong cặp dấu ngoặc ơn ( ) (<ối số 1>, , <ối số n>); NMLT - H m (Function) NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) NMLT -Hm (Function ) & & VC VC BB BB l O M o A R c P S D | 4 0 4 2 5 5 0 1 NMLT - H m (Function) NMLT - H m (Function) D o w nl oa de d by M ai Le Th i N gu ye t (h oa th an vu 72 9 @ g m ail .c o m) l O M o A R c P S D | 4 0 4 2 5 5 0 1 Lời gọi h m NMLT - H m (Function) D o w nl oa de d by M ai Le Th i N gu ye t (h oa th an vu 72 9 @ g m ail .c o NMLT -Hm (Function ) m) & & VC VC BB BB l O M o A R c P S D | 4 0 4 2 5 5 0 1 && NMLT - H m (Function) NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) l O M o A R c P S D | 4 0 4 2 5 5 0 1
VCVC Lời gọi chương tr nh con NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet NMLT -Hm (Function ) (hoathanvu729@gmail.com) & & VC VC BB BB l O M o A R c P S D | 4 0 4 2 5 5 0 1 BBBB NMLT - H m (Function) NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) lOMoAR cPSD| 40425501
VCVCBBBB&& Đệ quy NMLT - H m (Function) NMLT -Hm (Function )
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) & & VC VC BB BB lOMoAR cPSD| 40425501 KhÆi niệm 
Một chương tr nh con c thể gọi một chương tr nh con khÆc. 
Nếu gọi ch nh n th ược gọi l sự ệ quy.  Số lần gọi n y phải c giới hạn ( iểm dừng) V dụ  T nh S(n) = n! = 1*2* *(n-1)*n  Ta thấy S(n) = S(n-1)*n 
Vậy thay v t nh S(n) ta sẽ i t nh S(n-1) NMLT - H m (Function) NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) lOMoAR cPSD| 40425501 
Tương tự t nh S(n-2), , S(2), S(1), NMLT - H m (Function) NMLT -Hm (Function )
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) & & VC VC BB BB lOMoAR cPSD| 40425501 S(0) = 1 NMLT - H m (Function) NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) lOMoAR cPSD| 40425501 BBBB Đệ quy NMLT - H m (Function) NMLT -Hm (Function )
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) lOMoAR cPSD| 40425501 V dụ
a. Viết h m ổi một k tự hoa sang k tự thường. int GiaiThua(int n) b. { if (n == 0) return
Viết thủ tục giải phương tr nh bậc nhất. 1;
c. Viết thủ tục giải phương tr nh bậc hai.
else return GiaiThua(n 1) * n; } int GiaiThua(int
d. Viết h m trả về giÆ trị nhỏ nhất của 4 số n) nguyŒn.
{ if (n > 0) return GiaiThua(n 1) * n; else return 1;
e. Viết thủ tục hoÆn vị hai số nguyŒn. }
f. Viết thủ tục sắp xếp 4 số nguyŒn NMLT - H m (Function) tăng dần. B i tập thực h nh NMLT - H m (Function)
5. B i 4, 5, 6, 7, 8 trang 140-141 chương 8 (C u
lệnh iều kiện v rẽ nhÆnh) NMLT - H m (Function) NMLT -Hm (Function )
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) lOMoAR cPSD| 40425501
VCVCBBBB&& B i tập thực h nh NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) NMLT -Hm (Function ) lOMoAR cPSD| 40425501
6. B i tập 3 trang 155 chương 9 (C u lệnh lặp). H m
nhận v o một số nguyŒn dương n v thực hiện: a. Trả về số ảo của số . b. C phải l số
ối xứng (Trả về True/False)
c. C phải l số ch nh phương.
d. C phải l số nguyŒn tố.
e. Tổng cÆc chữ số lẻ.
f. Tổng cÆc chữ số nguyŒn tố.
g. Tổng cÆc chữ số ch nh phương. && NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) NMLT -Hm (Function ) lOMoAR cPSD| 40425501 VCVC B i tập thực h nh NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) NMLT -Hm (Function ) lOMoAR cPSD| 40425501 BBBB
7. B i tập 4 trang 156 chương 9 (C u lệnh lặp). H m
nhận v o một số nguyŒn dương n v thực hiện: a. S = 1 + 2 + + n b. S = 12 + 22 + + n2 c. S = 1 + 1/2 + + 1/n d. S = 1 * 2 * * n e. S = 1! + 2! + + n!
8. H m trả về USCLN của 2 số nguyŒn.
9. In ra n phần tử của dªy Fibonacy. NMLT - H m (Function)
Downloaded by Mai Le Thi Nguyet (hoathanvu729@gmail.com) NMLT -Hm (Function )