STDIO
Tìm kiếm gần đây

    Nội dung

    Khái Niệm Hàm

    25/01/2015
    05/04/2017
    Đối với một lập trình viên lâu năm mà nói thì chắn hẳn Hàm không còn là một điều gì xa lạ. Tuy nhiên đối với một người mới làm quen với lập trình thì ngay cả một kiến thức cơ bản nhất cũng là một điều gì đó mới mẻ và Hàm cũng không phải là một ngoại lệ. Trong bài viết này, tôi sẽ trình bày khái niệm về Hàm với mong muốn sau bài viết này, bạn đọc sẽ hiểu được Hàm là gì?

    Giới thiệu

    Đối với một lập trình viên lâu năm mà nói thì chắn hẳn hàm (function) không còn là một điều gì xa lạ. Tuy nhiên đối với một người mới làm quen với lập trình thì ngay cả một kiến thức cơ bản nhất cũng là một điều gì đó mới mẻ và hàm cũng không phải là một ngoại lệ. Trong bài viết này, tôi sẽ trình bày khái niệm về hàm với mong muốn sau bài viết này, bạn đọc sẽ hiểu được hàm là gì?

    Tiền đề bài viết

    Có khá nhiều câu hỏi như return là gì? Truyền tham trị ra sao? Cách thức viết một hàm? Vì vậy tôi muốn thông qua bài viết này để giúp các bạn hiểu rõ hơn khái niệm về hàm.

    Đối tượng hướng đến

    Bài viết dành cho những lập trình viên đang trong quá trình tìm hiểu lập trình căn bản C++.

    Hàm là gì?

    Nói một cách dễ hiểu ta có thể tưởng tượng hàm là một chương trình con trong chương trình lớn. Hàm nhận (hoặc không) các đối số và trả lại (hoặc không) một giá trị cho chương trình gọi nó.

    Bạn có 2 số nguyên 3 và 4. Khi truyền vào hàm nó sẽ giúp bạn trả về một giá trị là 7. Hàm này là hàm thực hiện công việc tính tổng của 2 số nhận vào và trả về giá trị là tổng của hai số đó.

    Một chương trình dạng C++ console là tập hợp các hàm, trong đó có một hàm chính với tên gọi main(). Khi chạy chương trình, hàm main() sẽ được chay đầu đầu tiên và gọi đến hàm khác. Kết thúc hàm main() cũng là kết thúc chương trình.

    Hàm giúp cho việc phân đoạn chương trình thành những thành phần riêng lẻ, hoạt động độc lập với chương trình lớn, có nghĩa một hàm có thể được sử dụng trong chương trình này mà cũng có thể được sử dụng trong chương trình khác, dễ cho việc kiểm tra và bảo trì chương trình.

    Ví dụ 1: Trường hợp không dùng hàm tính trung bình cộng 2 số

    #include <iostream>
    using namespace std;
    
    int main()
    {
    	// Trung bình cộng của 3 và 7
    	cout << (3 + 7)/2.0;
    	
    	// Trung bình cộng của 4 và 6
    	cout << (4 + 6)/2.0
    
    	return 0;
    }

    Ví dụ 2: Trường hợp dùng hàm tính trung bình cộng 2 số

    #include <iostream>
    using namespace std;
    
    // Định nghĩa hàm tính trung bình cộng 2 số
    double avg(int a, int b)
    {
    	return (a + b)/2.0;
    }
    
    int main()
    {
    	// Trung bình cộng của 3 và 7
    	cout << avg(3, 7);
    	
    	// Trung bình cộng của 4 và 6
    	cout << avg(4, 6);
    
    	return 0;
    }

    Ở ví dụ 2, avg làm Hàm mà tôi đang đề cập. Để hiểu cách định nghĩa và sử dụng hàm, vui lòng đọc bài kế tiếp Khai Báo Và Định Nghĩa Hàm - Từ Khóa return :: http://www.stdio.vn/articles/read/143-khai-bao-va-dinh-nghia-ham-tu-khoa-return.

    Từ 2 ví dụ trên, ta còn thấy lợi ích của hàm có thể tạo ra 1 nguyên tắc chung không thay đổi, vì trong tương lai ta có thể "quên công thức" tính trung bình cộng và làm sai nếu cứ làm theo ví dụ 1. Với ví dụ 2, chỉ cần gọi hàm avg và truyền 2 giá trị vào, sẽ được giá trị trung bình.

    Đặc trưng của hàm

    • Được gọi từ chương trình chính (hàm main), từ hàm khác hoặc từ chính nó (nếu là đệ quy).
    • Có 2 cách truyền tham số: Truyền theo tham trị và tham chiếu.
    • Hàm không được định nghĩa lồng vào nhau.

    Bài viết liên quan

    Hàm Tạo Mặc Định Trong Lập Trình Hướng Đối Tượng

    Hàm tạo mặc định và Hàm tạo không đối số là hai khái niệm dễ ngây nhầm lẫn khi học lập trình hương đối tượng, bài viết sẽ giải thích chi tiết về vấn đề này. Bài viết sẽ ...

    Tuấn Trần19/08/2015

    Khai Báo Và Định Nghĩa Hàm - Từ Khóa return

    Hàm là một khái niệm vô cùng quen thuộc với bất kỳ một lập trình viên nào. Tuy nhiên ở mỗi ngôn ngữ khác nhau thì hàm cũng có những điểm không tương đồng với nhau. Tiếp ...

    Ryan Lê26/01/2015

    Một Cách Hiểu Về Khái Niệm Server Và Client

    Khái niệm Server và Client mở rộng không chỉ nhằm hiểu về Server và Client trong lĩnh vực mạng máy tính. Đây là 2 khái niệm sẽ gây khó khăn cho chúng ta khi tiếp xúc với ...

    La Kiến Vinh02/05/2014

    Khai Báo Hàm Với C/C++

    Hàm (Function) là một khái niệm vô cùng quen thuộc đối với lập trình viên. Vậy muốn sử dụng nó thì có bao nhiêu kiểu khai báo? Và khai báo như thế nào? Bài viết này sẽ ...

    Amy Lê29/06/2015

    Hàm Trong Python - Cơ Bản

    Hàm là một khái niệm vô cùng quen thuộc với bất kỳ một lập trình viên nào. Tuy nhiên ở mỗi ngôn ngữ khác nhau thì hàm cũng tồn tại những điểm không giống nhau. Vậy hàm ...

    Ryan Lê26/03/2015

    Rvalue References Và Move Semantics

    Vì đây sẽ là một khái niệm khó hiểu đối với những người chưa biết về nó. Do đó, bài viết không đưa ra khái niệm “Move semantics” ngay mà sẽ đi sơ lượt qua các khái niệm ...

    Hoàng Tiến Đạt02/12/2014

    Virtual Destructor Trong C++

    Phương pháp lập trình hướng đối tượng Object-Oriented Programming có tính chất: Tính trừu tượng hóa, tính đóng gói, tính kế thừa, tính đa hình. Trong đó tính đa hình được ...

    Nguyễn Nghĩa13/10/2015

    Con Trỏ Hàm Trong C/C++

    Tương tự Windows Form, trong những game được lập trình bằng C++ cũng có những Button, và để tạo ra chúng thì không đơn giản. Vì ngoài việc xử lý hình ảnh, ...

    Tuấn Trần18/08/2015

    Sự Khác Biệt Giữa const Và constexpr

    Const và constexpr là một khái niệm cũ và cũng là khái niệm mới đối với một số lập trình viên, trong bài viết này tôi sẽ làm rõ hai khái niệm này để có thể giúp ích cho ...

    Nguyễn Hữu Phương09/06/2017

    Box2D - Phần 1: Giới Thiệu Và Một Số Thuật Ngữ Và Khái Niệm

    Giới thiệu về engine vật lý sử dụng trong games là Box2D. Giới thiệu Box2D, các khái niệm, cách thành phần liên quan, cách khởi tạo và thao tác với một số thành phần ...

    Trương Xuân Đạt23/01/2015

    STDIO
    Trang chính
    Công ty TNHH STDIO

    30, Trịnh Đình Thảo, Hòa Thạnh, Tân Phú, Hồ Chí Minh
    +84 28.36205514 - +84 942.111912
    [email protected]

    383/1 Quang Trung, Phường 10, Quận Gò Vấp, Hồ Chí Minh
    Số giấy phép ĐKKD: 0311563559 do sở Kế hoạch và Đầu Tư TPHCM cấp ngày 23/02/2012

    ©STDIO, 2013 - 2020