Bài giảng Ngôn ngữ lập trình C: Chương 4 - PhD. Nguyễn Thị Huyền
Số trang: 21
Loại file: pdf
Dung lượng: 472.41 KB
Lượt xem: 17
Lượt tải: 0
Xem trước 3 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng "Ngôn ngữ lập trình C - Chương 4: Hàm" cung cấp cho người học các kiến thức: Giới thiệu, khai báo prototype, viết nội dung của hàm, tham số trong lời gọi hàm, hàm đệ quy. Mời các bạn cùng tham khảo nội dung chi tiết.
Nội dung trích xuất từ tài liệu:
Bài giảng Ngôn ngữ lập trình C: Chương 4 - PhD. Nguyễn Thị HuyềnNgôn ngữ lập trình CChương 4 – Hàm Giới thiệu Khai báo prototype Viết nội dung của hàm Tham số trong lời gọi hàm Hàm đệ quyGiới thiệu Một chương trình viết trong ngôn ngữ C là một dãy các hàm, trong đó phải có một hàm chính (hàm main() ). Hàm chia các bài toán lớn thành các công việc nhỏ hơn, giúp thực hiện những công việc lặp lại nào đó một cách nhanh chóng mà không phải viết lại đoạn chương trình. Thứ tự các hàm viết trong chương trình là bất kỳ, song chương trình bao giờ cũng bắt đầu thực hiện từ hàm main(). Hàm có thể xem là một đơn vị độc lập của chương trình. Các hàm có vai trò ngang nhau, vì vậy không cho phép xây dựng một hàm bên trong các hàm khác.Quy tắc xây dựng hàm Cú pháp: ([danh sách tham số]) { [return ;] }Trong đó : kiểu bất kỳ của C (char, int, long, float,…). Nếu không có kiểu trả về thì là void. : theo quy tắc đặt tên định danh. : tham số hình thức đầu vào giống khai báo biến, cách nhau bằng dấu ,. Nếu không có đối, dung void để khai báo đối. : trả về cho hàm qua lệnh return.Khai báo prototype Khi biên dịch 1 chương trình C: Biên dịch theo thứ tự từ trên xuống dưới Trường hợp 1 hàm bị gọi trước vị trí hàm được định nghĩa? => Phải khai báo prototype (nguyên mẫu) của hàm trước khi sử dụng hàm Cú pháp khai báo prototype: ([Danh sách các tham số]) 5 Khai báo prototype Ví dụ: #include double power(float,int); // Khai báo prototype hàm main() { float x=12.3; int n=3; printf(“lũy thừa bậc %d của %f là %f”,power(x,n)); } double power(float base, int exp) { //Định nghĩa hàm …. } 6Quy tắc hoạt động của hàm Lời gọi hàm có dạng: Tên_hàm ([Danh sách đối số]); Chú ý: Số đối số = số tham số hình thức Quy trình thực hiện khi gọi hàm: Cấp phát vùng nhớ cho các biến cục bộ và các tham số hình thức Gán giá trị của đối số cho các tham số hình thức. Thực hiện các câu lệnh trong thân hàm Khi gặp câu lệnh return hoặc dấu } cuối cùng của thân hàm thì máy sẽ xoá các biến cục bộ, các tham số hình thức và ra khỏi hàm. Nếu trở về từ một câu lệnh return có chứa biểu thức thì giá trị của biểu thức được gán cho hàm. Giá trị của hàm sẽ được sử dụng trong các biểu thức chứa nó.Tham số của hàm Tham số (function parameter): Như là 1 biến được khai báo trong khai báo hàm hoặc khai báo prototype Có phạm vi hoạt động trong hàm mà chúng được khai báo Là biến tự động, được cấp phát bộ nhớ khi hàm được gọi và bị xóa khi ra khỏi hàm Có phạm vi hoạt động tạm thời, do đó, có thể đặt tên trùng với các đại lượng ngoài hàmĐối số của hàm Đối số (argument): Là giá trị được truyền vào hàm (khi gọi hàm) tại vị trí của tham số Khi một hàm được gọi, tất cả tham số (parameter) của hàm đều được tạo như là một biến, và giá trị của đối số (argument) được copy vào trong tham số. Việc copy giá trị của đối số vào tham số được gọi là truyền tham số (parameter passing)Truyền tham số cho hàm Có 2 cách truyền tham số cho hàm: Truyền theo tham trị (by value) Truyền theo tham biến hay tham trỏ (by variable/pointer)Truyền tham số cho hàmTruyền giá trị Truyền đối số cho hàm ở dạng giá trị. Có thể truyền hằng, biến, biểu thức nhưng hàm chỉ sẽ nhận giá trị. Được sử dụng khi không có nhu cầu thay đổi giá trị của tham số sau khi thực hiện hàm. void TruyenGiaTri(int x) { … x++; }Truyền tham số cho hàmTruyền Địa chỉ (Call by Address) Truyền đối số cho hàm ở dạng địa chỉ (con trỏ). Không được truyền giá trị cho tham số này. Được sử dụng khi có nhu cầu thay đổi giá trị của tham số sau khi thực hiện hàm. void TruyenDiaChi(int *x) { … (*x)++; }Truyền tham số cho hàm Truyền mảng vào hàm: Chỉcó địa chỉ của mảng được truyền vào (tên mảng không kèm theo chỉ số là địa chỉ của mảng) Ví dụ: int a[20], n = 10; Input_array(a, n); /*Input_array(int a[], int n) là hàm nhập giá trị các phần tử mảng từ bàn phím*/Truyền tham số cho hàmLưu ý khi truyền tham số Trong một hàm, các tham số có thể truyền theo nhiều cách. void HonHop(int x, int *y) { … x++; (*y)++; }Truyền tham số cho hàmLưu ý khi truyền đối số Sử dụng tham chiếu là một cách để trả về giá trị cho chương trình.int TinhTong(int x, int y){ retur ...
Nội dung trích xuất từ tài liệu:
Bài giảng Ngôn ngữ lập trình C: Chương 4 - PhD. Nguyễn Thị HuyềnNgôn ngữ lập trình CChương 4 – Hàm Giới thiệu Khai báo prototype Viết nội dung của hàm Tham số trong lời gọi hàm Hàm đệ quyGiới thiệu Một chương trình viết trong ngôn ngữ C là một dãy các hàm, trong đó phải có một hàm chính (hàm main() ). Hàm chia các bài toán lớn thành các công việc nhỏ hơn, giúp thực hiện những công việc lặp lại nào đó một cách nhanh chóng mà không phải viết lại đoạn chương trình. Thứ tự các hàm viết trong chương trình là bất kỳ, song chương trình bao giờ cũng bắt đầu thực hiện từ hàm main(). Hàm có thể xem là một đơn vị độc lập của chương trình. Các hàm có vai trò ngang nhau, vì vậy không cho phép xây dựng một hàm bên trong các hàm khác.Quy tắc xây dựng hàm Cú pháp: ([danh sách tham số]) { [return ;] }Trong đó : kiểu bất kỳ của C (char, int, long, float,…). Nếu không có kiểu trả về thì là void. : theo quy tắc đặt tên định danh. : tham số hình thức đầu vào giống khai báo biến, cách nhau bằng dấu ,. Nếu không có đối, dung void để khai báo đối. : trả về cho hàm qua lệnh return.Khai báo prototype Khi biên dịch 1 chương trình C: Biên dịch theo thứ tự từ trên xuống dưới Trường hợp 1 hàm bị gọi trước vị trí hàm được định nghĩa? => Phải khai báo prototype (nguyên mẫu) của hàm trước khi sử dụng hàm Cú pháp khai báo prototype: ([Danh sách các tham số]) 5 Khai báo prototype Ví dụ: #include double power(float,int); // Khai báo prototype hàm main() { float x=12.3; int n=3; printf(“lũy thừa bậc %d của %f là %f”,power(x,n)); } double power(float base, int exp) { //Định nghĩa hàm …. } 6Quy tắc hoạt động của hàm Lời gọi hàm có dạng: Tên_hàm ([Danh sách đối số]); Chú ý: Số đối số = số tham số hình thức Quy trình thực hiện khi gọi hàm: Cấp phát vùng nhớ cho các biến cục bộ và các tham số hình thức Gán giá trị của đối số cho các tham số hình thức. Thực hiện các câu lệnh trong thân hàm Khi gặp câu lệnh return hoặc dấu } cuối cùng của thân hàm thì máy sẽ xoá các biến cục bộ, các tham số hình thức và ra khỏi hàm. Nếu trở về từ một câu lệnh return có chứa biểu thức thì giá trị của biểu thức được gán cho hàm. Giá trị của hàm sẽ được sử dụng trong các biểu thức chứa nó.Tham số của hàm Tham số (function parameter): Như là 1 biến được khai báo trong khai báo hàm hoặc khai báo prototype Có phạm vi hoạt động trong hàm mà chúng được khai báo Là biến tự động, được cấp phát bộ nhớ khi hàm được gọi và bị xóa khi ra khỏi hàm Có phạm vi hoạt động tạm thời, do đó, có thể đặt tên trùng với các đại lượng ngoài hàmĐối số của hàm Đối số (argument): Là giá trị được truyền vào hàm (khi gọi hàm) tại vị trí của tham số Khi một hàm được gọi, tất cả tham số (parameter) của hàm đều được tạo như là một biến, và giá trị của đối số (argument) được copy vào trong tham số. Việc copy giá trị của đối số vào tham số được gọi là truyền tham số (parameter passing)Truyền tham số cho hàm Có 2 cách truyền tham số cho hàm: Truyền theo tham trị (by value) Truyền theo tham biến hay tham trỏ (by variable/pointer)Truyền tham số cho hàmTruyền giá trị Truyền đối số cho hàm ở dạng giá trị. Có thể truyền hằng, biến, biểu thức nhưng hàm chỉ sẽ nhận giá trị. Được sử dụng khi không có nhu cầu thay đổi giá trị của tham số sau khi thực hiện hàm. void TruyenGiaTri(int x) { … x++; }Truyền tham số cho hàmTruyền Địa chỉ (Call by Address) Truyền đối số cho hàm ở dạng địa chỉ (con trỏ). Không được truyền giá trị cho tham số này. Được sử dụng khi có nhu cầu thay đổi giá trị của tham số sau khi thực hiện hàm. void TruyenDiaChi(int *x) { … (*x)++; }Truyền tham số cho hàm Truyền mảng vào hàm: Chỉcó địa chỉ của mảng được truyền vào (tên mảng không kèm theo chỉ số là địa chỉ của mảng) Ví dụ: int a[20], n = 10; Input_array(a, n); /*Input_array(int a[], int n) là hàm nhập giá trị các phần tử mảng từ bàn phím*/Truyền tham số cho hàmLưu ý khi truyền tham số Trong một hàm, các tham số có thể truyền theo nhiều cách. void HonHop(int x, int *y) { … x++; (*y)++; }Truyền tham số cho hàmLưu ý khi truyền đối số Sử dụng tham chiếu là một cách để trả về giá trị cho chương trình.int TinhTong(int x, int y){ retur ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Ngôn ngữ lập trình C Ngôn ngữ lập trình Ngôn ngữ lập trình C Kỹ thuật lập trình Tham số trong lời gọi hàm Hàm đệ quy Khai báo prototypeGợi ý tài liệu liên quan:
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 276 0 0 -
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 266 0 0 -
Bài thuyết trình Ngôn ngữ lập trình: Hệ điều hành Window Mobile
30 trang 265 0 0 -
Giáo trình Lập trình cơ bản với C++: Phần 1
77 trang 232 0 0 -
Bài giảng Một số hướng nghiên cứu và ứng dụng - Lê Thanh Hương
13 trang 226 0 0 -
80 trang 221 0 0
-
Giáo án Tin học lớp 11 (Trọn bộ cả năm)
125 trang 218 1 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 207 0 0 -
101 trang 200 1 0
-
Giới thiệu môn học Ngôn ngữ lập trình C++
5 trang 195 0 0