Hàm là một trong những cấu trúc cực kỳ quan trọng trong lập trình. Việc sử dụng hàm trong lập trình sẽ diễn ra rất thường xuyên. Vì vậy nắm, hiểu “hàm là gì? cách khai báo và sử dụng hàm trong C++” sẽ đóng vai trò then chốt trong việc học lập trình của bạn. Vậy thì bây giờ, chúng ta hãy cùng nhau tìm hiểu vấn đề này nhé.
Hàm 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 sau đó trả về giá trị cho chương trình gọi nó, hay nói cách khác hàm là sự chia nhỏ của chương trình.
Đọc khái niệm trên, bạn có hiểu gì không? Có lẽ nếu bạn là người đã biết về lập trình qua các ngôn ngữ khác thì mình nghĩ bạn sẽ hiểu. Nhưng với những bạn mới học thì chắc sẽ thấy khó hiểu quá nhỉ? Để dễ hiểu hơn, mình sẽ lấy ví dụ như thế này:
➤ Ví dụ: Giả sử có 10 bạn đều thích uống trà sữa trân châu. Lẽ ra cả 10 bạn này đều phải đi mua trà, sữa, bột [làm trân châu],… để pha chế trà sữa. Nhưng như thế thì sẽ khá mất công đúng không nhỉ? Thay vì vậy, 10 bạn này chỉ cần gọi “trà sữa trân châu” từ một cửa hàng nào đó là đã có trà sữa để uống rồi.
Tóm lại qua tất cả các phần trên, bạn có thể hiểu hàm như sau: gọi hàm “trà sữa trân châu” để được cửa hàng thực hiện công việc “pha chế trà sữa” cho bạn. Cuối cùng, “ly trà sữa” chính là kết quả mà bạn nhận được từ việc pha chế.
Từ những phân tích ở trên, mình tóm lược lại khái niệm hàm qua những ý như sau:
- Hàm là một khối lệnh được xây dựng để thực hiện một chức năng cụ thể nào đó. Ví dụ: pha chế trà sữa trân châu.
- Hàm luôn luôn được xác định bởi một tên gọi cụ thể. Mọi thao tác với hàm đều sẽ được thực hiện thông qua tên gọi này. Ví dụ: “Trà sữa trân châu”.
- Thông thường, chúng ta sẽ có 2 dạng cơ bản:
- Hàm: sau khi thực hiện một chức năng cụ thể, hàm trả ra bên ngoài một giá trị nào đó. Ví dụ: “những ly trà sữa đã được pha chế hoàn tất”.
- Thủ tục: là một trường hợp của hàm sau khi thực hiện một chức năng cụ thể, thủ tục không trả ra bên ngoài bất kỳ giá trị nào.
- Khi có một công việc giống nhau cần thực hiện ở nhiều vị trí.
- Khi cần chia một chương trình lớn phức tạp thành các đơn thể nhỏ [hàm con] để chương trình được trong sáng, dễ hiểu trong việc xử lý, quản lý việc tính toán và giải quyết vấn đề.
Tóm lại, sử dụng hàm sẽ giúp cho chương trình của bạn rõ ràng, xúc tích, ngắn gọn và tiện lợi hơn rất nhiều.
Để xây dựng một hàm trong C++, bạn cần khai báo theo cú pháp tổng quát như sau:
- Kiểu dữ liệu trả về của hàm [kết quả của hàm/ đầu ra], gồm 2 loại:
- void: Không trả về giá trị nào cả [dạng này chính là thủ tục].
- float / int / long / char * / kiểu cấu trúc / … : Trả về giá trị kết quả có kiểu dữ liệu tương ứng với bài toán [chỉ trả về được 1 giá trị theo kiểu dữ liệu].
- Tên hàm: Đặt tên theo qui ước sao cho phản ánh đúng chức năng thực hiện của hàm.
- Danh sách các tham số [nếu có]: đây chính là các tham số hình thức. Những tham số này sẽ nhận giá trị thực bằng cách truyền tham số mỗi khi hàm này được gọi đến. Nếu có nhiều tham số thì phải có dấu phẩy [,] để phân cách. Trong trường hợp hàm không có tham số thì vẫn phải để cặp dấu ngoặc đơn.
➤ Lưu ý: các tham số [nếu có] sẽ được khai báo tương tự khai báo biến. Nghĩa là mỗi tham số cũng phải có kiểu dữ liệu và tên tham số.
Sau khi khai báo và xây dựng hàm, việc gọi sử dụng hàm lại khá đơn giản. Bạn chỉ cần gọi tên hàm và truyền các tham số thực, như cú pháp sau:
Trong phần này, mình sẽ làm 02 ví dụ để minh hoạ cho 02 trường hợp hàm và thủ tục nhé.
Viết chương trình nhập số nguyên dương n và in ra màn hình các ước số của n.
Bài toán trên rất đơn giản phải không nào? Dù là đơn giản, nhưng mình hãy cứ thử phân tích một xíu nhé.
- Đầu vào: một số nguyên n [đây chính là dữ liệu để chúng ta xác định tham số cho hàm].
- Đầu ra: in ra các ước số của n [đây chính là dữ liệu để chúng ta xác định kiểu dữ liệu trả về của hàm]. Tuy nhiên, trong trường hợp này là “in” ra màn hình, vì thế mà sẽ không trả về một giá trị nào cả. Do đó chúng ta sẽ dùng kiểu void cho hàm này.
- Xác định tên hàm: Hàm này có chức năng in ra các ước số của số nguyên n nên có thể đặt là LietKeUocS.
Từ những phân tích ở trên, chúng ta sẽ có chương trình nhau sau:
Viết chương trình nhập số nguyên dương n và tính tổng theo cú pháp sau:
Tương tự ví dụ trước, chúng ta hãy thử phân tích đã nhé.
- Đầu vào: một số nguyên n [đây chính là dữ liệu để chúng ta xác định tham số cho hàm].
- Đầu ra: tổng S [đây chính là dữ liệu để chúng ta xác định kiểu dữ liệu trả về của hàm]. Trong trường hợp này tổng S là kết của của một biểu thức tính tổng các số nguyên. Vì vậy tổng S sẽ phải là một giá trị nguyên nào đó. Từ những phân tích như vậy, hàm sẽ cần trả về một số nguyên dương có kiểu int.
- Xác định tên hàm: Hàm này có chức năng tính tổng của các số nguyên n nên có thể đặt là TongS.
Từ những phân tích ở trên, chúng ta sẽ có chương trình nhau sau:
Nếu bạn đã đọc kỹ các phần trên thì mình nghĩ rằng bạn cũng đã phần nào hiểu được cách thức mà hàm hoạt động. Nhưng nếu vẫn chưa hiểu thì cũng không sao, chúng ta hãy cùng xem và phân tích thử nguyên tắc hoạt động của hàm, có thể bạn sẽ hiểu rõ hơn đấy.
Chỗ này giải thích thì hơi dài dòng, thôi thì chúng ta hãy cùng xem từng bước debug chương trình để hiểu hơn nhé.
Trong cả 02 ví dụ trên, mình sẽ không chạy thử chương trình. Thay vào đó, mình muốn bạn hãy xem, ngẫm nghĩ, làm lại rồi tự chạy thử chương trình để xem kết quả như thế nào nhé. Đến thời điểm này, mình nghĩ bạn đã có thể tự làm được những việc như vậy.
Bài viết này mình sẽ tạm dừng ở đây, nội dung bài viết mới chỉ hướng dẫn bạn khai báo và sử dụng hàm ở khía cạnh cơ bản. Vì vậy mình mong muốn bạn hãy đọc thật kỹ và cố gắng vận dụng, phải hiểu được bài này đã rồi chúng ta mới có thể đi tiếp được. Nếu có bất kỳ vấn đề nào thắc măc thì đừng ngần ngại gì mà hãy comment ngay bên dưới để cùng thảo luận bạn nhé.
- lý thuyết
- trắc nghiệm
- hỏi đáp
- bài tập sgk
Hàm trong chương trình bảng tính là gì? vd
nêu cú pháp hàm và cách nhập hàm vào ô tính
trình bày các hàm thông thường và cú pháp của nó
a, Hàm tình tổng
Các câu hỏi tương tự