C++ Các hàm với các ví dụ về chương trình

Chức năng trong C++?

A chức năng in C++ đề cập đến một nhóm các câu lệnh nhận đầu vào, xử lý nó và trả về đầu ra. Ý tưởng đằng sau một hàm là kết hợp các nhiệm vụ phổ biến được thực hiện lặp đi lặp lại. Nếu bạn có đầu vào khác nhau, bạn sẽ không viết lại cùng một mã. Bạn chỉ cần gọi hàm với một tập dữ liệu khác gọi là tham số.

Mỗi trang web C++ chương trình có ít nhất một hàm, hàm main(). Bạn có thể chia mã của mình thành các chức năng khác nhau. Sự phân chia này phải sao cho mỗi chức năng thực hiện một nhiệm vụ cụ thể.

Có rất nhiều chức năng tích hợp trong C++ thư viện chuẩn. Bạn có thể gọi các hàm này trong chương trình của mình.

Tại sao nên sử dụng chức năng?

Có rất nhiều lợi ích liên quan đến việc sử dụng các chức năng. Bao gồm các:

  • Mỗi chức năng đặt mã liên quan với nhau. Điều này giúp các lập trình viên hiểu mã dễ dàng hơn.
  • Các hàm giúp lập trình dễ dàng hơn bằng cách loại bỏ sự lặp lại mã.
  • Các chức năng tạo điều kiện cho việc tái sử dụng mã. Bạn có thể gọi cùng một hàm để thực hiện một tác vụ ở các phần khác nhau của chương trình hoặc thậm chí bên ngoài chương trình.

Chức năng tích hợp sẵn

In C++ chức năng thư viện được tích hợp sẵn C++ chức năng. Để sử dụng các chức năng này, bạn chỉ cần gọi/gọi trực tiếp chúng. Bạn không cần phải tự mình viết các hàm.

Ví dụ 1:

#include <iostream>
#include <cmath>
using namespace std;
int main() {
	double num, squareRoot;
	cout << "Enter number: ";
	cin >> num;
	squareRoot = sqrt(num);
	cout << "The square root of " << num << " is: " << squareRoot;
	return 0;
}

Đầu ra:

Chức năng tích hợp sẵn

Đây là ảnh chụp màn hình của mã:

Chức năng tích hợp sẵn

Giải thích mã:

  1. Bao gồm tệp tiêu đề iostream trong chương trình của chúng tôi để sử dụng các chức năng của nó.
  2. Bao gồm thư viện cmath để sử dụng các chức năng của nó. Chúng tôi muốn sử dụng hàm sqrt() được xác định trong đó.
  3. Bao gồm không gian tên std trong mã của chúng tôi để sử dụng các lớp của nó mà không cần gọi nó.
  4. Gọi hàm main(). Logic chương trình phải được thêm vào trong phần thân của hàm này.
  5. Khai báo hai biến double, num và squareRoot.
  6. In một số văn bản trên bảng điều khiển. Văn bản yêu cầu người dùng nhập một số.
  7. Đọc đầu vào của người dùng từ bàn phím. Đầu vào sẽ trở thành giá trị của biến num.
  8. Gọi hàm thư viện sqrt(), tính toán căn bậc hai của một số. Chúng ta truyền tham số num vào hàm, nghĩa là nó sẽ tính căn bậc hai của num. Hàm này được định nghĩa trong thư viện cmath.
  9. In số do người dùng nhập, căn bậc hai của nó và một số văn bản khác trên bảng điều khiển.
  10. Chương trình phải trả về giá trị sau khi hoàn thành thành công.
  11. Phần cuối của hàm main().

Chức năng do người dùng xác định

C++ cho phép các lập trình viên xác định các chức năng của riêng họ. Mục đích của hàm là nhóm các mã liên quan. Mã sau đó được cấp một mã định danh duy nhất, tên hàm.

