
Bài giảng Nhập môn lập trình C - Chương 3: Hàm
lượt xem 4
download

Trong chương 3 chúng ta sẽ tìm hiểu về hàm. Hàm là một khối lệnh thực hiện một công việc hoàn chỉnh (module), được đặt tên và được gọi thực thi nhiều lần tại nhiều vị trí trong chương trình. Hàm còn gọi là chương trình con (subroutine). Mời các bạn cùng tham khảo để biết thêm các nội dung chi tiết.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Nhập môn lập trình C - Chương 3: Hàm
- Khái niệm Hàm là một khối lệnh thực hiện một công việc hoàn chỉnh (module), được đặt tên và được gọi thực thi nhiều lần tại nhiều vị trí trong chương trình. Hàm còn gọi là chương trình con (subroutine) Hàm có thể được gọi từ chương trình chính (hàm main) hoặc từ 1 hàm khác. Hàm có giá trị trả về hoặc không. Nếu hàm không có giá trị trả về gọi là thủ tục (procedure)
- Khái niệm Có hai lọai hàm: Hàm thư viện: là những hàm đã được xây dựng sẵn. Muốn sử dụng các hàm thư viện phải khai báo thư viện chứa nó trong phần khai báo #include. Hàm do người dùng định nghĩa.
- Dạng tổng quát của hàm Hàm do người dùng định nghĩa returnType functionName(parameterList) { body of the function } returnType: Kiểu dữ liệu của giá trị trả về bởi hàm. Nếu hàm không trả về giá trị thì returnType là void. parameterList: Danh sách các tham số hình thức phân cách nhau bởi dấu phẩy
- Dạng tổng quát của hàm Ví dụ: int max(int a, int b) { if(a
- Gọi hàm Hàm khi đã định nghĩa nhưng chúng vẫn chưa được thực thi, hàm chỉ được thực thi khi được gọi. Cú pháp gọi hàm: ([Danh sách các tham số])
- Gọi hàm Ví dụ: Gọi hàm trong chương trình chính: void main() { int a, b, m; printf(“ a=“); scanf(“%d”,&a); printf(“ b=“); scanf(“%d”,&b); m=max(a, b); printf (“so lon nhat la: %d”, m); }
- Nguyên tắc hoạt động của hàm Hàm có thể được gọi từ nhiều vị trí khác nhau trong chương trình. Khi hàm được gọi, khối lệnh tương ứng của hàm được thực thi. Sau khi thực hiện xong, quyền điều khiển được trả về cho chương trình gọi.
- Nguyên tắc hoạt động của hàm void main() int uscln(int a, int b) { { int a, b, USC; a=abs(a); printf(“a=“); scanf(“%d”,&a); b=abs(b); printf(“b=“); scanf(“%d”,&b); while(a!=b) USC = uscln(a,b); { if(a>b) a-=b; printf (“USC lon nhat la: ”,USC); else b-=a; } } return a;}
- Tham số hình thức và tham số thực Đối với hàm có đối số (arguments), khi thực thi hàm cần khai báo danh sách các tham số để nhận giá trị từ chương trình gọi. Các tham số này được gọi là tham số hình thức Ví dụ: int min( int a, int b) { Tham số hình thức if(a
- Tham số hình thức và tham số thực Khi gọi hàm, phải cung cấp các giá trị thật, các giá trị này được sao chép vào các tham số hình thức, các giá trị thật được gọi là tham số thực. Ví dụ: Để tìm giá trị nhỏ nhất của 2 số 5 và 6, bằng cách gọi hàm min(5, 6) Tham số thực min(int a, int b)
- Tham số hình thức và tham số thực Có hai cách truyền đối số vào tham số hình thức: Truyền tham trị: Sao chép giá trị của đối số vào tham số hình thức của hàm. Những thay đổi của tham số không ảnh hưởng đến giá trị của đối số Truyền tham biến Sao chép địa chỉ của đối số vào tham số hình thức. Do đó, những thay đổi đối với tham số sẽ có tác dụng trên đối số
- Tham số là tham chiếu Tham số làm kết quả đầu ra Tham số vừa làm đầu vào và đầu ra Dùng dấu & phía trước tên tham số khi cài đặt hàm
- Tham số hình thức và tham số thực Ví dụ: void double(int a) { a = a*2; printf(“gia tri cua a trong ham double:%d“,a); } void main() { int a=40; double(a); printf(“\n Gia tri cua a trong ham main: %d”, a); }
- Tham số hình thức và tham số thực Ví dụ: Khi gọi hàm double(&a); Địa chỉ của a truyền vào cho tham số hình thức của hàm: double(int &b) void double(int &b) { b *= 2; printf(“Trong hàm double a = %d“, b); }
- Ví dụ: viết chương trình hoán vị hai số nguyên a và b nhập từ bàn phím
- Dùng tham chiếu
- Prototype (nguyên mẫu)của hàm Chương trình bắt buộc phải có prototype của hàm hoặc phải bắt buộc viết định nghĩa của hàm trước khi gọi. Prototype để loại trừ việc bắt buộc phải định nghĩa hàm trước khi gọi. Prototype khai báo giống như header của hàm Sau khi đã sử dụng prototype của hàm, ta có thể viết định nghĩa chi tiết hàm ở bất kỳ vị trí nào trong chương trình
- Prototype (nguyên mẫu)của hàm #include // Khai báo thư viện iostream.h Ví dụ: int max(int x, int y);// khai báo nguyên mẫu hàm max void main()//hàm main (sẽ gọi các hàm thực hiện) { int a, b;// khai báo biến printf(“ a=“); scanf(“%d”,&a); printf(“ b=“); scanf(“%d”,&b); m=max(a, b); printf (“so lon nhat la: %d”, m); } int max(int x, int y)// Định nghĩa hàm max(a,b) { return (x>y) ? x:y; }
- Ví dụ: Viết chương trình nhập vào số nguyên dương n, in ra màn hình các số nguyên tố nhỏ hơn n. vd: Nhập n = 10, in ra màn hình là: 2, 3, 5, 7 Kiểm tra có phải số nguyên tố không?

CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Nhập môn lập trình: Bài 1 - Trần Duy Thanh
70 p |
211 |
5
-
Bài giảng Nhập môn lập trình (Bài tập) - Trường Đại học Công nghệ Thông tin
33 p |
3 |
1
-
Bài giảng Nhập môn lập trình - Trường Đại học Công nghệ Thông tin
85 p |
4 |
1
-
Bài giảng Nhập môn lập trình (2022) - Trường Đại học Công nghệ Thông tin
140 p |
1 |
1
-
Bài giảng Nhập môn lập trình: Thuật toán - Trường ĐH Công nghệ thông tin
32 p |
1 |
0
-
Bài giảng Nhập môn lập trình: Hàm (Function) - Trường ĐH Công nghệ thông tin
35 p |
3 |
0
-
Bài giảng Nhập môn lập trình: Kiểu cấu trúc (STRUCT) - Trường ĐH Công nghệ thông tin
22 p |
7 |
0
-
Bài giảng Nhập môn lập trình: Các phép toán - Trường ĐH Công nghệ thông tin
46 p |
2 |
0
-
Bài giảng Nhập môn lập trình: Giới thiệu môn học - Trường ĐH Công nghệ thông tin
20 p |
0 |
0
-
Bài giảng Nhập môn lập trình: Các kiểu dữ liệu cơ bản - Trường ĐH Công nghệ thông tin
39 p |
2 |
0
-
Bài giảng Nhập môn lập trình: Mảng (Tìm hiểu về mảng – mảng 1 chiều) - Trường ĐH Công nghệ thông tin
28 p |
2 |
0
-
Bài giảng Nhập môn lập trình: Con trỏ cơ bản - Trường ĐH Công nghệ thông tin
58 p |
2 |
0
-
Bài giảng Nhập môn lập trình: Các cấu trúc điều khiển - Trường ĐH Công nghệ thông tin
58 p |
1 |
0
-
Bài giảng Nhập môn lập trình: Tổng quan về máy tính và lập trình - Trường ĐH Công nghệ thông tin
62 p |
6 |
0
-
Bài giảng Nhập môn lập trình: Câu lệnh điều khiển - Trường ĐH Công nghệ thông tin
19 p |
5 |
0
-
Bài giảng Nhập môn lập trình: Mảng (Tìm hiểu mảng 2 chiều và chuỗi ký tự) - Trường ĐH Công nghệ thông tin
40 p |
2 |
0
-
Bài giảng Nhập môn lập trình: Con trỏ và cấp phát động - Trường ĐH Công nghệ thông tin
64 p |
4 |
0
-
Bài giảng Nhập môn lập trình: Đệ quy (recursion) - Trường ĐH Công nghệ thông tin
16 p |
5 |
0


Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn
