Giáo trình ngôn ngữ lập trình C/C++ - Chương 6
lượt xem 137
download
chuyên đề tin học , tin học đại cương ,Giáo trình lập trình, ngôn ngữ lập trình C, cấu trúc lặp
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Giáo trình ngôn ngữ lập trình C/C++ - Chương 6
- Chương 4: Hàm 1. Khái niệm hàm 2 Định 2. Đị h nghĩa hĩ hàm hà 3. Biến tòan cục và biến cục bộ 4 Các kiểu lưu trữ 4. 5. Tham số giá trị và tham số biến 6. Nguyên g y mẫu hàm 7. Quá tải hàm 8. Đối số mặc định 9. Đệ quy 10. Tạo số ngẫu nhiên Khoa ĐTVTHK. Kỹ Thuật Lập Trình Chương 4: Hàm Trang 1
- 1. Khái niệm hàm Hàm là chương trình con cho phép 9 Module hóa một chương trình 9 Khả năng tái sử dụng phầnầ mềmề Các biến địa phương – Local variables 9 Khai báo trong hàm nào thì chỉ được biết đến bên trong hàm đó 9 Biến được ợ khai báo bên trong g hàm là biến địa ị phương Các tham số – Parameters 9 Là các biếnế địa phương với giá trị được truyền ề vào hàm khi hàm được gọi 9 Cung cấp thông tin về bên ngoài hàm Khoa ĐTVTHK. Kỹ Thuật Lập Trình Chương 4: Hàm Trang 2
- 1. Khái niệm hàm Các module: các hàm(function) và lớp(class) Các chương trình sử dụng các module mới và đóng gói sẵn ( prepackaged ) (“prepackaged”) 9 Mới: các hàm và lớp do lập trình viên tự định nghĩa 9 Đóng gói sẵn: các hàm và lớp từ thư viện chuẩn Lời gọi hàm - function call 9 tên hàm và các thông tin (các đối số - arguments) mà nó cần 9 Giá trị mà hàm trả về (nếu có) Định nghĩa hàm - function definition 9 chỉ viết một lần 9 được che khỏi các hàm khác Khoa ĐTVTHK. Kỹ Thuật Lập Trình Chương 4: Hàm Trang 3
- 2. Định nghĩa hàm Định nghĩa hàm return-value-type function_name ( parameter-list ) { declarations and statements } Danh sách tham số ố – Parameter list 9 Dấu phảy tách các tham số 9 Mỗi tham số cần cho biết kiểu dữ liệu của tham số đó 9 Nếu không g có đối số,, sử dụng ụ g void hoặc ặ để trống g Giá trị trả về – Return-value-type 9 Kiểu của giá trị trả về (sử dụng void nếu không trả vềề giá trị gì) Khoa ĐTVTHK. Kỹ Thuật Lập Trình Chương 4: Hàm Trang 4
- 2. Định nghĩa hàm Từ khóa return 9 Trả dữ liệu về 9 Trả điều ề khiển ể lại cho nơi gọi (caller). Nếu ế không trả về giá trị thì sử dụng return; 9 Syntax: return value; or return (value); Không g thể định ị nghĩa g một ộ hàm bên trong g một ộ hàm khác Khoa ĐTVTHK. Kỹ Thuật Lập Trình Chương 4: Hàm Trang 5
- 3. Biến tòan cục biến cục bộ Biến toàn cục: Là biến có thể được sử dụng ở bất kỳ nơi nào trong chương trình. Biến toàn cục được khai báo ở bên ngoài ài hà hàm vàà th thường ờ nằm ằ phía hí ddưới ới kh khaii bá báo th thư viện iệ Biến cục bộ được khai báo ở bên trong một khối lệnh và chỉ có ý nghĩa ở trong khối lệnh đó đó. Nếu biến cục bộ được khai báo ở bên trong một hàm thì nó chỉ có ý nghĩa ở trong hàm đó Khoa ĐTVTHK. Kỹ Thuật Lập Trình Chương 4: Hàm Trang 6
- 3. Biến tòan cục biến cục bộ void increaseX() { int x = 20;; // x là biến cục ụ bộ ộ x = x + 1; // tăng x lên 1 cout
- Tóan tử :: và phạm vi biến 9 Khi 1 biến cục bộ có cùng tên với biến tòan cục, thì C++ sẽ xem như là sử dụng biến cục bộ. 9 Trong phạm vi cục bộ, bộ để truy xuất biến tòan cục có cùng tên, sử dụng tóan tử :: trước tên biến. 9 Tóan tử :: báo compiler sử dụng biến tòan cục 9 Nên tránh dùng các tên giống nhau cho các biến địa phương và toàn cục float n number mber = 42 42.8; 8 // Biến tòan ccục c int main() { float number = 26.4; // Biến cục bộ cùng tên cout
- 4. Các kiểu lưu trữ – Storage Classes Biến có các thuộc tính: 9 Tên 9 Kiểu ể 9 Kích thước 9 Giá ttrịị 9 Phạm vi – Scope: biến có thể được sử dụng tại nhữngg nơi nào trong g chương g trình 9 Kiểu lưu trữ – Storage class: biến tồn tại bao lâu trong bộ nhớ 9 Liên kết ế – Linkage: Đối ố với những chương trình gồm ồ nhiều file (multiple-file program) – (xem chương 6), những file nào có thể sử dụng biến đó Khoa ĐTVTHK. Kỹ Thuật Lập Trình Chương 4: Hàm Trang 9
- 4.1 Loại biến tự động Loại biến tự động – Automatic storage class Biến được tạo khi chương trình chạy vào một khối chương trình ((block)) và bịị hủyy bỏ khi chương g trình ra khỏi block Chỉ có các biến địa phương của các hàm mới có thể là biến tự động mặc định là tự động từ khóa auto dùng để khai báo biến tự động Từ khóa register gợi ý đặt biến vào thanh ghi tốc độ cao có lợi cho các biến thường xuyên được sử dụng (con đếm vòng lặp) Thường là không cần thiết, trình biên dịch tự tối ưu hóa Chỉ dùng một trong hai từ register hoặc auto. register int counter = 1; Khoa ĐTVTHK. Kỹ Thuật Lập Trình Chương 4: Hàm Trang 10
- Loại biến tự động: Ví dụ void testauto() { int num = 0; // num is a local auto variable cout
- 4.2 Biến tĩnh loại biến tĩnh – Static storage class Biến tồn tại trong suốt chương trình Có thể không phải nơi nào cũng dùng được, được do áp dụng quy tắc phạm vi (scope rules) từ khóa static dành cho biến địa phương bên trong hàm giữ giá trị giữa các lần gọi hàm chỉ được biết đến trong hàm của biến đó Khoa ĐTVTHK. Kỹ Thuật Lập Trình Chương 4: Hàm Trang 12
- Biến tĩnh: Ví dụ 1 int funct( int x) { int sum = 100; // sum is a local auto variable sum += x; return sum; } int main() { int count, value; // local auto variable for(count = 1; count
- Biến tĩnh: Ví dụ 2 int funct( int x) { static int sum = 100; // sum is a local static sum += x; return sum; } int main() { int count, value; // local auto variable for(count = 1; count
- 4.3 Extern Biến tòan cục là biến khai báo bên ngòai hàm và được sử dụng trong tòan chương trình. Biến tòan cục có thể được khai báo với static hoặc external Từ khóa extern: Cho phép mở rộng phạm vi tòan cục của biến. Thông thường, thường 1 project C++ bao gồm nhiều file file. Extern cho phép biến tòan cục sử dụng giữa các file với nhau. //file1 //file2 int TotalPrice; double interest; static double external int price; coupon; int func3(); . . int main(){ //end of file2 Khoa ĐTVTHK. Kỹ Thuật Lập Trình Chương 4: Hàm Trang 15
- 5. Tham số giá trị tham số biến Tham chiếu là một bí danh của biến khác. Khi tạo ra một tham chiếu, gán nó lên một biến khác thì tham chiếu hoạt động như chính biến đã gán đến nó Kiểu dữ liệu của tham chiếu phải trùng với kiểu dữ liệu của biến mà nó tham chiếu đến. Tham chiếuế tương tự trong thực tếế như một người có thểể được gán một bí danh khác (một người có nhiều tên gọi khác nhau). Trong mô hình bộ nhớ máy tính thì địa chỉ của tham chiếu chính là địa chỉ của biến mà nó tham chiếu đến. Cú pháp: &Tên tham chiếu = Biến đã tồn tại; Ví dụ: int a = 6; int &b = a; Khoa ĐTVTHK. Nhập môn tin học Chương 4: Hàm Trang 16
- Tham số giá trị tham số biến type name ( type var1, type type name ( type &var1, var 2,…) statement type &var 2,…) statement Khi truyền tham số dưới dạng Khi truyền tham số dưới tham số giá trị chúng ta truyền dạng tham số biến chúng ta giá trị của biến đó. Bất kì sự đang truyền bản thân biến thay đổiổ nào mà chúng ta thực đó và bất ấ kì sự thay đổi ổ nào hiện với tham số đó bên trong mà chúng ta thực hiện với hàm sẽ KHÔNG ảnh hưởng tham số đó bên trong hàm trực tiếp đến biến đó. sẽ ẢNH HƯỞNG trực tiếp đến biến đó. int congba(int a, int b, int c) int congba(int &a, int &b, int &c) T Tong = congba(x, b ( y, z)) Tong = congba(x, y, z) Khoa ĐTVTHK. Nhập môn tin học Chương 4: Hàm Trang 17
- Vd: Tham số giá trị tham số biến // passing parameters by variable // passing parameters by reference #include #include void duplicate (int a, int b, int c) void duplicate (int& a, int& b,int& c) { { c*=2; a*=2; b*=2; b*=2; c*=2; c*=2; } } int main () int main () { { int x=1 x=1, y=3 y=3, z=7; int x=1 x=1, y=3 y=3, z=7; duplicate (x, y, z); duplicate (x, y, z); cout
- 6. Nguyên mẫu hàm - Function Prototype Nguyên mẫu hàm báo cho trình biên dịch biết sẽ sử dụng hàm này ở phía sau. F Function ti prototype t t b gồm bao ồ ¾ Tên hàm ¾ Các tham số ((số lượng g và kiểu dữ liệu) ệ ) ¾ Kiểu trả về (void nếu không trả về giá trị gì) Function prototype chỉ cần đến nếu định nghĩa hàm đặt sau lời gọii hàm hà (function (f ti call) ll) Prototype phải khớp với định nghĩa hàm: Function prototype double maximum( double, double, double ); Function definition double maximum( double x x, double y y, double z ) { … } Khoa ĐTVTHK. Kỹ Thuật Lập Trình Chương 4: Hàm Trang 19
- 7. Function Overloading C++ cho phép nhiều hàm có cùng tên nhưng các đối số có kiểu dữ liệu khác nhau và được gọi là function overloading. l di int getabs(int x) { if( x < 0) x = -x; return x ; } double getabs(double x) { if( x < 0) x = -x; return x ; } Nếu lời gọi hàm là getabs(10); Compiler sẽ sử dụng hàm thứ nhất, hất nếu ế gọii getabs(10.0) t b (10 0) ; C Compiler il sẽẽ gọii hà hàm 2 2nd d Khoa ĐTVTHK. Kỹ Thuật Lập Trình Chương 4: Hàm Trang 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Giáo trình Ngôn ngữ lập trình C - ThS. Tiêu Kim Cương
202 p | 11891 | 5498
-
Giáo trình: Ngôn ngữ lập trình máy tính C++
114 p | 524 | 206
-
Giáo trình Ngôn ngữ lập trình C (Phần 1) - ThS.Tiêu Kim Cương
21 p | 571 | 201
-
Giáo trình ngôn ngữ lập trinh C part 2
21 p | 394 | 163
-
Giáo trình ngôn ngữ lập trinh C part 3
21 p | 328 | 140
-
Giáo trình ngôn ngữ lập trinh C part 4
21 p | 308 | 130
-
Giáo trình ngôn ngữ lập trinh C part 5
21 p | 302 | 123
-
Giáo trình ngôn ngữ lập trinh C part 6
21 p | 307 | 122
-
Giáo trình ngôn ngữ lập trinh C part 7
21 p | 234 | 105
-
Giáo trình ngôn ngữ lập trinh C part 8
21 p | 217 | 101
-
Giáo trình ngôn ngữ lập trinh C part 9
21 p | 220 | 98
-
Giáo trình Ngôn ngữ lập trình C p1
20 p | 354 | 96
-
Giáo trình ngôn ngữ lập trinh C part 10
13 p | 209 | 96
-
Giáo trình Ngôn ngữ lập trình Java: Phần 1
81 p | 234 | 43
-
Giáo trình Ngôn ngữ lập trình C
155 p | 253 | 41
-
Giáo trình Ngôn ngữ lập trình C++: Phần 1 - TS. Vũ Việt Vũ
116 p | 29 | 13
-
Giáo trình Ngôn ngữ lập trình Fortran 90: Phần 1
101 p | 44 | 4
-
Giáo trình Ngôn ngữ lập trình 2
50 p | 55 | 3
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