Xem mẫu
- KỸ THUẬT LẬP TRÌNH C
BÀI 5: HÀM VÀ CẤU TRÚC CHƯƠNG TRÌNH
Hoàng Quốc Tuấn
tuanhq@fpt.edu.vn
http://hoangquoctuanpro.wordpress.com
- Nội dung
I. Hàm và chương trình
II. Ví dụ về chương trình có hàm
III. Cách viết một hàm
IV. Bài tập minh họa
2
- I – Hàm và chương trình
Khái niệm về chương trình
Khái niệm về hàm
Tổ chức một chương trình trong C
3
- 1. Khái niệm về chương trình
Chương trình bao gồm một hoặc nhiều hàm.
Hàm main() là hàm bắt buộc phải có của một
chương trình.
Chương trình bắt đầu thực hiện từ câu lệnh
đầu tiên của hàm main() cho đến khi kết thúc
hàm này
Trong hàm main() chứa đựng các câu lệnh và
các lời gọi thực hiện các hàm khác.
4
- 2. Khái niệm hàm
Hàm (Function) là một đoạn chương trình độc lập
thực hiện trọn vẹn một công việc nhất định, rồi trả
về một giá trị cho nơi gọi nó.
Hàm là một đơn vị độc lập của chương trình,
không cho phép định nghĩa một hàm bên trong
một hàm khác.
5
- 3. Tổ chức một chương trình trong C
Các khai báo
#include
hàm main #define MAX 10
int luy_thua(int n);
.... void main()
hàm 1 {
....
.... }
int luy_thua(int n)
hàm 2 {
...
.... }
hàm n ....
6
- 3. Tổ chức một chương trình trong C
Ở phần khai báo, ta có thể đặt các toán tử
#include, #define, định nghĩa kiểu dữ liệu, khai
báo mẫu hàm, khai báo biến toàn cục.
Việc truyền dữ liệu và kết quả từ hàm này sang
hàm khác được thực hiện theo hai cách:
− Sử dụng tham số (đối số) của hàm.
− Sử dụng biến toàn cục.
7
- II – Ví dụ về chương trình có hàm
#include //khai báo thư viện
long lap_phuong(int a); //khai báo mẫu hàm (prototype)
void main()
{
int n;
printf(“\nNhap n: ”);
scanf(“%d”, &n);
long kq = lap_phuong(n);
printf(“\n%d lap phuong la: %ld”, n,kq);
}
long lap_phuong(int a)
{
long kq;
kq = a*a*a;
return kq;
} 8
- II – Ví dụ về chương trình có hàm
Kết quả khi chạy chương trình:
Nhap n: 5
5 lap phuong la: 125
9
- III – Cách viết một hàm
Xác định mục đích hàm
Xác định các thành phần của hàm
10
- 1. Xác định mục đích hàm
Để viết một hàm, trước hết phải xác định
mục đích của hàm là dùng để làm gì, trên cơ
sở đó mới xác định được các thành phần của
hàm.
11
- 2. Xác định các thành phần của hàm
Nguyên mẫu của hàm (prototype)
Kiểu giá trị của hàm (return value)
Tên hàm (function name)
Tham số của hàm (parameter)
Nội dung của hàm (function body)
12
- Nguyên mẫu hàm
Cú pháp khai báo mẫu hàm:
(danh sách đối số);
Mỗi hàm nên được khai báo mẫu hàm trong phần
khai báo.
Khai báo mẫu hàm báo cho trình biên dịch biết sự
hiện diện của hàm.
VD:
long lap_phuong(int );
13
- Nguyên mẫu hàm
#include //khai báo thư viện
long lap_phuong(int a); //khai báo mẫu hàm (prototype)
void main()
{
int n;
printf(“\nNhap n: ”);
scanf(“%d”, &n);
long kq = lap_phuong(n);
printf(“\n%d lap phuong la: %ld”, n,kq);
}
long lap_phuong(int a)
{
long kq;
kq = a*a*a;
return kq;
} 14
- Kiểu giá trị của hàm
Giá trị trả về của hàm phải được xác định dựa vào
mục đích của hàm.
Để trả về giá trị từ hàm, ta dùng câu lệnh
return ;
Kiểu dữ liệu của giá trị được trả về phải đúng với
kiểu dữ liệu trả về đã xác định ban đầu.
Trong trường hợp không trả về gì thì phải khai báo
kiểu dữ liệu trả về là void.
15
- Kiểu giá trị của hàm
#include //khai báo thư viện
long lap_phuong(int a); //khai báo mẫu hàm (prototype)
void main()
{
int n;
printf(“\nNhap n: ”);
scanf(“%d”, &n);
long kq = lap_phuong(n);
printf(“\n%d lap phuong la: %ld”, n,kq);
}
long lap_phuong(int a)
{
long kq;
kq = a*a*a;
return kq;
} 16
- Tên hàm
Tên hàm được đặt theo quy định với tên.
Tên hàm nên đặt ngắn gọn và phản ánh
được mục đích của hàm.
Tên hàm trong nguyên mẫu và trong định
nghĩa phải giống nhau.
Tên hàm được dùng để gọi thực hiện hàm
sau này.
17
- Tên hàm
#include //khai báo thư viện
long lap_phuong(int); //khai báo mẫu hàm (prototype)
void main()
{
int n;
printf(“\nNhap n: ”);
scanf(“%d”, &n);
long kq = lap_phuong(n);
printf(“\n%d lap phuong la: %ld”, n,kq);
}
long lap_phuong(int a)
{
long kq;
kq = a*a*a;
return kq;
} 18
- Tham số của hàm
Tham số hình thức là tham số ghi trong
mẫu hàm hay ghi lúc định nghĩa hàm.
Tham số thực là các giá trị, biến mà ta
truyền vào hàm khi gọi hàm.
19
- Tham số của hàm
#include //khai báo thư viện
long lap_phuong(int a); //khai báo mẫu hàm (prototype)
void main()
{ tham số thực
int n;
printf(“\nNhap n: ”);
scanf(“%d”, &n);
long kq = lap_phuong(n);
printf(“\n%d lap phuong la: %ld”, n,kq);
}
long lap_phuong(int a)
{
long kq;
kq = a*a*a;
return kq;
tham số hình thức
} 20
nguon tai.lieu . vn