SlideShare a Scribd company logo
1 of 8
1
Khoa Công Nghệ Thông Tin & Truyền Thông
Đại Học Cần Thơ
HÀMHÀM
CHƯƠNG 4:CHƯƠNG 4:
(FUNCTION)(FUNCTION)
2
HàmHàm
 Mục tiêu
Mô tả cách khai báo, định nghĩa, và gọi hàm
 Nội dung
Khai báo hàm, định nghĩa hàm
Tham số, đối số, phạm vi
Biến tự động, biến thanh ghi, biến nội tuyến
Đối số mặc định, đối số hàng lệnh
Chương 4
3
Hàm Là Gì?Hàm Là Gì?
 Một phương thức để đóng gói quá trình
tính toán  dễ dàng sử dụng
 Định nghĩa hàm
Khai báo hàm
 Tên hàm
 Các tham số của hàm
 Kiểu trả về của hàm
 Một phương thức để đóng gói quá trình
tính toán  dễ dàng sử dụng
 Định nghĩa hàm
Khai báo hàm
 Tên hàm
 Các tham số của hàm
 Kiểu trả về của hàm
Định nghĩa hàm
 Các lệnh
 Sử dụng hàm
Gọi hàm
 Tên hàm
 ( )
 Các đối số
Nhận kết quả trả
về của hàm
Chương 4
4
Ví Dụ Về HàmVí Dụ Về Hàm
1
2
3
4
5
6
7
8
9
10
11
12
int Power(int base, unsigned int exponent)
{
int result = 1;
for (int i = 0; i < exponent; ++i)
result *= base;
return result;
}
main (void)
{
cout << "2 ^ 8 = "<< Power(2,8)<< 'n';
}
Tên hàm Các tham số
Khai báo hàm
Định nghĩa hàm
Định nghĩa hàm
Các đối số
Chương 4
5
Phạm Vi Toàn Cục – Cục BộPhạm Vi Toàn Cục – Cục Bộ
 Phạm vi toàn cục
 Được định nghĩa ở
phạm vi chương
trình
 Phạm vi cục bộ
 Được định nghĩa ở
phạm vi khối hay
hàm
 Toán tử phạm vi
 ::
int xyz = 1; // xyz là toàn cục
void Foo (int xyz) // xyz là cục bộ cho thân của Foo
{
if (xyz > 0) {
double xyz =2; // xyz là cục bộ cho khối này
cout <<xyz;
}
else {
cout<< ::xyz;
}
}
Chương 4
6
Biến Tự Động – Thanh GhiBiến Tự Động – Thanh Ghi
 Biến tự động
 được xác định hoàn toàn tự động
 Ví dụ: int auto sum;
 Biến thanh ghi
 được lưu trữ trong thanh ghi để tăng hiệu xuất của
chương trình
 Ví dụ:
for (register int i = 0; i < n; ++i)
sum += i;
Chương 4
7
Hàm Nội Tuyến – Đệ QuiHàm Nội Tuyến – Đệ Qui
 Sử dụng hàm
Thuận lợi: chương trình dễ đọc, tăng khả năng
sử dụng lại, tránh các hiệu ứng phụ
Bất lợi: tốn chi phí cho việc gọi hàm
Giải pháp: định nghĩa hàm là nội tuyến (inline)
 Đệ qui
Một hàm gọi chính nó
inline int Abs (int n)
{
return n > 0 ? n : -n;
}
int Factorial (unsigned int n)
{
return n == 0 ? 1 : n * Factorial(n-1);
}
Chương 4
8
Đối Số Mặc Định - Hàng LệnhĐối Số Mặc Định - Hàng Lệnh
 Đối số mặc định
bỏ bớt đi gánh nặng phải chỉ định các giá trị
của đối số cho tất cả các tham số hàm
 Đối số hàng lệnh
Có thể nhận không hay nhiều đối số từ hàng
lệnh
 được tạo ra sẵn cho một chương trình C++ thông
qua hàm main
 Ví dụ: int main (int argc, const char* argv[]);
Chương 4

More Related Content

What's hot

Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)
Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)
Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)Thanh Minh Hoang
 
Bài Giảng Ngôn Ngữ Lập Trình CC++ - Con Trỏ Và Số Học Địa Chỉ
Bài Giảng Ngôn Ngữ Lập Trình CC++ - Con Trỏ Và Số Học Địa Chỉ Bài Giảng Ngôn Ngữ Lập Trình CC++ - Con Trỏ Và Số Học Địa Chỉ
Bài Giảng Ngôn Ngữ Lập Trình CC++ - Con Trỏ Và Số Học Địa Chỉ nataliej4
 
Nmlt C06 Ham
Nmlt C06 HamNmlt C06 Ham
Nmlt C06 HamCuong
 
Phần 12: Hàm (Nâng cao)
Phần 12: Hàm (Nâng cao)Phần 12: Hàm (Nâng cao)
Phần 12: Hàm (Nâng cao)Huy Rùa
 
LAP TRINH C - SESSION 2
LAP TRINH C - SESSION 2LAP TRINH C - SESSION 2
LAP TRINH C - SESSION 2pnanhvn
 
Nmlt c11 con_trocoban-
Nmlt c11 con_trocoban-Nmlt c11 con_trocoban-
Nmlt c11 con_trocoban-Minh Ngoc Tran
 
Phần 6: Hàm
Phần 6: HàmPhần 6: Hàm
Phần 6: HàmHuy Rùa
 

What's hot (15)

Session 13
Session 13Session 13
Session 13
 
Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)
Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)
Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)
 
Lesson05
Lesson05Lesson05
Lesson05
 
Chuong 04 ham
Chuong 04 hamChuong 04 ham
Chuong 04 ham
 
Bài Giảng Ngôn Ngữ Lập Trình CC++ - Con Trỏ Và Số Học Địa Chỉ
Bài Giảng Ngôn Ngữ Lập Trình CC++ - Con Trỏ Và Số Học Địa Chỉ Bài Giảng Ngôn Ngữ Lập Trình CC++ - Con Trỏ Và Số Học Địa Chỉ
Bài Giảng Ngôn Ngữ Lập Trình CC++ - Con Trỏ Và Số Học Địa Chỉ
 
Ctdl lab01
Ctdl lab01Ctdl lab01
Ctdl lab01
 
Nmlt C06 Ham
Nmlt C06 HamNmlt C06 Ham
Nmlt C06 Ham
 
Session 15
Session 15Session 15
Session 15
 
Phần 12: Hàm (Nâng cao)
Phần 12: Hàm (Nâng cao)Phần 12: Hàm (Nâng cao)
Phần 12: Hàm (Nâng cao)
 
Nmlt c06 ham
Nmlt c06 hamNmlt c06 ham
Nmlt c06 ham
 
LAP TRINH C - SESSION 2
LAP TRINH C - SESSION 2LAP TRINH C - SESSION 2
LAP TRINH C - SESSION 2
 
Slide pointer sepro
Slide pointer seproSlide pointer sepro
Slide pointer sepro
 
Nmlt c06 ham_in
Nmlt c06 ham_inNmlt c06 ham_in
Nmlt c06 ham_in
 
Nmlt c11 con_trocoban-
Nmlt c11 con_trocoban-Nmlt c11 con_trocoban-
Nmlt c11 con_trocoban-
 
Phần 6: Hàm
Phần 6: HàmPhần 6: Hàm
Phần 6: Hàm
 

Viewers also liked

Bauwens Ina Presentatie
Bauwens Ina PresentatieBauwens Ina Presentatie
Bauwens Ina PresentatieInaBauwens
 
чотирикутники
чотирикутникичотирикутники
чотирикутникиbalazki1975
 
My high school subjects
My high school subjectsMy high school subjects
My high school subjectsjosejavi77
 
Executive summary presentation (fa ii)
Executive summary presentation (fa ii)Executive summary presentation (fa ii)
Executive summary presentation (fa ii)JeffOberg
 
sec 136 Dr enrique gonzalez martinez
sec 136 Dr enrique gonzalez martinez sec 136 Dr enrique gonzalez martinez
sec 136 Dr enrique gonzalez martinez Pau Almaraz
 
