Bài giảng Lập trình nâng cao - Chương 4: Hàm
Số trang: 80
Loại file: pdf
Dung lượng: 466.71 KB
Lượt xem: 22
Lượt tải: 0
Xem trước 8 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng "Lập trình nâng cao - Chương 4: Hàm" cung cấp cho người học các kiến thức: Mục đích sử dụng, cách sử dụng, cơ chế truyền tham số, biến địa phương và tổ chức bộ nhớ, 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 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đó
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ớGợi ý tài liệu liên quan:
-
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 266 0 0 -
80 trang 222 0 0
-
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 208 0 0 -
Giới thiệu môn học Ngôn ngữ lập trình C++
5 trang 195 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 167 0 0 -
Luận văn: Nghiên cứu kỹ thuật giấu tin trong ảnh Gif
33 trang 153 0 0 -
Lý thuyết ngôn ngữ lập trình C++ dành cho sinh viên: Phần 2
276 trang 128 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 118 0 0 -
Giáo trình về phân tích thiết kế hệ thống thông tin
113 trang 114 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 109 0 0