Hàm này có thể được gọi/gọi từ bất kỳ phần nào khác của chương trình. Sau đó nó sẽ thực thi mã được xác định trong phần thân của nó.

Ví dụ 2:

#include <iostream>
using namespace std;

void sayHello() {
	cout << "Hello!";
}

int main() {

	sayHello();

	return 0;
}

Đầu ra:

Chức năng do người dùng xác định

Đây là ảnh chụp màn hình của mã:

Chức năng do người dùng xác định

Giải thích mã:

  1. Bao gồm tệp tiêu đề iostream trong chương trình của chúng tôi để sử dụng các chức năng của nó.
  2. Bao gồm không gian tên std trong mã của chúng tôi để sử dụng các lớp của nó mà không cần gọi nó.
  3. Tạo một hàm do người dùng định nghĩa có tên sayHello().
  4. In một số văn bản trên bảng điều khiển khi hàm sayHello() được gọi.
  5. Phần cuối của hàm sayHello().
  6. Gọi hàm main(). Logic chương trình phải được thêm vào trong phần thân của hàm này.
  7. Gọi/gọi hàm có tên sayHello().
  8. Chương trình phải trả về giá trị sau khi hoàn thành thành công.
  9. Phần cuối của hàm main().

Khai báo hàm/nguyên mẫu

Nếu bạn xác định một hàm do người dùng định nghĩa sau hàm main(), thì C++ trình biên dịch sẽ trả về lỗi. Lý do là trình biên dịch không biết chi tiết về hàm do người dùng định nghĩa. Chi tiết bao gồm tên, loại đối số và loại trả về của chúng.

In C++, khai báo/nguyên mẫu hàm khai báo một hàm không có phần thân. Điều này cung cấp cho trình biên dịch thông tin chi tiết về hàm do người dùng định nghĩa.

Khai báo hàm/nguyên mẫu

Trong phần khai báo/nguyên mẫu, chúng tôi bao gồm kiểu trả về, tên hàm và kiểu đối số. Tên của các đối số không được thêm vào. Tuy nhiên, việc thêm tên đối số sẽ không gây ra lỗi.

Định nghĩa hàm

Mục đích của việc khai báo hàm là để cho biết C++ trình biên dịch về tên hàm, kiểu trả về và các tham số. Một định nghĩa hàm cho biết C++ trình biên dịch về thân hàm.

Định nghĩa/Nguyên mẫu chức năng

cú pháp

return_datatype function_name( parameters) {
   function body 
}

Từ những điều trên, định nghĩa hàm có phần đầu và phần thân hàm. Dưới đây là giải thích về các tham số:

  • return_datatype- Một số hàm trả về giá trị. Tham số này biểu thị kiểu dữ liệu của giá trị trả về. Một số hàm không trả về giá trị. Trong trường hợp đó, giá trị của tham số này trở thành void.
  • function_name- Đây là tên của hàm. Tên hàm và các tham số tạo thành chữ ký hàm.
  • Tham số- Đây là loại, thứ tự và số lượng tham số của hàm. Một số chức năng không có tham số.
  • Thân hàm - đây là các câu lệnh xác định hàm sẽ làm gì.

Gọi hàm

Để một hàm thực hiện tác vụ đã chỉ định và trả về kết quả đầu ra, nó phải được gọi. Khi bạn gọi một hàm, nó sẽ thực thi các câu lệnh được thêm vào trong phần thân của nó.

Gọi hàm

Một chương trình được gọi theo tên của nó. Nếu hàm nhận tham số thì giá trị của chúng sẽ được truyền trong suốt cuộc gọi. Nếu dịch vụ không có tham số thì không chuyển bất kỳ giá trị nào trong cuộc gọi.

Truyền đối số

In C++, đối số/tham số là dữ liệu được truyền đến một hàm trong quá trình gọi hàm đó. Các giá trị phải được khởi tạo cho các biến tương ứng của chúng.

