dànhchohộiđồngnghiệmthu
GIÁOTRÌNHLẬPTRÌNHNÂNGCAONguyễnVănVinh,PhạmHồngThái,TrầnQuốcLongKhoaCôngnghệThôngtin-TrườngĐạihọcCôngnghệ-ĐHQGNội
dànhchohộiđồngnghiệmthu
dànhchohộiđồngnghiệmthu
MỤCLỤC1Mởđầu11.1Giảiquyếtbàitoánbằnglậptrình............................11.1.1Thuậttoán.....................................11.1.2Thiếtkếchươngtrình...............................21.1.3Chukỳpháttriểnphầnmềm...........................21.2Tiêuchuẩnđánhgiámộtchươngtrìnhtốt........................31.3Ngônngữlậptrìnhvàchươngtrìnhdịch.........................41.4Môitrườnglậptrìnhbậccao...............................41.5LịchsửCvàC++.....................................51.6ChươngtrìnhđầutiêntrongC++:Indòngvănbản..................72MộtsốkháiniệmbảntrongC++112.1Khaibáobiếnvàsửdụngbiến...............................112.1.1Biến.........................................112.1.2Tênhayđịnhdanh.................................122.1.3Câulệnhgán....................................142.2Vàoradữliệu........................................152.2.1Xuấtdữliệuvớicout...............................152.2.2Chỉthịbiêndịchvàkhônggiantên........................172.2.3CácchuỗiEscape..................................182.2.4Nhậpdữliệuvớicin................................182.3Kiểudữliệuvàbiểuthức.................................202.3.1Kiểuintvàkiểudouble..............................202.3.2Cáckiểusốkhác..................................222.3.3KiểuC++11....................................222.3.4Kiểuchar......................................242.3.5Tươngthíchkiểudữliệu..............................252.3.6Toántừsốhọcvàbiểuthức............................262.4Luồngđiềukhiển......................................282.5Phongcáchlậptrình....................................31
dànhchohộiđồngnghiệmthu
iiMỤCLỤC2.6BiêndịchchươngtrìnhvớiGNU/C++..........................323Kiểmthửvàgỡrốichươngtrình373.1Kỹthuậtkiểmthử.....................................373.1.1Kiểmthửtrongkhiviếtnguồn........................383.2Kỹthuậtgỡrốichươngtrình...............................393.2.1Kháiniệmvếgỡrốichươngtrình.........................393.2.2Phânloạilỗi....................................393.2.3Mộtsốkỹthuậtgỡrối...............................403.2.4GiảiphápvàvấnđềliênquanđếnC/C++...................423.3Lậptrìnhkhônglỗi.....................................444Hàm474.1Thiếtkếtừtrênxuống(top-down)............................474.2Hàm.............................................484.2.1Ýnghĩacủahàm..................................484.2.2Cấutrúcchungcủahàm..............................484.2.3Khaibáohàm....................................514.3Cáchsửdụnghàm.....................................524.3.1Lờigọihàm.....................................524.3.2Hàmvớiđốimặcđịnh...............................544.4Biếntoàncụcvàbiếnđịaphương.............................554.4.1Biếnđịaphương(biếntronghàm,trongkhốilệnh)...............554.4.2Biếntoàncục(biếnngoàitấtcảcáchàm)....................564.4.3Mứcưutiêncủabiếntoàncụcvàđịaphương..................564.5Thamđốivàchếtruyềngiátrịchothamđối.....................604.5.1Truyềntheothamtrị................................604.5.2Biếnthamchiếu..................................614.5.3Truyềntheothamchiếu..............................634.5.4Haicáchtruyềngiátrịchohàmvàtừkhóaconst...............644.6Ngănxếpgọihàmvàcácmẫutinkíchhoạt.......................644.7Chồnghàmvàkhuônmẫuhàm..............................684.7.1Chồnghàm(hàmtrùngtên)............................684.7.2Khuônmẫuhàm..................................704.8Lậptrìnhvớihàmđệquy.................................724.8.1Kháiniệmđệqui..................................724.8.2Lớpcácbàitoángiảiđượcbằngđệqui......................744.8.3Cấutrúcchungcủahàmđệqui..........................75
dànhchohộiđồngnghiệmthu
MỤCLỤCiii5Mảng835.1Lậptrìnhvàthaotácvớimảngmộtchiều........................835.1.1Ýnghĩacủamảng.................................835.1.2Thaotácvớimảngmộtchiều...........................845.1.3Mảngvàhàm....................................885.1.4Tìmkiếmvàsắpxếp................................935.2Lậptrìnhvàthaotácvớimảngnhiềuchiều.......................985.2.1Mảng2chiều....................................985.2.2Thaotácvớimảnghaichiều............................995.3Lậptrìnhvàthaotácvớixâutự............................1055.3.1Khaibáo......................................1065.3.2Thaotácvớixâutự...............................1065.3.3Phươngthứcnhậpxâu(#include<iostream>).................1075.3.4Mộtsốhàmlàmviệcvớixâutự(#include<cstring>)...........1085.3.5Cáchàmchuyểnđổixâudạngsốthànhsố(#include<cstdlib>)......1125.3.6Mộtsốdụlàmviệcvớixâu...........................1136Cáckiểudữliệutrừutượng1196.1Kiểudữliệutrừutượngbằngcấutrúc(struct).....................1196.1.1Khaibáo,khởitạo.................................1196.1.2Hàmvàcấutrúc..................................1226.1.3BàitoánQuảnsinhviên(QLSV)........................1276.2Kiểudữliệutrừutượngbằnglớp(class)........................1346.2.1Khaibáolớp....................................1356.2.2Sửdụnglớp.....................................1366.2.3BàitoánQuảnsinhviên............................1436.2.4Khởitạo(giátrịbanđầu)chomộtđốitượng..................1466.2.5Hủyđốitượng...................................1526.2.6Hàmbạn(friendfunction).............................1526.2.7Tạocácphéptoáncholớp(haytạochồngphéptoán-OperatorOverloading)1566.3Dạngkhuônmẫuhàmvàlớp...............................1596.3.1Khaibáomộtkiểumẫu..............................1596.3.2Sửdụngkiểumẫu.................................1606.3.3Mộtsốdạngmởrộngcủakhaibáomẫu.....................1627Contrỏvàbnhớ1677.1Kháiniệmcontrỏ.....................................1677.2Biếncontrỏ.........................................1677.3Cấpphátbnhớđộng...................................171