Trong tin học các khái niệm "hàm" và "thủ tục" là những khái niệm cơ bản và thường được sử dụng thường xuyên để tính toán. Tuy cả hai đều liên quan đến việc sắp xếp các lệnh và thực hiện một số tác vụ những giữa chúng có những sự khác biệt nhất định. Trong bài viết dưới đây, Toploigiai sẽ cùng các bạn phân biệt sự khác nhau giữa hàm và thủ tục trong lập trình. Mời các bạn cùng theo dõi!
- Hàm là khái niệm dùng để chỉ một khối mã có thể được tái sử dụng nhiều lần và thực hiện một tác vụ cụ thể trong chương trình. Hàm có thể được gọi từ các đoạn mã khác trong chương trình, có thể nhận giá trị đầu vào (tham số) và trả về giá trị đầu ra. Điều này giúp cho chương trình được viết một cách dễ dàng hơn và giúp giảm lượng mã lặp lại trong chương trình.
- Thủ tục là một khối mã cũng thực hiện một tác vụ cụ thể trong chương trình nhưng không trả về giá trị đầu ra. Thủ tục có thể nhận tham số đầu vào và thường được sử dụng để thực hiện các tác vụ như lưu trữ dữ liệu, hiển thị thông tin cho người dùng hay thực hiện một chuỗi các câu lệnh.
- Cả hàm và thủ tục đều giúp giảm độ phức tạp của chương trình và làm cho mã nguồn chương trình dễ đọc hiểu hơn. Hai thành phần này giúp cho việc sửa lỗi, bảo trì và mở rộng chương trình trở nên dễ dàng và tiết kiệm thời gian, công sức
- Hàm và thủ tục có cấu trúc chung như sau:
def ten_thu_tuc/ten_ham(tham_so_1, tham_so_2, ...):
# Khối mã để thực hiện các tính toán
# Trả về giá trị (nếu có)
return gia_tri
- Ví dụ về Hàm:
def tinh_tong(a, b):
tong = a + b
return tong
# Gọi hàm để tính tổng của hai số 5 và 3
tong = tinh_tong(5, 3)
print("Tổng của 5 và 3 là:", tong)
+ Kết quả trên màn hình sẽ hiển thị: Tổng của 5 và 3 là: 8
- Ví dụ về Thủ tục:
def chao_hoi():
print("Xin chào, đây là thủ tục chào hỏi!")
# Gọi thủ tục để thực thi
chao_hoi()
+ Kết quả trên màn hình sẽ hiển thị: Xin chào, đây là thủ tục chào hỏi!
Điểm giống nhau:
- Đều là một khối mã (code block) trong chương trình.
- Đều được gọi bởi các phần khác trong chương trình để thực hiện một công việc nào đó.
- Cả 2 đều nhận tham số đầu vào từ người dùng để thực hiện tác vụ.
Điểm khác nhau:
Điểm khác biệt |
Hàm |
Thủ tục |
---|---|---|
Giá trị trả về | Trả về một giá trị kết quả | Không trả về giá trị nào |
Sử dụng trong biểu thức | Có thể được sử dụng trong các biểu thức | Không thể sử dụng được trong các biểu thức |
Truy cập biến toàn cục | Không thể truy cập trực tiếp các biến toàn cục trong chương trình | Có thể truy cập trực tiếp các biến toàn cục trong chương trình |
Mục đích sử dụng | Thường được sử dụng để thực hiện một nhiệm vụ cụ thể và trả về một giá trị cụ thể | Thường được sử dụng để thực hiện một chuỗi các câu lệnh để thực hiện một tác vụ nào đó |
Tên gọi | Tên có ý nghĩa thể hiện công việc được thực hiện | Tên thường để mô tả nhiệm vụ của thủ tục |
Tái sử dụng | Có thể được sử dụng lại nhiều lần trong chương trình | Thường được sử dụng một lần duy nhất trong chương trình |
Hiệu suất | Tốn ít tài nguyên hệ thống hơn do không ảnh hưởng đến việc lưu trữ và truy cập biến toàn cục | Tốn nhiều tài nguyên hệ thống hơn do phải lưu trữ và truy cập biến toàn cục |
-----------------------------
Trên đây là những khác biệt chính giữa hàm và thủ tục. Bằng cách sử dụng các hàm và thủ tục hiệu quả, người sử dụng có thể sắp xếp chương trình của mình một khoa học và dễ bảo trì hơn.