Lưu ý:
- Hàm phải được khai báo và định nghĩa trước khi sử dụng và thường đặt ở trên hàm chính (hàm main).
int Tong(int a, int b)
{
return a + b;
}
void main()
{
int a = 2912, b = 1706;
int sum = Tong(a, b); // Loi goi ham
Có thể bạn quan tâm!
- Lập trình căn bản - Trường CĐN Công nghiệp Hà Nội - 7
- Lập trình căn bản - Trường CĐN Công nghiệp Hà Nội - 8
- Lập trình căn bản - Trường CĐN Công nghiệp Hà Nội - 9
- Đọc Dữ Liệu Từ Mảng For(I = 0; I < 10; I++) Printf("%3D ", Ia[I]);
- Lập trình căn bản - Trường CĐN Công nghiệp Hà Nội - 12
- Lập trình căn bản - Trường CĐN Công nghiệp Hà Nội - 13
Xem toàn bộ 110 trang tài liệu này.
}
- Thông thường, trước hàm main ta chỉ xác định tên hàm, các tham số và giá trị trả về của hàm để thông báo cho các hàm bên dưới biết cách sử dụng của nó còn phần định nghĩa hàm sẽ được đưa xuống dưới cùng. Phần ở trên này được gọi là nguyên mẫu hàm (function prototype). Nguyên mẫu hàm chính là tiêu đề hàm được kết thúc bằng dấu chấm phẩy.
int Tong(int a, int b); // prototype ham Tong
void main()
{
int a = 2912, b = 1706;
int sum = Tong(a, b); // Loi goi ham
}
int Tong(int a, int b) // Mo ta ham Tong
{
return a + b;
}
- Trên thực tế, nguyên mẫu hàm không cần thiết phải giống tuyệt đối tiêu đề hàm. Tên tham số có thể khác hoặc bỏ luôn miễn là cùng kiểu. Tuy nhiên, không nên để chúng khác nhau vì như vậy sẽ gây rối cho chương trình.
Ví dụ sau cho thấy có thể bỏ hẳn tên tham số: int Tong(int, int); // prototype ham Tong
…
c. Phạm vi của biến và hàm
Là phạm vi hiệu quả của biến hoặc hàm. Phạm vi này bao gồm bản thân khối đó và các khối con bên trong nó. Các khối cha hoặc các khối ngang hàng sẽ không thuộc phạm vi này.
Ví dụ 4:
Nhận xét:
- Các hình chữ nhật bao quanh tạo thành một khối. Mộtkhối có thể chứa khối con trong nó.
- Biến khai báo trong khối nào thì chỉ có tác dụng trong khối đó và các khối con của nó, không có tác dụng với khối cùng cấp.
- Biến khai báo trong khối lớn nhất (chứa tất cả các khốikhác) là biến toàn cục.
- Biến khai báo trong các hàm (hoặc khối) là cục bộ, sẽ bị mất khi kết thúc hàm (hoặc khối).
- Hàm cùng một khối (cùng cấp) có thể gọi lẫn nhau nhưng phải tuân theo thứ tự khai báo.
- Các biến cục bộ nên đặt khác tên với các biến ở khối cha để tránh nhầm lẫn. Trong trường hợp đặt trùng tên thì biến được ưu tiên là biến cục bộ của khối con.
Giải thích chương trình trên: a là biến toàn cục, có thể sử dụng ở bất cứ đâu. a1, a2, a21, a3 là các biến cục bộ do được khai báo trong hàm (hoặc khối). a1 chỉ có tác dụng trong hàm Ham1; a2 có tác dụng trong thủ tục Ham2 và khối trong Ham2; a21 chỉ có tác dụng trong khối mà nó khai báo; a2 chỉ có tác dụng trong hàm main.
Hàm main có thể gọi Ham1, Ham2. Hàm 2 có thể gọi Ham1.
d. Các ví dụ về hàm
Ví dụ 5:
Chương trình
Kết quả in ra màn hình
*****************
* Minh hoa ve ham *
*****************
_
Giải thích chương trình
Dòng 8 đến dòng 14: định nghĩa hàm line, hàm này không trả về giá trị, thực hiện công việc in ra 19 dấu sao.
Dòng 5: khai báo prototype, sau tên hàm phải có dấu chầm phẩy
Trong hàm line có sử dụng biến i, biến i là biến cục bộ chỉ sử dụng được trong phạm vi hàm line.
Dòng 18 và 20: gọi thực hiện hàm line.
Trình tự thực hiện chương trình
Lưu ý: Không có dấu chấm phẩy sau tên hàm, phải có cặp dấu ngoặc ( ) sau tên hàm nếu
hàm không có tham số truyền vào. Phải có dấu chấm phẩy sau tên hàm khai báo prototype. Nên khai báo prototype cho dù hàm được gọi nằm trước hay sau câu lệnh gọi nó.
Ví dụ 6:
Chương trình
Kết quả in ra màn hình
2 mu 2 = 4.
2 mu 3 = 8.
_
Giải thích chương trình
Hàm power có hai tham số truyền vào là ix, in có kiểu int và kiểu trả về cũng có kiểu int.
Dòng 13: return ip: trả về giá trị sau khi tính toán
Dòng 18: đối mục 2 và 3 có kiểu trả về là int sau khi thực hiện gọi power.
Hai tham số ix, in của hàm power là dạng truyền tham trị.
Trình tự thực hiện chương trình
Lưu ý: Quy tắc đặt tên hàm giống tên biến, hằng… Mỗi đối số cách nhau = dấu phẩy kèm
theo kiểu dữ liệu tương ứng.
Ví dụ 7:
Chương trình
Kết quả in ra màn hình
Nhap vao so phut: 185 03:05
_
Giải thích chương trình
Hàm time có hai tham số truyền vào là ix, in có kiểu int. 2 tham số này có toán tử địa chỉ & đi trước cho biết 2 tham số này là dạng truyền tham biến.
Trình tự thực hiện chương trình
2. Tham số dạng tham biến và tham trị
Ví dụ 8:
Chương trình
void thamtri(int ix, int iy)
{
ix += 1; //cong ix them 1