Hàm có thể có giá trị trả về (kết quả của hàm) hoặc không có giá trị trả về (chỉ đơn thuần thực hiện 1 công việc nào đó).. Khai báo hàm[r]
(1)TIN HỌC ĐẠI CƯƠNG
Chương 5: Hàm tổ chức chương trình
(2)Nội dung
1 Tổ chức chương trình thành hàm Tham số kiểu trỏ
3 Đệ quy
(3)các hàm
Khái niệm hàm
Một hàm C hiểu theo nghĩa “Routine”
hoặc “subprogram"
Hàm đơn vị độc lập C
– Không xây dựng hàm bên hàm khác
– Mỗi hàm có biến, hằng, mảng riêng
Một chương trình viết C gồm nhiều hàm, có hàm hàm “main()”
(4)Khai báo hàm
Nguyên mẫu hàm (prototype hàm)
Prototype hàm rõ đặc điểm
+ Tên hàm
+ Số lượng kiểu tham số hàm nhận + Giá trị trả sau hàm kết húc.
+ Phải khai báo prototype hàm trước sử dụng hàm -> thường khai báo nguyên mẫu đầu chương trình.
Prototype hàm không cho thấy hàm làm
Cơng thức khai báo:
(5)Cài đặt hàm
Xác định xác lệnh mà hàm phải thực
Thường cài đặt cuối chương trình đặt file thư viện riêng
Cách cài đặt:
Kiểu_hàm Tên_hàm (Kiểu_1 Tên_tham_số_1,
Kiểu_2 Tên_tham_số_2, ) {
- Khai báo biến, cục hàm - Các lệnh hàm thực hiện
(6)Ví dụ 1
Hàm nguyento()
Được thực lần?
//In cac so nguyên to <=N
#include <stdio.h> #include <conio.h> int i, N;
int nguyento (int) ; //prototype cua ham void main ()
do {
printf("Nhap so nguyên N: ");//sopt scanf("%d", &N); } while(N<=0);
for(i=2; i<=N; i++){
if( nguyento(i) != 0)
printf("%8d , i); }
(7)Quy tắc hoạt động hàm ■ Lời gọi hàm có dạng tổng quát sau:
Tên_hàm ( [danh sách tham số thực] )
■ Số lượng tham số thực lời gọi hàm phải số lượng tham số hình thức (trong khai báo hàm)
■ Kiểu tham số thực phải tương ứng với kiểu tham số hình thức
(8)Quy tắc hoạt động hàm (tt)
Thứ tự thực có lời gọi hàm
Cấp phát nhớ cho biến cục
Gán giá trị tham số thực cho tham số hình thức
Thực lệnh thân hàm
Gặp lệnh return dấu } kết thúc hàm xóa vùng nhớ cấp cho biến cục rời khỏi hàm -> trở vị trí dừng sau lời gọi hàm
(9)■ Tham số hình thức: Là tên tham số sử dụng khai báo cài đặt hàm
(10)Một số lưu ý
■ Khi hàm không khai báo rõ kiểu mặc định hiểu hàm có kiểu int
■ Không thiết phải khai báo prototype hàm (nếu cài đặt hàm trước có lời gọi hàm)
■ Prototype hàm thực chất dòng phần cài đặt
hàm có thêm dấu ; cuối
■ Trong khai báo prototype hàm bỏ tên tham số hình thức