Hàm in - Nhập môn lập trình | Trường Đại học CNTT Thành Phố Hồ Chí Minh

Hàm in - Nhập môn lập trình | Trường Đại học CNTT Thành Phố Hồ Chí Minh được được sưu tầm và soạn thảo dưới dạng file PDF để gửi tới các bạn sinh viên cùng tham khảo, ôn tập đầy đủ kiến thức, chuẩn bị cho các buổi học thật tốt. Mời bạn đọc đón xem!

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.
| 1/41

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 )