Promjena smjera vožnje
Promjena smjera vožnjePromjena smjera vožnje
Promjena smjera vožnjeprometna
 
Prometna Učilica: Štetna djelovanja prekomjernog pijenja alkohola kod adolesc...
Prometna Učilica: Štetna djelovanja prekomjernog pijenja alkohola kod adolesc...Prometna Učilica: Štetna djelovanja prekomjernog pijenja alkohola kod adolesc...
Prometna Učilica: Štetna djelovanja prekomjernog pijenja alkohola kod adolesc...prometna
 
Prometna Učilica - Mimoilaženje biciklom
Prometna Učilica - Mimoilaženje biciklomPrometna Učilica - Mimoilaženje biciklom
Prometna Učilica - Mimoilaženje biciklomprometna
 
Midterm presentation
Midterm presentationMidterm presentation
Midterm presentationTle Pichaya
 
Formazione tecnica Officine - Catalogo corsi 2014
Formazione tecnica Officine - Catalogo corsi 2014 Formazione tecnica Officine - Catalogo corsi 2014
Formazione tecnica Officine - Catalogo corsi 2014 Rete Officine Italia
 
циклограмма 13 14 уг.год
циклограмма 13 14 уг.годциклограмма 13 14 уг.год
циклограмма 13 14 уг.годtanja281261
 
Prometna Učilica - Pješačka staza
Prometna Učilica - Pješačka stazaPrometna Učilica - Pješačka staza
Prometna Učilica - Pješačka stazaprometna
 
Testing with anamation
Testing with anamationTesting with anamation
Testing with anamationsavantDev
 
Применение производной
Применение производнойПрименение производной
Применение производнойtanja281261
 
World War One Project
World War One ProjectWorld War One Project
World War One Projectschoolgirl21
 

Viewers also liked (19)

Bauwens Ina Presentatie
Bauwens Ina PresentatieBauwens Ina Presentatie
Bauwens Ina Presentatie
 
чотирикутники
чотирикутникичотирикутники
чотирикутники
 
My high school subjects
My high school subjectsMy high school subjects
My high school subjects
 
Executive summary presentation (fa ii)
Executive summary presentation (fa ii)Executive summary presentation (fa ii)
Executive summary presentation (fa ii)
 
sec 136 Dr enrique gonzalez martinez
sec 136 Dr enrique gonzalez martinez sec 136 Dr enrique gonzalez martinez
sec 136 Dr enrique gonzalez martinez
 
Promjena smjera vožnje
Promjena smjera vožnjePromjena smjera vožnje
Promjena smjera vožnje
 
Prometna Učilica: Štetna djelovanja prekomjernog pijenja alkohola kod adolesc...
Prometna Učilica: Štetna djelovanja prekomjernog pijenja alkohola kod adolesc...Prometna Učilica: Štetna djelovanja prekomjernog pijenja alkohola kod adolesc...
Prometna Učilica: Štetna djelovanja prekomjernog pijenja alkohola kod adolesc...
 
Balaji
BalajiBalaji
Balaji
 
Prometna Učilica - Mimoilaženje biciklom
Prometna Učilica - Mimoilaženje biciklomPrometna Učilica - Mimoilaženje biciklom
Prometna Učilica - Mimoilaženje biciklom
 
Midterm presentation
Midterm presentationMidterm presentation
Midterm presentation
 
Formazione tecnica Officine - Catalogo corsi 2014
Formazione tecnica Officine - Catalogo corsi 2014 Formazione tecnica Officine - Catalogo corsi 2014
Formazione tecnica Officine - Catalogo corsi 2014
 
Evolutionary Algorithms
Evolutionary AlgorithmsEvolutionary Algorithms
Evolutionary Algorithms
 
Guide 4
Guide 4Guide 4
Guide 4
 
4 4cake
4 4cake4 4cake
4 4cake
 
циклограмма 13 14 уг.год
циклограмма 13 14 уг.годциклограмма 13 14 уг.год
циклограмма 13 14 уг.год
 
Prometna Učilica - Pješačka staza
Prometna Učilica - Pješačka stazaPrometna Učilica - Pješačka staza
Prometna Učilica - Pješačka staza
 
Testing with anamation
Testing with anamationTesting with anamation
Testing with anamation
 
Применение производной
Применение производнойПрименение производной
Применение производной
 
World War One Project
World War One ProjectWorld War One Project
World War One Project
 

Similar to Lesson04

Hàm và Chuỗi
Hàm và ChuỗiHàm và Chuỗi
Hàm và Chuỗipnanhvn
 
Nmlt c15 ham_nangcao_phan1_in
Nmlt c15 ham_nangcao_phan1_inNmlt c15 ham_nangcao_phan1_in
Nmlt c15 ham_nangcao_phan1_inHuy Nguyễn
 
Hàm và nạp chồng hàm
Hàm và nạp chồng hàmHàm và nạp chồng hàm
Hàm và nạp chồng hàmLAnhHuy4
 
C3 functions and_library
C3 functions and_libraryC3 functions and_library
C3 functions and_libraryHồ Lợi
 
3 Function
3 Function3 Function
3 FunctionCuong
 
BÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPT
BÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPTBÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPT
BÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPTMasterCode.vn
 
Lec3. Ham.pdf
Lec3. Ham.pdfLec3. Ham.pdf
Lec3. Ham.pdfKinHongnh
 
Session 4
Session 4Session 4
Session 4pnanhvn
 
Gt ung dung tin hoc trong kinh doanh
Gt ung dung tin hoc trong kinh doanhGt ung dung tin hoc trong kinh doanh
Gt ung dung tin hoc trong kinh doanhvantai30
 
Fortran cơ sở
Fortran cơ sởFortran cơ sở
Fortran cơ sởHajunior9x
 

Similar to Lesson04 (20)

Hàm và Chuỗi
Hàm và ChuỗiHàm và Chuỗi
Hàm và Chuỗi
 
Nmlt c15 ham_nangcao_phan1_in
Nmlt c15 ham_nangcao_phan1_inNmlt c15 ham_nangcao_phan1_in
Nmlt c15 ham_nangcao_phan1_in
 
Hàm và nạp chồng hàm
Hàm và nạp chồng hàmHàm và nạp chồng hàm
Hàm và nạp chồng hàm
 
C3 functions and_library
C3 functions and_libraryC3 functions and_library
C3 functions and_library
 
C3 functions and_library
C3 functions and_libraryC3 functions and_library
C3 functions and_library
 
Chapter03 function
Chapter03 functionChapter03 function
Chapter03 function
 
3 Function
3 Function3 Function
3 Function
 
BÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPT
BÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPTBÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPT
BÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPT
 
Session 15
Session 15Session 15
Session 15
 
Ltc 6
Ltc 6Ltc 6
Ltc 6
 
Lec3. Ham.pdf
Lec3. Ham.pdfLec3. Ham.pdf
Lec3. Ham.pdf
 
LINQ
LINQLINQ
LINQ
 
Bai 17
Bai 17Bai 17
Bai 17
 
Session 4
Session 4Session 4
Session 4
 
Gt ung dung tin hoc trong kinh doanh
Gt ung dung tin hoc trong kinh doanhGt ung dung tin hoc trong kinh doanh
Gt ung dung tin hoc trong kinh doanh
 
P2
P2P2
P2
 
Con tro ham c++
Con tro ham c++Con tro ham c++
Con tro ham c++
 
Bai 18
Bai 18Bai 18
Bai 18
 
Web201 slide 3
Web201   slide 3Web201   slide 3
Web201 slide 3
 
Fortran cơ sở
Fortran cơ sởFortran cơ sở
Fortran cơ sở
 

More from Tuan Nguyen (10)

Lesson08
Lesson08Lesson08
Lesson08
 
Lesson07
Lesson07Lesson07
Lesson07
 
Lesson06
Lesson06Lesson06
Lesson06
 
Lesson05
Lesson05Lesson05
Lesson05
 
Lesson03
Lesson03Lesson03
Lesson03
 
Lesson02
Lesson02Lesson02
Lesson02
 
Lesson01
Lesson01Lesson01
Lesson01
 
Lesson00
Lesson00Lesson00
Lesson00
 
Lesson09
Lesson09Lesson09
Lesson09
 
Cac giai thuat co ban
Cac giai thuat co banCac giai thuat co ban
Cac giai thuat co ban
 

Lesson04

  • 1. 1 Khoa Công Nghệ Thông Tin & Truyền Thông Đại Học Cần Thơ HÀMHÀM CHƯƠNG 4:CHƯƠNG 4: (FUNCTION)(FUNCTION)
  • 2. 2 HàmHàm  Mục tiêu Mô tả cách khai báo, định nghĩa, và gọi hàm  Nội dung Khai báo hàm, định nghĩa hàm Tham số, đối số, phạm vi Biến tự động, biến thanh ghi, biến nội tuyến Đối số mặc định, đối số hàng lệnh Chương 4
  • 3. 3 Hàm Là Gì?Hàm Là Gì?  Một phương thức để đóng gói quá trình tính toán  dễ dàng sử dụng  Định nghĩa hàm Khai báo hàm  Tên hàm  Các tham số của hàm  Kiểu trả về của hàm  Một phương thức để đóng gói quá trình tính toán  dễ dàng sử dụng  Định nghĩa hàm Khai báo hàm  Tên hàm  Các tham số của hàm  Kiểu trả về của hàm Định nghĩa hàm  Các lệnh  Sử dụng hàm Gọi hàm  Tên hàm  ( )  Các đối số Nhận kết quả trả về của hàm Chương 4
  • 4. 4 Ví Dụ Về HàmVí Dụ Về Hàm 1 2 3 4 5 6 7 8 9 10 11 12 int Power(int base, unsigned int exponent) { int result = 1; for (int i = 0; i < exponent; ++i) result *= base; return result; } main (void) { cout << "2 ^ 8 = "<< Power(2,8)<< 'n'; } Tên hàm Các tham số Khai báo hàm Định nghĩa hàm Định nghĩa hàm Các đối số Chương 4
  • 5. 5 Phạm Vi Toàn Cục – Cục BộPhạm Vi Toàn Cục – Cục Bộ  Phạm vi toàn cục  Được định nghĩa ở phạm vi chương trình  Phạm vi cục bộ  Được định nghĩa ở phạm vi khối hay hàm  Toán tử phạm vi  :: int xyz = 1; // xyz là toàn cục void Foo (int xyz) // xyz là cục bộ cho thân của Foo { if (xyz > 0) { double xyz =2; // xyz là cục bộ cho khối này cout <<xyz; } else { cout<< ::xyz; } } Chương 4
  • 6. 6 Biến Tự Động – Thanh GhiBiến Tự Động – Thanh Ghi  Biến tự động  được xác định hoàn toàn tự động  Ví dụ: int auto sum;  Biến thanh ghi  được lưu trữ trong thanh ghi để tăng hiệu xuất của chương trình  Ví dụ: for (register int i = 0; i < n; ++i) sum += i; Chương 4
  • 7. 7 Hàm Nội Tuyến – Đệ QuiHàm Nội Tuyến – Đệ Qui  Sử dụng hàm Thuận lợi: chương trình dễ đọc, tăng khả năng sử dụng lại, tránh các hiệu ứng phụ Bất lợi: tốn chi phí cho việc gọi hàm Giải pháp: định nghĩa hàm là nội tuyến (inline)  Đệ qui Một hàm gọi chính nó inline int Abs (int n) { return n > 0 ? n : -n; } int Factorial (unsigned int n) { return n == 0 ? 1 : n * Factorial(n-1); } Chương 4
  • 8. 8 Đối Số Mặc Định - Hàng LệnhĐối Số Mặc Định - Hàng Lệnh  Đối số mặc định bỏ bớt đi gánh nặng phải chỉ định các giá trị của đối số cho tất cả các tham số hàm  Đối số hàng lệnh Có thể nhận không hay nhiều đối số từ hàng lệnh  được tạo ra sẵn cho một chương trình C++ thông qua hàm main  Ví dụ: int main (int argc, const char* argv[]); Chương 4