intTypePromotion=1
ADSENSE

Bài giảng Lập trình C++: Chương 6 - GV. Nguyễn Văn Hùng

Chia sẻ: Minh Minh | Ngày: | Loại File: PDF | Số trang:60

87
lượt xem
15
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng Lập trình C++ - Chương 6: Hàm (function) do GV. Nguyễn Văn Hùng thực hiện, giúp người học nắm được các kiến thức về hàm; hàm và mảng dữ liệu; hàm và cấu trúc; đệ quy. Chúc bạn học tốt.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Lập trình C++: Chương 6 - GV. Nguyễn Văn Hùng

  1. LẬP TRÌNH C++ (3 Tín chỉ) Gv: Nguyễn Văn Hùng Khoa: Khoa học máy tính Ngôn ngữ lập trình C++ 1/56
  2. Chương 6: HÀM (FUNCTION) 6.1. Hàm 6.2. Hàm và mảng dữ liệu 6.3. Hàm và cấu trúc 6.4. Đệ quy Ngôn ngữ lập trình C++ 2/56
  3. Hàm - Khái niệm - Khai báo và định nghĩa - Lời gọi và sử dụng hàm - Biến và truyền tham số - Khai báo hàm trùng tên Ngôn ngữ lập trình C++ 3/56
  4. Khái niệm - Hàm là một chương trình con, hàm có thể trả về hay không trả về giá trị; truyền hay không truyền các tham số. - Một chương trình trong C++ có thể gồm nhiều hàm. Nhưng có một hàm chính với tên gọi là hàm main(). - Khi thực thi chương trình, nó luôn bắt đầu từ hàm main(). - Hàm giúp cho việc phân đoạn chương trình một cách riêng rẽ. Hàm có thể được sử dụng nhiều lần trong một chương trình hoặc sử dụng ở nhiều chương trình khác nhau. - Hàm có một số đặc điểm sau: Ngôn ngữ lập trình C++ 4/56
  5. Khái niệm - Nằm trong hoặc ngoài chương trình có lời gọi đến hàm. Trong một chương trình có thể chứa nhiều hàm - Một hàm có thể được gọi từ hàm main(), từ một hàm khác hay được gọi bởi chính nó (trường hợp đệ quy) - Không có hàm lồng nhau - Có 3 cách truyền giá trị cho hàm: • Truyền theo tham biến. • Truyền theo tham trị • Truyền theo tham trỏ Ngôn ngữ lập trình C++ 5/56
  6. Khai báo và định nghĩa hàm Khai báo hàm: - Hàm có thể trả về hoặc không trả về giá trị. Trường hợp hàm trả về giá trị thì kiểu của giá trị trả lại được gọi là kiểu của hàm. - Hàm được chia làm 2 loại: + Hàm định nghĩa sẵn + Hàm do người lập trình tự định nghĩa. Ngôn ngữ lập trình C++ 6/56
  7. Khai báo và định nghĩa hàm Hàm định nghĩa sẵn: có trong tệp thư viện *.h. Để sử dụng được các hàm này ta cần phải khai báo tệp tiêu đề theo cú pháp #include Ví dụ: #include #include Ngôn ngữ lập trình C++ 7/56
  8. Khai báo và định nghĩa hàm Hàm do người lập trình tự định nghĩa: có thể được khai báo ở đầu chương trình theo cú pháp: Kieu_du_lieu Ten_ham(Danh_sach_kieu_doi_so); Trong đó: Kieu_du_lieu: là kiểu trả về của hàm int, float, char, ... Trường hợp hàm không trả về giá trị thì khai báo kiểu void. Trường hợp không chỉ rõ kieu_tra_ve thì ngầm định là kiểu int Ten_ham: được đặt theo quy tắc đặt tên. Danh_sach_kieu_doi_so: có thể có hoặc không. Trường hợp không có thì gọi là hàm không có đối số. Ngôn ngữ lập trình C++ 8/56
  9. Khai báo và định nghĩa hàm Định nghĩa hàm: * Hàm có trả về giá trị: Cú pháp: kieu_du_lieu Ten_ham(Ds_tham_so_hinh_thuc) { Khai báo các biến cục bộ; Các câu lệnh; return(biểu thức); } Ngôn ngữ lập trình C++ 9/56
  10. Khai báo và định nghĩa hàm Định nghĩa hàm: Ví dụ: Định nghĩa hàm tính luỹ thừa n (với n nguyên) của một số thực bất kỳ. Hàm này có hai đầu vào (đối thực x và số mũ nguyên n) và đầu ra (giá trị trả lại) kiểu thực với độ chính xác gấp đôi là xn. double luythua(float x, int n) //x,n là các tham số hình thức { int i ; // i là biến cục bộ double kq = 1 ; // kq để lưu kết quả for (i=1; i
  11. Khai báo và định nghĩa hàm Định nghĩa hàm: * Hàm không trả về giá trị: Nếu hàm không trả lại giá trị (còn gọi là hàm kiểu void): - kieudulieu: sử dụng từ khóa void - Trong thân hàm có thể có khoặc không câu lệnh return. Nếu có thì sau return không có biểu thức. Ví dụ: Viết một hàm xoá màn hình 100 lần void ClearSrceen() { int i; for (i=1; i
  12. Lời gọi và sử dụng hàm - Khái niệm: Gọi hàm là việc chuyển quyền điều khiển từ hàm đang gọi đến hàm được gọi. Hàm có thể được gọi từ hàm khác hoặc từ chính bản thân nó.. - Gọi hàm: để thực hiện việc gọi hàm, sử dụng tên của hàm được gọi và theo sau là các tham số thực tế được đặt trong cặp dấu ngoặc đơn ( ) Cú pháp: Ten_ham(Ds_tham_so_thuc_te); Trong đó: Ds_tham_so_thuc_te phân tách nhau bởi dấu phẩy (,) Ngôn ngữ lập trình C++ 12/56
  13. Lời gọi và sử dụng hàm Ví dụ: double luythua(float x, int n) main() // tính giá trị 2x3-5x2-4x + 1 { { int i ; float x ; double kq = 1 ; double f ; for (i=1; i x; return kq; f = 2*luythua(x,3)-5*luythua(x,2)-4*x + 1; } } Ngôn ngữ lập trình C++ 13/56
  14. Biến và truyền tham số - Phân loại biến: + Biến thường + Biến con trỏ với dấu * trước tên biến + Biến tham chiếu: thực chất là một bí danh được gán cho một biến nào đó. Lúc đó, chỗ nào xuất hiện biến thì cũng tương đương dùng bí danh và ngược lại. - Cú pháp khai báo biến tham chiếu: Kieudulieu &ten_bien_tham_chieu=ten_bien_duoc_tham_chieu Tác dụng: tạo ra một biến tham chiếu mới và cho nó tham chiếu đến biến được tham chiếu (cùng kiểu). Khi đó, biến tham chiếu còn được gọi là bí danh của biến được tham chiếu. Ngôn ngữ lập trình C++ 14/56
  15. Biến và truyền tham số Ví dụ: int a, b; int &a1=a, &b1=b; a=2; b=3; cout
  16. Biến và truyền tham số Lưu ý: - Biến tham chiếu phải được khởi tạo khi khai báo. - Mặc dù giống con trỏ nhưng không dùng được các phép toán trên con trỏ cho biến tham chiếu. Nói chung chỉ nên dùng trong truyền tham số cho hàm. Ngôn ngữ lập trình C++ 16/56
  17. Biến và truyền tham số - Các cách truyền tham số: có 3 cách truyền tham số + Truyền theo tham trị + Truyền theo tham biến + Truyền theo tham trỏ Ngôn ngữ lập trình C++ 17/56
  18. Biến và truyền tham số + Truyền theo tham trị: - Trong phương pháp nkày: + Các tham số hình thức (đối số) chỉ nhận giá trị vào cho chương trình con mà không trả kết quả về. + Tham số hình thức được xem như là một biến cục bộ của chương trình con và được cấp phát ô nhớ riêng. + Các tham số thực tế là một biểu thức (một biến, một hằng, một hàm, một biểu thức thực sự) Ngôn ngữ lập trình C++ 18/56
  19. Tham số hình thức Tham trị: biến cục bộ Tham trỏ: con trỏ Tham biến: biến tham chiếu Tham số thực tế Tham trị: biểu thức (biến, hằng, hàm,..) Tham trỏ: một biến. Chứa địa chỉ ô nhớ Tham biến: biến tham chiếu BT: 1->8 (trừ 4) cuối C6 sx nhanh, sp chọn Ngôn ngữ lập trình C++ 19/56
  20. Biến và truyền tham số - Các bước thực hiện: + Tại thời điểm gọi: giá trị của tham số thực tế được sao chép vào trong ô nhớ của tham số hình thức + Trong quá trình thực hiện: mọi thao tác trên tham số hình thức là sự thao tác trên ô nhớ riêng của nó + Khi kết thúc: sự thay đổi giá trị của tham số hình thức không làm ảnh hưởng đến giá trị của tham số thực tế. Ngôn ngữ lập trình C++ 20/56
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2