Danh mục

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    
Jamona

Phí tải xuống: 30,000 VND Tải xuống file đầy đủ (80 trang) 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đó

Tài liệu được xem nhiều: