SlideShare a Scribd company logo
1 of 8
CHƯƠNG 4:


                                 HÀM
                          (FUNCTION)
Khoa Công Nghệ Thông Tin & Truyền Thông
Đại Học Cần Thơ




                                          1
Chương 4




                        Hà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


                                                      2
Chương 4




                       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         Sử dụng hàm
     Khai    báo hàm           Gọi   hàm
        Tên hàm                  Tên hàm
        Các tham số của hàm      ( )

        Kiểu trả về của hàm      Các đối số

     Định    nghĩa hàm         Nhậnkết quả trả
           Các lệnh            về của hàm
                                                   3
Chương 4


                   Ví Dụ Về Hàm
        Tên hàm          Các tham số


1  int Power(int base, unsigned int exponent)    Khai báo hàm
2  {
3     int result = 1;
4     for (int i = 0; i < exponent; ++i)
 5        result *= base;                        Định nghĩa hàm
 6    return result;
 7 }

  8 main (void)                                   Các đối số
  9 {
 10    cout << "2 ^ 8 = "<< Power(2,8)<< 'n';
 11
12 }


                        Định nghĩa hàm
                                                               4
Chương 4




    Phạm Vi Toàn Cục – Cục Bộ
    Phạm vi toàn cục        int xyz = 1;            // xyz là toàn cục
                             void Foo (int xyz) // xyz là cục bộ cho thân của
       Được  định nghĩa ở   Foo
                             {
        phạm vi chương            if (xyz > 0) {
                                       double xyz =2; // xyz là cục bộ cho khối này
        trình                          cout <<xyz;
                                  }
    Phạm vi cục bộ               else {
                                        cout<< ::xyz;
       Được định nghĩa ở         }
                             }
        phạm vi khối hay
        hàm
    Toán tử phạm vi
       ::
                                                                                 5
Chương 4




      Biế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;


                                                               6
Chương 4


      Hà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)
                inline int Abs (int n)
                {
                    return n > 0 ? n : -n;
                }

   Đệ qui                                   int Factorial (unsigned int n)
                                             {
     Một   hàm gọi chính nó                      return n == 0 ? 1 : n * Factorial(n-1);
                                             }

                                                                                      7
Chương 4




Đố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[]);

                                                           8

More Related Content

What's hot

3 Function
3 Function3 Function
3 FunctionCuong
 
Phần 7: Mảng một chiều
Phần 7: Mảng một chiềuPhần 7: Mảng một chiều
Phần 7: Mảng một chiềuHuy Rùa
 
Phần 6: Hàm
Phần 6: HàmPhần 6: Hàm
Phần 6: HàmHuy Rùa
 
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
 
Nmlt C06 Ham
Nmlt C06 HamNmlt C06 Ham
Nmlt C06 HamCuong
 
lap trinh c Phan2 chuong5
 lap trinh c Phan2 chuong5 lap trinh c Phan2 chuong5
lap trinh c Phan2 chuong5thanhyu
 
Nmlt C08 Mang2 Chieu
Nmlt C08 Mang2 ChieuNmlt C08 Mang2 Chieu
Nmlt C08 Mang2 ChieuCuong
 
Phần 3: Các kiểu dữ liệu cơ sở
Phần 3: Các kiểu dữ liệu cơ sởPhần 3: Các kiểu dữ liệu cơ sở
Phần 3: Các kiểu dữ liệu cơ sởHuy Rùa
 
Nmlt C07 Mang1 Chieu
Nmlt C07 Mang1 ChieuNmlt C07 Mang1 Chieu
Nmlt C07 Mang1 ChieuCuong
 

What's hot (14)

3 Function
3 Function3 Function
3 Function
 
Phần 7: Mảng một chiều
Phần 7: Mảng một chiềuPhần 7: Mảng một chiều
Phần 7: Mảng một chiều
 
Phần 6: Hàm
Phần 6: HàmPhần 6: Hàm
Phần 6: Hàm
 
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)
 
Nmlt C06 Ham
Nmlt C06 HamNmlt C06 Ham
Nmlt C06 Ham
 
lap trinh c Phan2 chuong5
 lap trinh c Phan2 chuong5 lap trinh c Phan2 chuong5
lap trinh c Phan2 chuong5
 
Nmlt C08 Mang2 Chieu
Nmlt C08 Mang2 ChieuNmlt C08 Mang2 Chieu
Nmlt C08 Mang2 Chieu
 
