Haàm nào có thể trả về giá trị trong c++ năm 2024

Câu lệnh trên có nghĩa là gì? Nếu giá trị của x bé hơn 0, thì gán cho a giá trị đối của x; ngược lại, gán cho a giá trị của x. Nói cách khác, đó là câu lệnh gán cho a giá trị tuyệt đối của x. Câu lệnh đơn giản như thế, nhưng nếu phải viết đi viết lại rất nhiều lần thì đó là một vấn đề, có thể làm cho chương trình của chúng ta trở nên rườm rà và mất thời gian viết. Vì thế, chúng ta cần làm cho việc dùng nó đơn giản hơn, ngắn gọn hơn, và chúng ta có hàm abs[] trong ngôn ngữ lập trình C++. Câu lệnh:

abs[x];

sẽ cho chúng ta giá trị tuyệt đối của x, với x là tham số của hàm. Đối với số nguyên, hàm abs[] nằm trong thư viện , nên khi dùng các em cần khai báo thư viện này ở phần khai báo của chương trình.

Hàm abs[] là một ví dụ về chương trình con. Những chương trình này, giúp việc viết, chỉnh sửa cũng như nâng cấp chương trình chính dễ dàng hơn và tốn ít thời gian hơn vì khi cần dùng môt chức năng, lập trình viên chỉ cần gọi tên chương trình con có chức năng tương ra thay vì phải viết lại hết tất cả dòng lệnh để thực hiện chức năng đó.

Vậy ở một chương trình con có các yếu tố cơ bản là: kiểu dữ liệu, tên chương trình, tham số của hàm và phần thân chương trình. Chương trình con sẽ thực hiện một chức năng nào đó phục vụ cho chương trình chính. Trong bài viết này, chúng ta sẽ tìm hiểu về cách khai báo và sử dụng chương trình con trong ngôn ngữ lập trình C++, đồng thời cũng cung cấp kiến thức về biến toàn cục và biến cục bộ.

Trong ngôn ngữ lập trình C++, các chương trình con [subroutine] được gọi là các hàm [function]. Việc khai báo hàm được thực hiện theo cú pháp sau:

[]{

/*Phần thân chương trình*/

}

Trong đó:

  • * Kiểu dữ liệu trả về là kiểu dữ liệu của kết quả mà hàm sẽ trả về [return]. Nếu hàm không trả về kết quả thì có kiểu dữ liệu là void.
    • Tên hàm phải được khai báo đúng quy tắc và không trùng với các từ khóa. Các em nên đặt tên hàm sao cho khi đọc vào, chúng ta có thể đoán được chức năng của hàm.
    • Danh sách tham số có dạng: , ,v.v... Tuy nhiên, một hàm có thể không có tham số. Trong trường hợp đó, danh sách tham số để trống.
    • Phần thân chương trình là tập hợp các câu lệnh tạo nên chức năng cho hàm. Ở cuối phần thân thường có câu lệnh:
      • return ;
    • Đối với các hàm void thì không có .

Thầy sẽ lấy ví dụ với hàm abs[] tự cài đặt đơn giản dành cho số nguyên:

int abs[int number]{

int answer;

if [number < 0] answer = -number;

else answer = number;

return answer;

}

Nhìn vào chương trình trên, ta có thể xác định được:

  • * Hàm trả về giá trị kiểu nguyên.
    • Tên hàm là abs[]. Abs là viết tắt của Absolute Value [Giá trị tuyệt đối].
    • Hàm có 1 tham số kiểu nguyên tên là number.
    • Phần thân chương trình sẽ hoạt động như sau: Khai báo biến answer kiểu nguyên. Nếu giá trị của number nhỏ hơn 0; gán giá trị đối của number cho answer; ngược lại, gán giá trị của number cho answer. Trả về giá trị của biến answer.

Nếu các em đã thông thạo việc viết hàm thì các em có thể viết theo cấu trúc của mình. Trong phạm vi trường học, thầy chỉ giới thiệu cách việc dễ cho các em tiếp cận.

Khai báo hàm [function prototype hoặc function declaration] cho chương trình biên dịch biết tên hàm và cách gọi hàm. Phần thân của hàm có thể được định nghĩa ở một vị trí khác với phần khai báo hàm.

Phần khai báo hàm có dạng như sau:

[];

Ví dụ với hàm abs[] ở trên, thầy sẽ có phần khai báo hàm là:

int abs [int number];

Tuy nhiên, phần tên của tham số không bắt buộc, ta chỉ cần kiểu dữ liệu của tham số. Vì thế, phần khai báo trên có thể viết lại là:

int abs [int];

Chương trình biên dịch đọc từng dòng từ trên xuống dưới. Vì thế, nếu các em muốn gọi một hàm nào đó tại một dòng, thì hàm đó phải được khai báo trước dòng đó. Còn phần thân của hàm có thể viết cùng với phần khai báo hoặc viết sau đó.

Khi tạo hàm, các em đã định nghĩa về hàm, kiểu dữ liệu, tên, tham số và chức năng của hàm. Để sử dụng được hàm mà các em định nghĩa, các em cần gọi [call hoặc invoke] nó ra.

Khi một hàm được gọi, luồng điều khiển chương trình sẽ "nhảy" đến hàm đó. Hàm được gọi sẽ thực hiện chức năng của nó cho đến khi gặp câu lệnh return hoặc dấu đóng ngoặc nhọn [}] thì hàm sẽ kết thúc. Luồng điều khiển chương trình quay trở lại và tiếp tục thực hiện chương trình lúc đầu.

Để gọi một hàm, các em chỉ cần gõ tên hàm và điền đủ số lượng tham số. Nếu hàm có trả về giá trị, các em có thể lưu trữ giá trị đó. Thầy sẽ lấy ví dụ với hàm maximum[] có chức năng trả về giá trị lớn nhất trong hai giá trị.

include

using namespace std;

//Định nghĩa hàm maximum[]

int maximum[int so1, int so2]{

//Khai báo biến cục bộ

int ketqua;

//Xử lí

if [so1 < so2] ketqua = so2;

else ketqua = so1;

//Trả về kết quả

return ketqua;

}

int main[]{

//Khai báo biến cục bộ

int a, b, dapan;

//Nhập giá trị cho biến

cout > a;

cout > b;

//Gọi hàm maximum[] để lấy giá trị lớn nhất

dapan = maximum[a, b];

cout b;

//Gọi hàm maximum[] để lấy giá trị lớn nhất

dapan = maximum[a, b];

cout b;

//Gọi hàm swap[] để thực hiện hoán đổi

hoandoi[a, b];

//In ra kết quả

cout

Chủ Đề