Chương 4 .CÁC CẤU TRÚC ĐIỀU KHIỂN
5.3 Hàm do người dùng tự xây dựng:
Hàm người dùng là những hàm do người lập trình tự tạo ra nhằm đáp ứng nhu cầu xử lý của mình.
5.3.1 Định nghĩa hàm:
Cấu trúc của một hàm do người dùng xây dựng:
<kiểu kết quả>Tên hàm ([<kiểu tham số><tham số, […]])
{
[Khai báo biến cục bộ]; [các câu lệnh xử lý]; [return [<kết quả>];] }
Trang 69
- Kiểu kết quả: là kiểu dữ liệu của kết quả trả về, có thể là : int, byte, char,
float,void… Một hàm có thể có hoặc khơng có kết quả trả về. Trong trường hợp hàm khơngcó kết quả trả về ta sử dụng kiểu kết quả là void.
- Kiểu tham số: là kiểu dữ liệu của tham số.
- Tham số: là tham số đầu vào cho hàm, một hàm có thể có hoặc khơng có
tham số. Tham số này gọi là tham số hình thức, khi gọi hàm chúng ta phải
truyền cho nó các tham số thực tế. Nếu có nhiều tham số, mỗi tham số phân
cách nhau dấu phẩy “,”.
- Bên trong thân hàm là các khai báo cùng các câu lệnh xử lý. Các khai báo bên trong hàm được gọi là các khai báo cục bộ trong hàm và các khai báo này chỉ tồn tại bên trong hàm mà thôi.
- Khi kết thúc hàm, ta thường sử dụng câu lệnh return để trả về kết quả thông qua tên hàm.
Lệnh return dùng để thốt khỏi một hàm và có thể trả về một giá trị nào đó.
Cú pháp:
return ; /*không trả về giá trị*/
return<biểu thức>; /*Trả về giá trị của biểu thức*/
Nếu hàm có kết quả trả về, ta bắt buộc phải sử dụng câu lệnh return để trả về kết quả cho hàm. Ví dụ: hàm nhập 1 số nguyên int NhapSoNguyen() { int kq; printf("nhap so nguyen: "); scanf("%d", &kq); return kq; } 5.3.2 Sử dụng hàm:
Một hàm khi định nghĩa thì chúng vẫn chưa được thực thi trừ khi ta có một lời gọi đến hàm đó.
Cú pháp gọi hàm: <Tên hàm>([Danh sách các tham số]);
Trang 70 #include "stdafx.h" #include "conio.h" #include "stdio.h" int NhapSoNguyen(); void Line(int x); //======================= void main() {
int n= NhapSoNguyen();// gọi hàm NhapSoNguyen(); printf("so nguyen da nhap la %d\n",n);
printf("in %d ngoi sao\n",n); Line(n); // gọi hàm Line(int x); getch(); } //======================= int NhapSoNguyen() { int kq; printf("nhap so nguyen: "); scanf("%d", &kq); return kq; } void Line(int x) {
for(int i=1; i<=x; i++) printf("*"); }
Trang 71