
Bài giảng Lập trình nâng cao - Chương 4: Hàm
Thông tin tài liệu:
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình nâng cao - Chương 4: Hàm HàmLậptrìnhnângcao Outline1. Mụcđíchsửdụng2. Cáchsửdụng3. Cơchếtruyềnthamsố – Truyềngiátrị-Pass-by-value – Truyềnthamchiếu-Pass-by-reference4. Biếnđịaphươngvàtổchứcbộnhớ5. Hàmđệquy – Cơchếbộnhớ – Tìmkiếmnhịphân – Duyệthoánvị,duyệttổhợp Hàm• Đểlàmgì? – Chiabàitoánlớnthànhcácbàitoánnhỏhơn – Táchkháiniệmrakhỏicàiđặt • Bạncóphảibiếtcodecủahàmsqrt()? Ø Chươngtrìnhdễhiểuhơn – Tránhcodelặpđilặplại Ø TáisửdụngØ Lậptrìnhcócấutrúc–structuredprogramming Internalvs.Externalfuncpon• Internal:bạntựđịnhnghĩa• External:vídụabs,sqrt,exp…đượcnhóm thànhcácthưviệnmath,iostream,stdlib… Input/outputCácthamsốàhàmàgiátrịtrảvề Hàmđặtsaumain cầncófuncponprototypeđặttrướcint absolute(int x); // function prototypeint main() { … a = absolute(b); // function use}int absolute(int x) { // function definition if (x >= 0) return x; else return -x;} Hàmđặttrước khôngcầnprototypeint absolute(int x) { // function definition if (x >= 0) return x; else return -x;}int main() { … a = absolute(b); // function use} Cúphápđịnhnghĩahàm(){ } int absolute(int x) { if (x >= 0) return x; else return -x; }Cúphápkhaibáoprototypehàm(); int absolute(int x); Truyềnthamsố-pass-by-valueintargument1;doubleargument2;//functioncall(inanotherfunction,suchasmain)result=thefunctionname(argument1,argument2); copygiátrị//functiondefinitionintthefunctionname(intparameter1,doubleparameter2){//Nowthefunctioncanusethetwoparameters//parameter1=argument1,parameter2=argument2 pass-by-valuevoid swap(int x, int y) { int t = x; x = y; y = t;}int main() { 2,3 int a = 2; int b = 3; Sai!Vìx,ylà swap(a,b); bảnsaocủaa,b cout pass-by-referencevoid swap(int& x, int& y) { int t = x; x = y; y = t;}int main() { 3,2 int a = 2; int b = 3; Đúng.Vìx,ylà swap(a,b); thamchiếutớia,b cout Cấutrúcbộnhớ CPUvàBộnhớ• CPU•nhtoánvớidữliệughitạicácthanhghi• Dữliệuđượcchuyểnqualạigiữabộnhớvà cácthanhghi Lưudữliệutrongbộnhớ• Kíchthướcmỗiôlà8bit–1byte• Cáckiểudữliệulớncầnmộtchuỗibyteliên pếp,xácđịnhbởi 1. địachỉbyteđầupên,và 2. kíchthước Bitßàgiátrịdữliệu• Thứtựbytemãhóavàgiảimãcầnnhấtquán• Big-endian:từtráisangphải, địachỉcácbytetăngdần(mainframe,IPv4…)• LiŒle-endian:từtráisangphải, địachỉcácbytegiảmdần(Intelx86,x86-64) Bộnhớảo–virtualmemory• Mỗipếntrình(chươngtrìnhđangchạy)được phânmộtkhônggianbộnhớriêng – Hệđiềuhànhánhxạmộtphầnbộnhớlogicvớibộ nhớvậtlý – ĐịachỉtrongcáckhônggiankhácnhaulàđộclậpBiếnvàcáclờigọihàm Biến• Biếnlàtêngọicủamộtvùngbộnhớcụthể – Cóthểđọcvàghinộidung• Kiểudữliệu(datatype):dùngđểđọclấygiá trịcủabiến – Biếngồmbaonhiêuônhớ – Tínhgiátrịbiếntừgiátrịcácônhớbằngcáchnào Cuộcđờicủabiếnđịaphương• Đượckhaibáotrongmộtkhốilệnh• Cuộcđờivàphạmvihiệulựctươngứngvới khốilệnhđó
Tìm kiếm theo từ khóa liên quan:
Bài giảng Lập trình nâng cao Kỹ thuật lập trình Hàm đệ quy Cơ chế truyền tham số Biến địa phương Tổ chức bộ nhớTài liệu có liên quan:
-
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 306 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 246 0 0 -
80 trang 238 0 0
-
Giới thiệu môn học Ngôn ngữ lập trình C++
5 trang 222 0 0 -
Bài giảng Nhập môn về lập trình - Chương 1: Giới thiệu về máy tính và lập trình
30 trang 188 0 0 -
Lý thuyết ngôn ngữ lập trình C++ dành cho sinh viên: Phần 2
276 trang 162 0 0 -
Luận văn: Nghiên cứu kỹ thuật giấu tin trong ảnh Gif
33 trang 159 0 0 -
Báo cáo thực tập Công nghệ thông tin: Lập trình game trên Unity
27 trang 126 0 0 -
Giáo trình về phân tích thiết kế hệ thống thông tin
113 trang 119 0 0 -
LUẬN VĂN: Tìm hiểu kỹ thuật tạo bóng cứng trong đồ họa 3D
41 trang 115 0 0 -
Bài giảng Kỹ thuật lập trình - Chương 10: Tổng kết môn học (Trường Đại học Bách khoa Hà Nội)
67 trang 113 0 0 -
Giáo trình Nhập môn lập trình VB6: Phần 2
184 trang 110 0 0 -
Giáo trình Nhập môn lập trình VB6: Phần 1
246 trang 106 0 0 -
Giáo trình toán rời rạc - Phụ lục 2
15 trang 92 0 0 -
Nghiên cứu triển khai nội địa hóa máy tính thương hiệu Việt Nam
585 trang 87 0 0 -
Giáo trình Lập trình hướng đối tượng với Java: Phần 2 - Trần Thị Minh Châu, Nguyễn Việt Hà
141 trang 86 0 0 -
Giáo trình Ngôn ngữ lập trình C++: Phần 2 - TS. Vũ Việt Vũ
107 trang 67 0 0 -
Cách chia sẻ File, dữ liệu mạng Lan trong Windows Xp
10 trang 67 0 0 -
Luận văn: TÌM HIỂU KỸ THUẬT LẬP TRÌNH NETWORK SERVICE CHO WINDOW
39 trang 60 0 0 -
Bài giảng Kỹ thuật lập trình: Chương 7 - Trần Quang
28 trang 58 0 0