Lệnh gọi hàm là gì
Một khai báo hàm trong Pascal bao gồm phần đầu của hàm, các khai báo cục bộ và thân của hàm. Phần đầu của hàm bao gồm từ khoá Show
Sau đây là các thành phần của một hàm:
Ví dụ chương trình con tìm số lớn nhất trong 2 số:
Lời gọi hàmKhi khai báo một hàm, chúng ta tạo ra một công việc được gắn cho một cái tên và các tham số. Khi cần thực hiện công việc đó thì đơn giản là gọi tên hàm kèm theo các tham số cần thiết. Vì hàm trả về một giá trị nên nó được sử dụng trong một biểu thức hoặc gán vào một biến. Ở bài học trước, bạn đã nắm được tổng quan về ép kiểu dữ liệu và kỹ thuật ÉP KIỂU TƯỜNG MINH TRONG C++ (Explicit type conversion). Hôm nay, mình sẽ giới thiệu cho các bạn về Cơ bản về Hàm và Giá trị trả về (Basics of Functions and Return values), một phần không thể thiếu trong hầu hết các ngôn ngữ lập trình. Nội dungĐể đọc hiểu bài này tốt nhất các bạn nên có kiến thức cơ bản về các phần: Trong bài ta sẽ cùng tìm hiểu các vấn đề:
Tổng quan về hàm (functions overview)Giả sử có một chương trình yêu cầu tính tuổi của người dùng với năm sinh được nhập từ bàn phím.
Outputs: Chương trình bên trên dùng để tính tuổi của 1 người. Giả sử bây giờ bài toán cần được mở rộng thêm, yêu cầu tính tuổi của 3 người. Vấn đề phát sinh từ đây, bạn phát hiện ra mình phải lặp lại những dòng code tương tự bên trên để tính tuổi cho 2 người tiếp theo. Dẫn đến tình trạng trùng lắp code và mất nhiều thời gian xây dựng chương trình. Để khắc phục vấn đề đó, khái niệm Hàm (Function) trong lập trình được ra đời.
Cú pháp của hàm trong C++:
Trong đó:
Ở bài CẤU TRÚC MỘT CHƯƠNG TRÌNH C++ (Structure of a program), bạn đã biết mỗi chương trình C++ đều có một hàm tên là main(), hàm này là nơi bắt đầu của chương trình. Trong thực tế, một chương trình thường sẽ có rất nhiều hàm bên trong. Ví dụ về chương trình đơn giản có 2 hàm: main() và sayHello()
Outputs: Chương trình sẽ thực thi các câu lệnh một cách tuần tự bên trong một hàm. Khi gặp một lời gọi hàm, CPU sẽ gián đoạn hàm hiện tại để thực thi các câu lệnh bên trong hàm được gọi. Khi hàm được gọi kết thúc, CPU sẽ lại tiếp tục thực thi hàm hiện tại.
Hiện tại, bạn nên đặt hàm main() ở vị trí cuối cùng trong file code của chương trình. Lý do tại sao sẽ được đề cập cụ thể trong bài TIỀN KHAI BÁO & ĐỊNH NGHĨA HÀM (Forward declarations and Definitions of Functions). Giá trị trả về (return values)Ở bài CẤU TRÚC MỘT CHƯƠNG TRÌNH C++ (Structure of a program), bạn đã biết hàm main() có kiểu int nên bắt buộc phải có một câu lệnh return giá trị kiểu int. Khi chương trình thực thi kết thúc, hàm main() sẽ return một giá trị cho hệ điều hành, để thông báo là nó chạy thành công hay không. Khi tạo ra một hàm mới, tùy vào mục đích của hàm mà bạn có thể quyết định hàm đó có trả về một giá trị nào đó hay không. Để tạo ra một hàm có giá trị trả về, bạn cần:
Ví dụ về chương trình có hàm trả về một số nguyên:
Outputs: Hàm có giá trị trả về có thể đặt riêng biệt, hoặc bên trong một biểu thức như ở ví dụ trên. Một câu hỏi thường được hỏi là: "Hàm có thể trả về nhiều giá trị thông qua câu lệnh return?". Câu trả lời là không. Khi sử dụng câu lệnh return, hàm chỉ có thể trả về một giá trị duy nhất. Tuy nhiên, bạn có thể sử dụng phương pháp truyền tham chiếu hoặc truyền địa chỉ cho hàm để có thể lấy được nhiều giá trị: Giá trị trả về của kiểu void (return values of type void)Những hàm có mục đích tính toán thường sẽ return một giá trị khi kết thúc hàm. Đối với những hàm không có mục đích tính toán (Vd: hàm setter, hàm print, …), C++ hỗ trợ sử dụng kiểu dữ liệu void cho những hàm không có giá trị trả về.
Outputs: “binary '<<': no operator found which takes a right-hand operand of type 'void' (or there is no acceptable conversion)” Trong chương trình trên, hàm sayHello() có kiểu void nên sẽ không trả về giá trị. Nên compiler sẽ thông báo lỗi không thể in giá trị của hàm sayHello() ra màn hình trong lần gọi hàm thứ 2.
Kết luậnQua bài học này, bạn đã nắm được Cơ bản về Hàm và Giá trị trả về (Basics of Function and Return values) trong C++. Mình tóm tắt lại một số nội dung quan trọng các bạn cần nắm:
Ở bài tiếp theo, mình sẽ chia sẻ cho các bạn về kỹ thuật TRUYỀN GIÁ TRỊ TRONG C++ (Passing Arguments by Value in C++). Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của mình để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó”. Thảo luậnNếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần BÌNH LUẬN bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng. Hàm in dùng để làm gì?Hàm INT là một hàm dùng để lấy giá trị phần nguyên của số đồng thời cũng làm tròn đến số nguyên gần với đó nhất.
Câu lệnh return dùng để làm gì?Trong lập trình máy tính, câu lệnh trả về (tiếng Anh: return statement) sẽ khiến sự thực thi dừng chương trình con hiện tại và trở về lại lập tức vào thời điểm trong mã sau khi chương trình con đó được gọi, được gọi là địa chỉ trả về (return address).
Một hàm khi được gọi sẽ trả về cái gì?Một hàm có thể gọi chính nó
Điều đó lại hóa ra là các hàm tự bản thân chúng là các object, và kết quả là, những object này có các phương thức.
1 hàm là gì?Trong toán học, một hàm số hay hàm là một quan hệ hai ngôi giữa hai tập hợp liên kết mọi phần tử của tập hợp đầu tiên với đúng một phần tử của tập hợp thứ hai. Ví dụ điển hình là các hàm từ số nguyên sang số nguyên hoặc từ số thực sang số thực.
|