Mang1 chieu
Mang1 chieuMang1 chieu
Mang1 chieu
 
Phần 3: Các kiểu dữ liệu cơ sở
Phần 3: Các kiểu dữ liệu cơ sởPhần 3: Các kiểu dữ liệu cơ sở
Phần 3: Các kiểu dữ liệu cơ sở
 
Nmlt C07 Mang1 Chieu
Nmlt C07 Mang1 ChieuNmlt C07 Mang1 Chieu
Nmlt C07 Mang1 Chieu
 
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
 
Session 15
Session 15Session 15
Session 15
 
Lesson07
Lesson07Lesson07
Lesson07
 

Viewers also liked

Smarthones 2012 - 5 main trends
Smarthones 2012 - 5 main trendsSmarthones 2012 - 5 main trends
Smarthones 2012 - 5 main trendsSergey Ezyk
 
A Day in the Life As : Radiation Therapy Technologist in IndiA
A Day in the Life As : Radiation Therapy Technologist in IndiAA Day in the Life As : Radiation Therapy Technologist in IndiA
A Day in the Life As : Radiation Therapy Technologist in IndiATeekendra Singh Faujdar
 
Presentatie Nico de Boer
Presentatie Nico de BoerPresentatie Nico de Boer
Presentatie Nico de Boerpieterdestefano
 
ฟรอยด์
ฟรอยด์ฟรอยด์
ฟรอยด์nurul027
 
Urbanization and economy complexity. Kazakhstan's case
Urbanization and economy complexity. Kazakhstan's caseUrbanization and economy complexity. Kazakhstan's case
Urbanization and economy complexity. Kazakhstan's caseAnuar Buranbayev
 
Powerpoint97 2003
Powerpoint97 2003Powerpoint97 2003
Powerpoint97 2003heatherhess
 
5 основных тенденций индустрии смартфонов 2013 / 5 main smartphones trends in...
5 основных тенденций индустрии смартфонов 2013 / 5 main smartphones trends in...5 основных тенденций индустрии смартфонов 2013 / 5 main smartphones trends in...
5 основных тенденций индустрии смартфонов 2013 / 5 main smartphones trends in...Sergey Ezyk
 

Viewers also liked (9)

c3 mang2 chieu
c3 mang2 chieuc3 mang2 chieu
c3 mang2 chieu
 
Smarthones 2012 - 5 main trends
Smarthones 2012 - 5 main trendsSmarthones 2012 - 5 main trends
Smarthones 2012 - 5 main trends
 
A Day in the Life As : Radiation Therapy Technologist in IndiA
A Day in the Life As : Radiation Therapy Technologist in IndiAA Day in the Life As : Radiation Therapy Technologist in IndiA
A Day in the Life As : Radiation Therapy Technologist in IndiA
 
Lesson06
Lesson06Lesson06
Lesson06
 
Presentatie Nico de Boer
Presentatie Nico de BoerPresentatie Nico de Boer
Presentatie Nico de Boer
 
ฟรอยด์
ฟรอยด์ฟรอยด์
ฟรอยด์
 
Urbanization and economy complexity. Kazakhstan's case
Urbanization and economy complexity. Kazakhstan's caseUrbanization and economy complexity. Kazakhstan's case
Urbanization and economy complexity. Kazakhstan's case
 
Powerpoint97 2003
Powerpoint97 2003Powerpoint97 2003
Powerpoint97 2003
 
5 основных тенденций индустрии смартфонов 2013 / 5 main smartphones trends in...
5 основных тенденций индустрии смартфонов 2013 / 5 main smartphones trends in...5 основных тенденций индустрии смартфонов 2013 / 5 main smartphones trends in...
5 основных тенденций индустрии смартфонов 2013 / 5 main smartphones trends in...
 

Similar to Lesson04

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
 
Hàm và Chuỗi
Hàm và ChuỗiHàm và Chuỗi
Hàm và Chuỗipnanhvn
 
Lec3. Ham.pdf
Lec3. Ham.pdfLec3. Ham.pdf
Lec3. Ham.pdfKinHongnh
 
3 Function
3 Function3 Function
3 FunctionCuong
 
Phan2 chuong5 ctrinhcon
Phan2 chuong5 ctrinhconPhan2 chuong5 ctrinhcon
Phan2 chuong5 ctrinhconLy hai
 
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
 