Khi gọi một hàm, các đối số phải khớp về số lượng. Có nghĩa là các giá trị bạn truyền phải bằng số lượng tham số. Một lần nữa, các giá trị cũng phải khớp với các tham số về loại. Nếu tham số đầu tiên là số nguyên thì giá trị được truyền cho nó phải là số nguyên.

Người ta có thể gán giá trị mặc định cho các tham số hàm. Nếu bạn không chuyển giá trị cho tham số trong khi gọi hàm thì giá trị mặc định sẽ được sử dụng.

Ví dụ 3: Cách viết và gọi hàm

#include <iostream>
using namespace std;
int addFunc(int, int);
int main() {
	int x, y, sum;
	cout << "Enter two numbers: ";
	cin >> x >> y;
	sum = addFunc(x, y);
	cout <<"The sum of "<<x<< " and " <<y<<" is: "<<sum;
	return 0;
}
int addFunc(int num1, int num2) {
	int addFunc;
	addFunc = num1 + num2;
	return addFunc;
}

Đầu ra:

Truyền đối số

Đây là ảnh chụp màn hình của mã:

Truyền đối số

Giải thích mã:

  1. Bao gồm tệp tiêu đề iostream trong chương trình của chúng tôi để sử dụng các chức năng của nó.
  2. Bao gồm không gian tên std trong mã của chúng tôi để sử dụng các lớp của nó mà không cần gọi nó.
  3. Khai báo một hàm có tên addFunc() nhận vào hai tham số nguyên. Điều này tạo ra nguyên mẫu hàm.
  4. Gọi hàm main(). Logic chương trình phải được thêm vào trong phần thân của hàm này.
  5. Khai báo ba biến số nguyên x, y và sum.
  6. In một số văn bản trên bảng điều khiển. Văn bản yêu cầu người dùng nhập hai số.
  7. Đọc đầu vào của người dùng từ bàn phím. Người dùng nhập hai số cho biến x và y, cách nhau bằng dấu cách.
  8. Gọi hàm addFunc() và truyền cho nó các tham số x và y. Hàm sẽ hoạt động trên các tham số này và gán đầu ra cho tổng biến.
  9. In giá trị của các biến x, y và tổng trên bảng điều khiển cùng với văn bản khác.
  10. Hàm phải trả về giá trị sau khi hoàn thành thành công.
  11. Phần cuối của hàm main().
  12. Định nghĩa chức năng. Chúng ta đang định nghĩa hàm addFunc(). Chúng ta sẽ nêu rõ hàm sẽ làm gì trong phần thân của nó, { }.
  13. Khai báo một biến số nguyên có tên addFunc.
  14. Cộng giá trị của tham số num1 và num2 và gán kết quả cho biến addFunc.
  15. Hàm addFunc() sẽ trả về giá trị của biến addFunc.
  16. Kết thúc phần thân hàm, tức là phần định nghĩa hàm.

Tổng kết

  • Một chức năng trong C++ giúp bạn nhóm các mã liên quan thành một.
  • Các chức năng tạo điều kiện cho việc tái sử dụng mã.
  • Thay vì viết đi viết lại mã giống nhau, bạn chỉ cần nhóm mã đó thành một hàm. Sau đó, bạn có thể gọi hàm từ bất kỳ đâu trong mã.
  • Các hàm có thể là thư viện hoặc do người dùng xác định.
  • Chức năng thư viện là các chức năng được tích hợp sẵn khác nhau C++ chức năng.
  • Để sử dụng các hàm thư viện, bạn chỉ cần đưa thư viện định nghĩa của nó vào và gọi hàm. Bạn không xác định chức năng.
  • Các hàm do người dùng xác định là các hàm bạn xác định dưới dạng C++ người lập trình.
  • Khai báo hàm cho trình biên dịch biết tên hàm, kiểu trả về và kiểu tham số.
  • Một định nghĩa hàm thêm phần thân của hàm.
  • Nếu một hàm nhận tham số thì giá trị của chúng phải được truyền trong quá trình gọi hàm.