Bai 05 - Hàm
Bộ môn Khoa học máy tínhKhoa Công nghệ thông tinHọc viện Kỹ thuật quân sựChương 4: Hàm1HÀM (FUNCTION)CHƯƠNG 4: HàmChương 4: Hàm21. Mục tiêuMô tả cách khai báo, định nghĩa, và gọi hàm2. Nội dungKhai báo hàm, định nghĩa hàmTham số, đối số, phạm viBiế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 Hàm Là Gì?Chương 4: Hàm31. Một phương thức để đóng gói quá trình tính toán dễ dàng sử dụng2. Đị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ệnh3. Sử dụng hàmGọi hàm•Tên hàm•( )•Các đối sốNhận kết quả trả về của hàmChương 4 Ví Dụ Về Hàm1 2 3 4 56789101112 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';} Chương 4: Hàm4Tên hàmCác tham sốKhai báo hàmĐịnh nghĩa hàmĐịnh nghĩa hàmCác đối sốChương 4 Phạm Vi Toàn Cục – Cục BộChương 4: Hàm51. Phạm vi toàn cụcĐược định nghĩa ở phạm vi chương trình2. Phạm vi cục bộĐược định nghĩa ở phạm vi khối hay hàm3. Toán tử phạm vi::int xyz = 1; // xyz là toàn cụcvoid 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 Biến Tự Động – Thanh GhiChương 4: Hàm61. Biến tự độngđược xác định hoàn toàn tự độngVí dụ: int auto sum;2. Biến thanh ghiđược lưu trữ trong thanh ghi để tăng hiệu xuất của chương trìnhVí dụ: for (register int i = 0; i < n; ++i) sum += i;Chương 4 Hàm Nội Tuyến – Đệ QuiChương 4: Hàm71. Sử dụng hàmThuậ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àmGiải pháp: định nghĩa hàm là nội tuyến (inline)2. Đệ quiMộ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 Đối Số Mặc Định - Hàng LệnhChương 4: Hàm81. Đối số mặc địnhbỏ 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àm2. Đối số hàng lệnhCó 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 . sựChương 4: Hàm1 HÀM (FUNCTION)CHƯƠNG 4: HàmChương 4: Hàm2 1. Mục tiêuMô tả cách khai báo, định nghĩa, và gọi hàm2 . Nội dungKhai báo hàm, định nghĩa hàm Tham. hàm Kiểu trả về của hàm Định nghĩa hàm Các lệnh3. 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àmChương 4 Ví Dụ Về Hàm1 2 3 4 56789101112