Slide 1 Trần Quang © 2016 Kỹ thuật lập trình 1 Chương 08 Hàm Chương 08 HÀM Trần Quang © 2016 Kỹ thuật lập trình 2 Chương 08 Hàm Hàm là gì? Hàm là một đơn vị xử lý, một chuỗi các lệnh có liên quan, đ[.]
Chương 08 HÀM Trần Quang © 2016 Chương 08: Hàm Kỹ thuật lập trình Hàm gì? Hàm đơn vị xử lý, chuỗi lệnh có liên quan, thực để hồn thành cơng việc Ví dụ thư viện ta có Trần Quang © 2016 Hàm sin(x) Là chuỗi lệnh để tính giá trị sin góc x truyền vào, góc x có đơn vị tính radian; hàm sin(x) trả số thực Hàm sqrt(x) Là chuỗi lệnh để tính bậc đại lượng x truyền vào, đại lượng x có đơn vị tính số thực (float hay double); hàm sqrt trả số thực Chương 08: Hàm Kỹ thuật lập trình Hàm gì? Hàm đơn vị tính tốn Nhận giá trị đầu vào Tính tốn Trả giá trị Các giá trị đầu vào Trần Quang © 2016 Chuỗi lệnh hàm Chương 08: Hàm Các giá trị đầu Kỹ thuật lập trình Lợi ích hàm Tránh lặp lại mã nguồn Tiết kiệm thời gian phát triển Thay đổi đoạn mã nguồn hàm nhanh dễ dàng, nơi Sử dụng lại đơn vị tính tốn mà khơng phải viết lại Trần Quang © 2016 Tiết kiệm thời gian phát triển Có thể chia sẻ đơn vị tính tốn khơng cho dự án mà cho nhiều dự án Chương 08: Hàm Kỹ thuật lập trình Hàm main Giá trị trả về: kiểu số nguyên int Tên hàm: “main” Một chương trình phải có 01 hàm main int main(){ // Các lệnh xử lý hàm main return 0; } Trả giá trị cho bên gọi hàm main Giá trị trả main: • Phải kiểu int • Có thể số • EXIT_SUCCESS (hoặc 0): chương trình kết thúc thành cơng • EXIT_FAILURE (hoặc 1): chương trình kết thúc với lỗi Trần Quang © 2016 Chương 08: Hàm Kỹ thuật lập trình Hàm thư viện Dùng thị #include < … > để thông báo với biên dịch có sử dụng thư viện Ví dụ: #include Khi gọi hàm cần biết Trần Quang © 2016 Tên hàm + cơng dụng hàm Các giá trị cần cung cấp cho hàm Giá trị trả hàm Chương 08: Hàm Kỹ thuật lập trình Tở chức chương trình C Module # Khai báo / định nghĩa Hàm Hàm Hàm Trần Quang © 2016 Tiền xử lý: #include #define Khai báo / định nghĩa: Hằng Biến Hàm/biến extern Mô tả hàm Các hàm: main chạy Định nghĩa ngang cấp, không lồng Được gọi chạy Chương 08: Hàm Kỹ thuật lập trình Tở chức chương trình C Project bao gồm nhiều module Module # Khai báo / định nghĩa Hàm Hàm Hàm Module # Khai báo / định nghĩa Hàm Hàm Module Hàm # Khai báo / định nghĩa Hàm Hàm Hàm Trần Quang © 2016 Chương 08: Hàm Kỹ thuật lập trình Khai báo hàm Phần mô tả hàm (header) Cú pháp : [extern|static] [ret_type] name ([arglist]) { [statements]* [return expr;] Phần thân hàm (body) [statements]* [return expr;] } extern (khai báo): hàm định nghĩa module khác static (định nghĩa): hàm gọi cục module chứa hàm Trần Quang © 2016 Chương 08: Hàm Kỹ thuật lập trình Khai báo hàm return expr; kết thúc hàm trả giá trị expr Giá trị expr gởi nơi gọi hàm để sử dụng arglist: danh sách tham số hình thức (hàm khơng có tham số), tham số cách dấu phẩy (,) mô tả theo cú pháp sau : type parameter_name [=defaultvalue] defaultvalue giá trị gán mặc định cho tham số không cung cấp lúc gọi hàm Trần Quang © 2016 Chương 08: Hàm Kỹ thuật lập trình 10 Tham số đối số int main(){ printf("10 + 15 = %d", add(10, 15)); system("pause"); return EXIT_SUCCESS; } 10: đối số tham số a 15: đối số tham số b Trần Quang © 2016 int add(int a, int b) { int c; c = a + b; return c; } Chương 08: Hàm Kỹ thuật lập trình 20