Hàm trong C (Bài 7)

Hàm trong ͼ nói riêng & trong các ngôn từ lập trình khác nói chung là phần giải quyết được tạo thành để sử dụng lại.
Trong đoạn chương trình bên dưới phần giải quyết nhập & kiểm soát số nguyên dương LẶP LẠI 3 LẦN, việc này dẫn đến một số vấn đề như: Viết giải quyết (code) nhiều lần & khi có sự thay đổi thì phải thay đổi nhiều lần

#include <stdio.hvàgt; 
main() {
int Ҳ, y, z;

//Nhập số đầu tiên
do {
printf("x = ");
scanf("%d", &Ҳ);
} while (xvàlt;0);

//Nhập số thứ hai
do {
printf("y = ");
scanf("%d", &y);
} while(yvàlt;0);

//Nhập số thứ ba
do {
printf("z = ");
scanf("%d", &z);
} while (zvàlt;0);

int tong = Ҳ + y + z;
printf("Tong 3 so la %d", tong);
}

Hướng khắc phục: Những giải quyết giống nhau sẽ xây dựng thành một đoạn chương trình & đoạn chương trình này sẽ được sử dụng lại ở những yêu cầu tương đương & được gọi là hàm.

Hàm trong ͼ – Hàm là gì

Hàm là một đoạn chương trình bao gồm một hoặc nhiều giải quyết nhằm khắc phục một công việc nào đó & được xây dựng với mục đích TÁI SỬ DỤNG.

Như thế trong một chương trình nếu có những giải quyết giống nhau tất cả chúng ta nên xây dựng hàm.

Hàm có thể được xây dựng bởi lập trình
viên hoặc hàm có sẵn trong ngôn từ lập trình. Chẳng hạn trong lập trình C,
tất cả chúng ta có thể liệt kê các hàm có sẵn như printf, scanf, pow, sqrt,…

Hàm trong ͼ – Hàm tự khái niệm

Kiểu_Dữ_Liệu Tên_Hàm(Tham_Số_1, Tham_Số_2, ...) {   
Giải quyết;
}

Giải thích

Xem Thêm  CẬP NHẬT (Transact-SQL) - Máy chủ SQL - cập nhật máy chủ sql ở đâu

Kiểu dữ liệu có thể là int, long, float,
double, char hoặc void. Đây chính là dữ liệu mà hàm có thể trả về (hay
có cách gọi khác là đâu ra – output).

Tên hàm phải là: động từ, không chứa khoảng trắng, không trùng từ khoá, không chứa ký tự đặc biệt & đặt tên có ý nghĩa.

Tham số là dữ liệu đầu vào của hàm & được khai báo theo cú pháp sau:

Kiểu_Dữ_Liệu  Tên_Tham_Số_1, Kiểu_Dữ_Liệu Tên_Tham_Số_2,...

Chẳng hạn: Xây dựng hàm tính tổng 2 số nguyên

Cách 1: Hàm không trả về giá trị & không nhận tham số đầu vào

void tinhTong1() {  
int α, ɓ, tong;

printf("a = ");
scanf("%d", &α);

printf("b = ");
scanf("%d", &ɓ);

tong = α + ɓ;
printf("Tong hai so la %d", tong);
}

Cách 2: Hàm nhận tham số đầu vào & không trả về giá trị

void tinhTong2(int α, int ɓ) {  
int tong;
tong = α + ɓ;
printf("Tong hai so la %d", tong);
}

Cách 3: Hàm trả về giá trị & không nhận tham số đầu vào

int tinhTong3() {  
int α,ɓ, tong;

printf("Nhap so thu nhat a = ");
scanf("%d", &α);

printf("Nhap so thu hai b = ");
scanf("%d", &ɓ); tong = α + ɓ;

//Chấm dứt hàm & trả về kết quả
return tong;
}

Cách 4: Hàm trả về giá trị & nhận tham số đầu vào