OOP_02_Java can ban.pdf
OOP_02_Java can ban.pdfOOP_02_Java can ban.pdf
OOP_02_Java can ban.pdfssuserd01a5c
 
C3 functions and_library
C3 functions and_libraryC3 functions and_library
C3 functions and_libraryHồ Lợi
 
Session 4
Session 4Session 4
Session 4pnanhvn
 
01 ngon ngu_c#_phan_1
01 ngon ngu_c#_phan_101 ngon ngu_c#_phan_1
01 ngon ngu_c#_phan_1htpsccbb159
 

Similar to Lesson04 (20)

Lesson04
Lesson04Lesson04
Lesson04
 
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
 
Chuong 04 ham
Chuong 04 hamChuong 04 ham
Chuong 04 ham
 
Hàm và Chuỗi
Hàm và ChuỗiHàm và Chuỗi
Hàm và Chuỗi
 
Chapter03 function
Chapter03 functionChapter03 function
Chapter03 function
 
Session 15
Session 15Session 15
Session 15
 
Nmlt c06 ham
Nmlt c06 hamNmlt c06 ham
Nmlt c06 ham
 
Lec3. Ham.pdf
Lec3. Ham.pdfLec3. Ham.pdf
Lec3. Ham.pdf
 
3 Function
3 Function3 Function
3 Function
 
Phan2 chuong5 ctrinhcon
Phan2 chuong5 ctrinhconPhan2 chuong5 ctrinhcon
Phan2 chuong5 ctrinhcon
 
hàm_nocopy.pdf
hàm_nocopy.pdfhàm_nocopy.pdf
hàm_nocopy.pdf
 
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
 
OOP_02_Java can ban.pdf
OOP_02_Java can ban.pdfOOP_02_Java can ban.pdf
OOP_02_Java can ban.pdf
 
Con tro ham c++
Con tro ham c++Con tro ham c++
Con tro ham c++
 
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
 
Session 4
Session 4Session 4
Session 4
 
01 ngon ngu_c#_phan_1
01 ngon ngu_c#_phan_101 ngon ngu_c#_phan_1
01 ngon ngu_c#_phan_1
 
01 ngon ngu_c#_phan_1
01 ngon ngu_c#_phan_101 ngon ngu_c#_phan_1
01 ngon ngu_c#_phan_1
 
Bai 17
Bai 17Bai 17
Bai 17
 

Lesson04

  • 1. CHƯƠNG 4: HÀM (FUNCTION) Khoa Công Nghệ Thông Tin & Truyền Thông Đại Học Cần Thơ 1
  • 2. Chương 4 Hà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 2
  • 3. Chương 4 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  Sử dụng hàm  Khai báo hàm  Gọi hàm  Tên hàm  Tên hàm  Các tham số của hàm  ( )  Kiểu trả về của hàm  Các đối số  Định nghĩa hàm  Nhậnkết quả trả  Các lệnh về của hàm 3
  • 4. Chương 4 Ví Dụ Về Hàm Tên hàm Các tham số 1 int Power(int base, unsigned int exponent) Khai báo hàm 2 { 3 int result = 1; 4 for (int i = 0; i < exponent; ++i) 5 result *= base; Định nghĩa hàm 6 return result; 7 } 8 main (void) Các đối số 9 { 10 cout << "2 ^ 8 = "<< Power(2,8)<< 'n'; 11 12 } Định nghĩa hàm 4
  • 5. Chương 4 Phạm Vi Toàn Cục – Cục Bộ  Phạm vi toàn cục int xyz = 1; // xyz là toàn cục void Foo (int xyz) // xyz là cục bộ cho thân của  Được định nghĩa ở Foo { phạm vi chương if (xyz > 0) { double xyz =2; // xyz là cục bộ cho khối này trình cout <<xyz; }  Phạm vi cục bộ else { cout<< ::xyz;  Được định nghĩa ở } } phạm vi khối hay hàm  Toán tử phạm vi  :: 5
  • 6. Chương 4 Biế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; 6
  • 7. Chương 4 Hà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) inline int Abs (int n) { return n > 0 ? n : -n; }  Đệ qui int Factorial (unsigned int n) {  Một hàm gọi chính nó return n == 0 ? 1 : n * Factorial(n-1); } 7
  • 8. Chương 4 Đố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[]); 8