Hàm (Function) là một nhóm các câu lệnh được đặt tên và dùng để thực hiện một công việc cụ thể. Thay vì viết lại cùng một đoạn code nhiều lần, chúng ta có thể tạo một hàm và gọi hàm đó khi cần.
Ví dụ: Nếu cần tính tổng hai số nhiều lần, ta có thể tạo hàm tong().
#include <iostream>
int tong(int a, int b)
{
return a + b;
}
int main()
{
std::cout << tong(5, 3);
return 0;
}Kết quả: 8
Vậy tại sao ta không làm như code dưới cho gọn mà lại sử dụng hàm, vậy lý do sâu xa nào ?
cout << 5+3;Câu trả lời: hàm rất quan trọng, nhưng để hiểu rõ ta cần phải xem các phần tiếp nhé.
Một hàm trong C++ thường có dạng:
kiểu_trả_về tên_hàm(tham_số)
{
// Các câu lệnh
return kết_quả;
}Trong đó:
| Thành phần | Ý nghĩa |
|---|---|
| kiểu_trả_về | Kiểu dữ liệu của kết quả mà hàm trả về, ví dụ: int, float, double. |
| tên_hàm | Tên dùng để gọi hàm. |
| tham_số | Dữ liệu được đưa vào hàm. |
| return | Trả kết quả từ hàm về nơi gọi hàm. |
Nếu hàm chỉ thực hiện một công việc và không cần nhận dữ liệu, ta có thể sử dụng hàm không có tham số. Từ khóa void cho biết hàm không trả về kết quả.
void xinChao()
{
cout << "Xin chao!";
}
int main()
{
xinChao();
return 0;
}Kết quả: Xin chao!
Câu hỏi: xinChao , tại sao chữ x không viết hoa, mà chữ C lại viết hoa.
Tham số là dữ liệu được truyền vào hàm để hàm sử dụng khi thực hiện công việc.
Ví dụ, tạo hàm nhận vào một số và in số đó ra màn hình:
void inSo(int n)
{
cout << n;
}
int main()
{
inSo(10);
inSo(20);
return 0;
}Kết quả: 1020
Trong ví dụ trên: n là tham số của hàm. 10 và 20 là các giá trị được truyền vào hàm.
Đây là dạng hàm rất thường được sử dụng trong lập trình.
Ví dụ tạo hàm tính tổng hai số:
int tong(int a, int b)
{
return a + b;
}
int main()
{
int kq = tong(10, 5);
cout << kq;
return 0;
}Kết quả: 15
Có thể gọi trực tiếp hàm trong cout:
int tong(int a, int b)
{
return a + b;
}
int main()
{
cout << tong(20, 30);
return 0;
}Kết quả: 50
Nếu hàm thực hiện phép tính và trả về một số nguyên, ta sử dụng int.
Ví dụ tính bình phương của một số:
int binhPhuong(int n)
{
return n * n;
}
int main()
{
cout << binhPhuong(5);
return 0;
}Kết quả: 25
Một hàm có thể nhận nhiều tham số.
Ví dụ:
int tinhTong(int a, int b, int c)
{
return a + b + c;
}
int main()
{
cout << tinhTong(10, 20, 30);
return 0;
}Kết quả: 60
Hàm có thể trả về kiểu bool. Kiểu bool chỉ có hai giá trị: true → đúng false → sai Ví dụ kiểm tra một số có phải số chẵn hay không:
bool laSoChan(int n)
{
return n % 2 == 0;
}
int main()
{
cout << laSoChan(10);
return 0;
}Kết quả: 1 Trong C++, true thường được hiển thị là 1, còn false là 0.
Khi chương trình có nhiều công việc, chúng ta có thể chia chương trình thành nhiều hàm nhỏ. Ví dụ:
#include
using namespace std;
int tong(int a, int b)
{
return a + b;
}
int hieu(int a, int b)
{
return a - b;
}
int tich(int a, int b)
{
return a * b;
}
int main()
{
cout << tong(10, 5) << endl;
cout << hieu(10, 5) << endl;
cout << tich(10, 5);
return 0;
}Tìm kiếm:
Cấu trúc hàm trong c++, cách vận dụng giải bài toán tin học trẻ và các ứng dụng