int tinhTong4(int α, int ɓ) {
  int tong;
  tong = α + ɓ;
  //Chấm dứt hàm & trả về kết quả
  return tong;
}

Hàm trong ͼ – Gọi hàm

Gọi hàm thông qua tên hàm & truyền tham số đầu vào hoặc giải quyết kết quả trả về nếu có.

Xem Thêm  Sự khác biệt giữa display: inline và display: inline-block trong CSS là gì? - hiển thị khối nội tuyến so với nội tuyến

Gọi hàm tinhTong1 – Hàm không trả về giá trị & không nhận tham số đầu vào

tinhTong1();

Gọi hàm tinhTong2 – Hàm nhận tham số đầu vào & không trả về giá trị

tinhTong(10, 20);

Cảnh báo: Trong 10 tương ứng với α, 20 tương ứng với ɓ, tức hàm giải quyết tính tổng 10 & 20

Gọi hàm tinhTong3 – Hàm trả về giá trị & không nhận tham số đầu vào

int ketqua;
ketqua = tinhTong3();

Cảnh báo: Vì hàm tinhTong3 trả về kết quả
là tổng của 2 số nên lúc gọi hàm tất cả chúng ta phải khai báo biến & gán kết
quả trả về từ hàm.

Gọi hàm tinhTong4 – Hàm trả về giá trị & nhận tham số đầu vào

int ketqua;
ketqua = tinhTong4(1020, 4190);

Cũng giống như hàm tinhTong3, khi gọi hàm tinhTong4 tất cả chúng ta phải giải quyết kết quả trả về. Trong chẳng hạn trên, tất cả chúng ta thực hiện tính tổng 2 số 1020 & 4190. Kết quả tính toán được sẽ được gán vào biến ketqua.

Tổng kết: Tuỳ vào
mục đích hay yêu cầu rõ ràng mà tất cả chúng ta sẽ xây dựng hàm thích hợp. Gọi hàm
thông qua tên hàm & phải phù phù hợp với khái niệm của hàm.

Hàm trong ͼ – Một số lỗi thường gặp khi làm việc với hàm

1/ Gọi sai tên hàm.

2/ Gọi hàm không phù phù hợp với khái niệm
3/ Hàm có nhận tham số nhưng khi gọi hàm thì không truyền tham số đầu vào

ketqua = tinhTong4();

4/ Truyền không đúng số lượng tham số

ketqua = tinhTong4(1502);

5/ Truyền tham số không phù phù hợp với kiểu dữ liệu lúc khái niệm hàm

ketqua = tinhTong4(12.5, 20.9);

Hàm tinhTong4 chỉ nhận 2 tham số kiểu int nhưng khi gọi hàm tất cả chúng ta truyền 2 tham số kiểu số thực.

Xem Thêm  Tạo viền trong Photoshop, cách sử dụng stroke trong Photoshop

Hàm trong ͼ – Kết luận

  • Mục đích xây dựng hàm
  • Cú pháp xây dựng hàm trong lập trình ͼ
  • Gọi hàm
  • Một số lưu ý khi làm việc với hàm

Hàm trong ͼ – Bài tập thực hành

Bài thực hành số 1: Viết hàm tính chu vi & diện tích hình tròn

Bài thực hành số 2: Viết chương trình suport người dùng thực hiện các phép tính gồm cộng, trừ, nhân & chia hai số

  • Nếu ký tự được nhập từ keyboard là “+” thì phép tính cộng
  • Nếu ký tự được nhập từ keyboard là “-” thì phép tính trừ
  • Nếu ký tự được nhập từ keyboard là “*” thì phép tính nhân
  • Nếu ký tự được nhập từ keyboard là “/” thì phép tính chia

Yêu cầu thực hiện:

  • Viết hàm tính tổng
  • Viết hàm tính trừ
  • Viết hàm tính nhân
  • Viết hàm tính chia

Viết một bình luận