Hàm (function) là một dãy các lệnh nhằm thực hiện một công việc nào đó, thường được sử dụng nhiều lần ❖ Một chương trình C là một dãy các hàm, trong đó có một hàm chính, được đặt tên là main 2 Định nghĩa ❖ Cú pháp kiểu_dữ_liệu_trả_về_của_hàm tên_hàm (khai_báo_các_tham_số) { các khai báo dùng riêng bên trong hàm nếu có; các lệnh bên trong hàm; return giá_trị_trả_về; } ⚫ Định nghĩa hàm có thể đặt trước hoặc sau hàm main ▪ Nếu định nghĩa hàm đặt sau hàm main thi phải khai báo nguyên mẫu hàm ở đầu chương trình ▪ Nên định nghĩa hàm sau hàm main và khai báo nguyên mẫu hàm 3
HÀM Định nghĩa ❖ Hàm (function) dãy lệnh nhằm thực cơng việc đó, thường sử dụng nhiều lần ❖ Một chương trình C dãy hàm, có hàm chính, đặt tên main Định nghĩa ❖ Cú pháp kiểu_dữ_liệu_trả_về_của_hàm tên_hàm ([khai_báo_các_tham_số]) { khai báo dùng riêng bên hàm có; lệnh bên hàm; [return giá_trị_trả_về;] } ⚫ Định nghĩa hàm đặt trước sau hàm main ▪ Nếu định nghĩa hàm đặt sau hàm main thi phải khai báo nguyên mẫu hàm đầu chương trình ▪ Nên định nghĩa hàm sau hàm main khai báo nguyên mẫu hàm Ví dụ #include float max2so(float x, float y); /* Nguyên mẫu hàm */ void main() /* bắt đầu hàm */ { float x, y; printf(“Nhap vao so:”); scanf(“%f%f”, &x, &y); printf(“Gia tri lon nhat cua %f %f %f\n”, x, y, max2so(x, y)); } /* kết thúc hàm main */ /* định nghĩa hàm max2so */ float max2so(float x, float y) { float max; /* khai báo biến cục */ if (x>y) max =x; else max = y; return max; }4 Bài tập ❖ Viết hàm kiểm tra số thực có cạnh tam giác ❖ Mở rộng: cạnh tam giác xác định tam giác (cân, vng, đều) Hàm ❖Lưu ý ⚫ Không cho phép định nghĩa hàm bên hàm khác ⚫ Các tham số hình thức biến định nghĩa bên hàm (biến cục bộ) sử dụng bên hàm Lời gọi hàm ❖ Hàm sử dụng thông qua lời gọi hàm ⚫ Cú pháp: tên_hàm ([danh sách tham số thực]); ⚫ Cần phân biệt Tham số hình thức hay đối: xuất định nghĩa hàm ▪ Tham số thực: xuất lời gọi hàm ▪ ⚫ Ví dụ ▪ ⚫ max2so(12, 341); Lưu ý Số tham số thực phải số tham số hình thức ▪ Kiểu tham số thực phải phù hợp với kiểu tham số hình thức ▪ Lời gọi hàm ❖ Ví dụ: Viết hàm tính n! Biến tồn cục, biến cục ❖ Biến toàn cục, biến cục Biến toàn cục: khai báo bên thân hàm, thường đầu chương trình ⚫ Biến cục bộ: khai báo bên thân hàm ⚫ Phạm vi hoạt động ⚫ Biến toàn cục sử dụng kể từ vị trí khai báo đến cuối chương trình ▪ Biến cục sử dụng bên hàm ▪ ⚫ Thời gian sống Biến tồn cục kết thúc thời gian sống chương trình kết thúc ▪ Sau hàm kết thúc hoạt động tham số hình thức biến cục kết thúc thời gian sống chúng ▪ Biến toàn cục, biến cục ❖ Ví dụ #include int i; /* Biến toàn cục */ void vi_du(void); main() { for (i=1; i