Thứ Ba, 28 tháng 9, 2021

12: Hàm là gì và Cách sử dụng hàm trong lập trình C

Hàm là gì?

Hàm (function) hay chương trình con là một thuật ngữ chỉ một cụm câu lệnh được đặt tên để chương trình có thể gọi bất cứ lúc nào.

Ví dụ: Chương trình của bạn là đi bộ.

Vậy thì đi bộ sẽ chia ra các động tác là, bước chân trái lên, thăng bằng, bước chân phải lên, thăng bằng.

Trong các động tác đó, sẽ có các câu lệnh ra lệnh cho cơ thể rút cơ nào, nhả cơ nào, cường độ ra sao để hoàn thành 1 bước chân.

Vậy những động tác đó trong lập trình người ta gọi là Hàm. Một hàm có thể chứa câu lệnh và các hàm khác, có thể cần tham số truyền vào như (số bước chân, góc bước, tốc độ bước) và có thể có giá trị trả về (return) như gặp vật cản, leo dốc, ….


Cú pháp khai báo hàm





Trong đó:

  • Return type: là kiểu dữ liệu trả về
  • Function name: là tên Hàm
  • parameter: là tham số truyền vào, nếu không có tham số sẽ để là void
  • Body: phần chương trình của hàm


Hàm hoạt động ra sao

Nói đơn giản, khi chương trình gọi tới hàm, nó sẽ nhảy tới câu lệnh đầu tiên trong hàm đó, rồi xử lý đến hết hàm rồi thoát ra. Dấu móc nhọn đầu tiên là bắt đầu, móc nhọn đóng là kết thúc hàm.





Chương trình của bạn sẽ nhảy tới nơi định nghĩa hàm đó và thực thi các lệnh từ trên xuống dưới ở trong hàm đó.

Khi hàm thực hiện xong, chương trình tiếp tục quay về thực hiện các lệnh phía sau lời gọi hàm.


Các kiểu sử dụng hàm

Hàm có trả về giá trị trả về và có tham số truyền vào

VD: Tạo hàm cộng 2 số


#include <stdio.h>

int addition(int num1, int num2) 

{

     int sum;

     sum = num1+num2;

     return sum; //tra ve gia tri

}


int main()

{

     int var1, var2;

     printf("Enter number 1: ");

     scanf("%d",&var1);

     printf("Enter number 2: ");

     scanf("%d",&var2);


     int res = addition(var1, var2); //goi ham

     printf ("Output: %d", res);

     return 0;

}


Hàm không giá trị trả về và không tham số truyền vào

Tạo hàm giới thiệu bản thân


#include <stdio.h>

void introduction()

{

    printf("Hi\n");

    printf("Toi la khuenguyencreator\n");

    printf("chuc cac ban hoc tap that tot");


}


int main()

{

     introduction();

     return 0;

}


Hàm không giá trị trả về và có tham số truyền vào

Hàm kiểm tra số chẵn lẻ


#include <stdio.h>

void checkEvenNumber(int n);//ham check so chan

int main()

{

    int n;

    printf("Nhap so: ");

    scanf("%d",&n);

    checkEvenNumber(n);

    return 0;

}

void checkEvenNumber(int n) 

{

    //nếu số chia hết cho 2

    if((n % 2) == 0)

        printf("%d la so chan",n);

    else

        printf("%d la so le", n);

}


Hàm có giá trị trả về và không có tham số truyền vào

Hàm nhập kí tự từ bàn phím


#include <stdio.h>

int getInput(void);//nhap so

int main()

{

    int n;

    n = getInput();

    //nếu số chia hết cho 2

    if((n % 2) == 0)

    {

        printf("%d la so chan",n);

    }

    else

    {

        printf("%d la so le", n);

    }

    return 0;

}

int getInput(void) 

{

    int number;

    printf("Nhap so: ");

    scanf("%d",&number);

    return number;

}


0 bình luận:

Đăng nhận xét