Xem mẫu

  1. KỸ THUẬT LẬP TRÌNH C BÀI 5: HÀM VÀ CẤU TRÚC CHƯƠNG TRÌNH Hoàng Quốc Tuấn tuanhq@fpt.edu.vn http://hoangquoctuanpro.wordpress.com
  2. Nội dung I. Hàm và chương trình II. Ví dụ về chương trình có hàm III. Cách viết một hàm IV. Bài tập minh họa 2
  3. I – Hàm và chương trình Khái niệm về chương trình Khái niệm về hàm Tổ chức một chương trình trong C 3
  4. 1. Khái niệm về chương trình Chương trình bao gồm một hoặc nhiều hàm. Hàm main() là hàm bắt buộc phải có của một chương trình. Chương trình bắt đầu thực hiện từ câu lệnh đầu tiên của hàm main() cho đến khi kết thúc hàm này Trong hàm main() chứa đựng các câu lệnh và các lời gọi thực hiện các hàm khác. 4
  5. 2. Khái niệm hàm Hàm (Function) là một đoạn chương trình độc lập thực hiện trọn vẹn một công việc nhất định, rồi trả về một giá trị cho nơi gọi nó. Hàm là một đơn vị độc lập của chương trình, không cho phép định nghĩa một hàm bên trong một hàm khác. 5
  6. 3. Tổ chức một chương trình trong C Các khai báo #include hàm main #define MAX 10 int luy_thua(int n); .... void main() hàm 1 { .... .... } int luy_thua(int n) hàm 2 { ... .... } hàm n .... 6
  7. 3. Tổ chức một chương trình trong C Ở phần khai báo, ta có thể đặt các toán tử #include, #define, định nghĩa kiểu dữ liệu, khai báo mẫu hàm, khai báo biến toàn cục. Việc truyền dữ liệu và kết quả từ hàm này sang hàm khác được thực hiện theo hai cách: − Sử dụng tham số (đối số) của hàm. − Sử dụng biến toàn cục. 7
  8. II – Ví dụ về chương trình có hàm #include //khai báo thư viện long lap_phuong(int a); //khai báo mẫu hàm (prototype) void main() { int n; printf(“\nNhap n: ”); scanf(“%d”, &n); long kq = lap_phuong(n); printf(“\n%d lap phuong la: %ld”, n,kq); } long lap_phuong(int a) { long kq; kq = a*a*a; return kq; } 8
  9. II – Ví dụ về chương trình có hàm Kết quả khi chạy chương trình: Nhap n: 5 5 lap phuong la: 125 9
  10. III – Cách viết một hàm Xác định mục đích hàm Xác định các thành phần của hàm 10
  11. 1. Xác định mục đích hàm Để viết một hàm, trước hết phải xác định mục đích của hàm là dùng để làm gì, trên cơ sở đó mới xác định được các thành phần của hàm. 11
  12. 2. Xác định các thành phần của hàm Nguyên mẫu của hàm (prototype) Kiểu giá trị của hàm (return value) Tên hàm (function name) Tham số của hàm (parameter) Nội dung của hàm (function body) 12
  13. Nguyên mẫu hàm Cú pháp khai báo mẫu hàm: (danh sách đối số); Mỗi hàm nên được khai báo mẫu hàm trong phần khai báo. Khai báo mẫu hàm báo cho trình biên dịch biết sự hiện diện của hàm. VD: long lap_phuong(int ); 13
  14. Nguyên mẫu hàm #include //khai báo thư viện long lap_phuong(int a); //khai báo mẫu hàm (prototype) void main() { int n; printf(“\nNhap n: ”); scanf(“%d”, &n); long kq = lap_phuong(n); printf(“\n%d lap phuong la: %ld”, n,kq); } long lap_phuong(int a) { long kq; kq = a*a*a; return kq; } 14
  15. Kiểu giá trị của hàm Giá trị trả về của hàm phải được xác định dựa vào mục đích của hàm. Để trả về giá trị từ hàm, ta dùng câu lệnh return ; Kiểu dữ liệu của giá trị được trả về phải đúng với kiểu dữ liệu trả về đã xác định ban đầu. Trong trường hợp không trả về gì thì phải khai báo kiểu dữ liệu trả về là void. 15
  16. Kiểu giá trị của hàm #include //khai báo thư viện long lap_phuong(int a); //khai báo mẫu hàm (prototype) void main() { int n; printf(“\nNhap n: ”); scanf(“%d”, &n); long kq = lap_phuong(n); printf(“\n%d lap phuong la: %ld”, n,kq); } long lap_phuong(int a) { long kq; kq = a*a*a; return kq; } 16
  17. Tên hàm Tên hàm được đặt theo quy định với tên. Tên hàm nên đặt ngắn gọn và phản ánh được mục đích của hàm. Tên hàm trong nguyên mẫu và trong định nghĩa phải giống nhau. Tên hàm được dùng để gọi thực hiện hàm sau này. 17
  18. Tên hàm #include //khai báo thư viện long lap_phuong(int); //khai báo mẫu hàm (prototype) void main() { int n; printf(“\nNhap n: ”); scanf(“%d”, &n); long kq = lap_phuong(n); printf(“\n%d lap phuong la: %ld”, n,kq); } long lap_phuong(int a) { long kq; kq = a*a*a; return kq; } 18
  19. Tham số của hàm Tham số hình thức là tham số ghi trong mẫu hàm hay ghi lúc định nghĩa hàm. Tham số thực là các giá trị, biến mà ta truyền vào hàm khi gọi hàm. 19
  20. Tham số của hàm #include //khai báo thư viện long lap_phuong(int a); //khai báo mẫu hàm (prototype) void main() { tham số thực int n; printf(“\nNhap n: ”); scanf(“%d”, &n); long kq = lap_phuong(n); printf(“\n%d lap phuong la: %ld”, n,kq); } long lap_phuong(int a) { long kq; kq = a*a*a; return kq; tham số hình thức } 20
nguon tai.lieu . vn