Bài tập lập trình c về dùng prototype năm 2024

Khác với những bài tập và ví dụ trước, với bài toán này chúng ta sẽ sử dụng hàm


# include 
int addition(int a, int b); // Nguyên mẫu hàm (Function prototype)
int main() {
    int x, y, result;
    printf("Enter x: ");
    scanf("%d", &x);
    printf("Enter y: ");
    scanf("%d", &y);
    result = addition(x, y); // Gọi hàm (Function call)
    printf("x + y = ", result);
    return 0;
}
int addition(int a, int b){ // Định nghĩa hàm (Function definition)
    int sum;
    sum = a + b;
    return sum; // Trả về kết quả của hàm (Return statement)
}

5 để tính toán:


# include 
int addition(int a, int b); // Nguyên mẫu hàm (Function prototype)
int main() {
    int x, y, result;
    printf("Enter x: ");
    scanf("%d", &x);
    printf("Enter y: ");
    scanf("%d", &y);
    result = addition(x, y); // Gọi hàm (Function call)
    printf("x + y = ", result);
    return 0;
}
int addition(int a, int b){ // Định nghĩa hàm (Function definition)
    int sum;
    sum = a + b;
    return sum; // Trả về kết quả của hàm (Return statement)
}

Kết quả

Enter x: 3 Enter y: 4 x + y = 7

Function prototype

  • Nguyên mẫu hàm chỉ là khai báo một hàm gồm tên hàm, các tham số và kiểu trả về. Không chứa thân hàm.
  • Nó cung cấp cho trình biên dịch là hàm này có thể được sử dụng trong chương trình.

Syntax of function prototype:

returnType functionName(dataType1 argument1, dataType2 argument2, ...);

Với ví dụ ở trên ta có thể phân tích hàm


# include 
int addition(int a, int b); // Nguyên mẫu hàm (Function prototype)
int main() {
    int x, y, result;
    printf("Enter x: ");
    scanf("%d", &x);
    printf("Enter y: ");
    scanf("%d", &y);
    result = addition(x, y); // Gọi hàm (Function call)
    printf("x + y = ", result);
    return 0;
}
int addition(int a, int b){ // Định nghĩa hàm (Function definition)
    int sum;
    sum = a + b;
    return sum; // Trả về kết quả của hàm (Return statement)
}

5:

  1. Tên của hàm là `

include

int addition(int a, int b); // Nguyên mẫu hàm (Function prototype) int main() {

int x, y, result;  
printf("Enter x: ");  
scanf("%d", &x);  
printf("Enter y: ");  
scanf("%d", &y);  
result = addition(x, y); // Gọi hàm (Function call)  
printf("x + y = ", result);  
return 0;  
} int addition(int a, int b){ // Định nghĩa hàm (Function definition)
int sum;  
sum = a + b;  
return sum; // Trả về kết quả của hàm (Return statement)  
}
5.
  1. Kiểu trả về là `
# include int addition(int a, int b); // Nguyên mẫu hàm (Function prototype) int main() { int x, y, result; printf("Enter x: "); scanf("%d", &x); printf("Enter y: "); scanf("%d", &y); result = addition(x, y); // Gọi hàm (Function call) printf("x + y = ", result); return 0; } int addition(int a, int b){ // Định nghĩa hàm (Function definition) int sum; sum = a + b; return sum; // Trả về kết quả của hàm (Return statement) }
8.

  1. Có hai tham số `

include

int addition(int a, int b); // Nguyên mẫu hàm (Function prototype) int main() {

int x, y, result;  
printf("Enter x: ");  
scanf("%d", &x);  
printf("Enter y: ");  
scanf("%d", &y);  
result = addition(x, y); // Gọi hàm (Function call)  
printf("x + y = ", result);  
return 0;  
} int addition(int a, int b){ // Định nghĩa hàm (Function definition)
int sum;  
sum = a + b;  
return sum; // Trả về kết quả của hàm (Return statement)  
}
8 được truyền vào hàm.
Nguyên mẫu hàm là không cần thiết nếu hàm do bạn định nghĩa ở trước returnType functionName(dataType1 argument1, dataType2 argument2, ...); 0.
### Function call Syntax of function call:
functionName(argument1, argument2, ...);

Trong ví dụ trên ta gọi hàm 
returnType functionName(dataType1 argument1, dataType2 argument2, ...);

1 bên trong hàm 
returnType functionName(dataType1 argument1, dataType2 argument2, ...);

0.

### Function definition

Định nghĩa hàm cho hàm một khối lệnh để hàm thực hiện chức năng cụ thể, như ví dụ ở trên hàm thực hiện chức năng tính tổng hai số và trả về kết quả.

Syntax of function definition:
returnType functionName(dataType1 argument1, dataType2 argument2, ...){
// body of the function
}
Khi hàm được gọi (function call) trình biên dịch chuyển đến hàm và bắt đầu thực thi các câu lệnh bên trong thân hàm.
### Argument & Parameters
  • Trong lập trình đối số (argument) là cách chúng ta gọi các biến được truyền cho hàm. Ở ví dụ trên, hai biến x và y là đối số.
  • Các tham số (parameter) a và b chấp nhận đối số được truyền vào hàm, được coi là tham số chính thức của hàm.
  • Kiểu dữ liệu của đối số và tham số phải trùng với nhau nếu không chương trình sẽ bị lỗi.
  • Một hàm đôi khi cũng không cần truyền đối số.
### Return statement Câu lệnh return kết thúc thực thi của một hàm và trả về giá trị cho hàm đang được gọi. Trong ví dụ trên giá trị của biến kết quả trong hàm

include

int addition(int a, int b); // Nguyên mẫu hàm (Function prototype) int main() {

int x, y, result;
printf("Enter x: ");
scanf("%d", &x);
printf("Enter y: ");
scanf("%d", &y);
result = addition(x, y); // Gọi hàm (Function call)
printf("x + y = ", result);
return 0;
} int addition(int a, int b){ // Định nghĩa hàm (Function definition)
int sum;
sum = a + b;
return sum; // Trả về kết quả của hàm (Return statement)
}

5 được trả về hàm 
returnType functionName(dataType1 argument1, dataType2 argument2, ...);

0 và biến result được gán giá trị này.

Syntax of return statement:
return (expression);

Ví dụ:
return a; return a+b; `

Kiểu dữ liệu được trả về từ hàm và kiểu dữ liệu trả về được chỉ định trong nguyên mẫu hàm (hoặc định nghĩa hàm) phải khớp nhau.