Thông tin tài liệu:
Bài giảng Nhập môn về lập trình - Chương 6: Hàm (Function) với mục tiêu giúp sinh viên biết xác định được thành phần của một hàm, hiện thực được giải thuật dưới dạng hàm, giải thích được các kiểu truyền tham số trong C, tổ chức được các chương trình lớn, gồm nhiều hàm,... Mời các bạn cùng tham khảo chi tiết nội dung bài giảng,
Nội dung trích xuất từ tài liệu:
Bài giảng Nhập môn về lập trình - Chương 6: Hàm (Function) Chương 6 Hàm (Function) Presenter:Nhập môn về lập trình (C6) Slide 1 Learning outcomes L.O.4.1 – Xác định được thành phần của một hàm. L.O.4.2 – Hiện thực được giải thuật dưới dạng hàm. L.O.4.3 – Giải thích được các kiểu truyền tham số trong C. L.O.4.4 – Tổ chức được các chương trình lớn, gồm nhiều hàm. L.O.3.5 – Hiện thực được các giải thuật đệ quy bằng ngôn ngữ C và hiểu được nguyên tắc hoạt động của nó.Nhập môn về lập trình (C6) Slide 2 Tổ chức chương trình C Cấu trúc module Mô tả module Tiền xử lý: • #include # • #define Khai báo / định nghĩa Khai báo / định nghĩa: • Hằng Hàm 1 • Biến • Hàm/biến extern • Mô tả hàm Hàm 2 Các hàm: • main được chạy đầu tiên. • Định nghĩa ngang cấp, không lồng nhau. Hàm 3 • Được gọi mới chạy.Nhập môn về lập trình (C6) Slide 3 Tổ chức chương trình C Project/solution : chương trình Mô tả module # Lập trình theo module Khai báo / định nghĩa Hàm 1 Hàm 2 Hàm 3 Mô tả module # Khai báo / định nghĩa Hàm 1 Hàm 2 Hàm 3 Mô tả module # Khai báo / định nghĩa Hàm 1 Chia ra Hàm 2 nhiều Hàm 3 .cpp Mô tả module # Khai báo / định nghĩa Hàm 1 Hàm 2 Source file Hàm 3Nhập môn về lập trình (C6) Slide 4 Hàm là gì ? Hàm là phương tiện phân chia code của module ra nhiều đơn vị nhỏ hơn để dễ quản lý và sửa chữa. Một dự án/giải pháp/chương trình = tập hợp N module Một Module = tập hợp N hàmNhập môn về lập trình (C6) Slide 5 Các vấn đề của hàm Khai báo hàm extern Mô tả trước Hàm Định nghĩa hàm Định nghĩa biến Lệnh thực thi Gọi hàm Trực tiếp Gián tiếp Truyền tham số hàm Trị Tham khảoNhập môn về lập trình (C6) Slide 6 Khai báo/định nghĩa hàm Cú pháp : [extern|static] [ret_type] name ([arglist]) { [statements]* [return expr;] [statements]* [return expr;] extern | static Ret_type Name( arglist ) ...