Xem mẫu

  1. Updatesofts.com Ebooks Team C++ Căn b n và nâng cao M c l c: I. Cơ b n v C++ (2) I. C u trúc c a m t trương trình C++ (2) II. Các bi n ki u và h ng s (5) III. Các toán t (13) IV. Giao ti p v i Console (19) II. Các c u trúc ñi u khi n và Hàm (22) I. C u trúc d li u ñi u khi n (22) II. Hàm I (29) III. Hàm II (34) III. D li u nâng cao (41) I. M ng (41) II. Sâu ký t (48) III. Con tr (54) IV. B nh ñ ng (65) V. Các c u trúc (69) VI. Các ki u d li u do ngư i dùng ñ nh nghĩa. (typedef, union, enum) (75) Trang 1
  2. Updatesofts.com Ebooks Team C u trúc c a m t chương trình C++ Có l m t trong nh ng cách t t nh t ñ b t ñ u h c m t ngôn ng l p trình là b ng m t chương trình. V y ñây là chương trình ñ u tiên c a chúng ta : Hello World! // my first program in C++ #include int main () { cout
  3. Updatesofts.com Ebooks Team (không b t bu c). N i dung c a hàm main ti p ngay sau ph n khai báo chính th c ñư c bao trong các ngo c nh n ( { } ) như trong ví d c a chúng ta cout
  4. Updatesofts.com Ebooks Team with more comments */ #include int main () { cout
  5. Updatesofts.com Ebooks Team Các bi n, ki u và h ng s Identifiers M t tên (indentifiers) h p l là m t chu i g m các ch cái, ch s ho c kí t g ch dư i. Chi u dài c a m t tên là không gi i h n. Kí t tr ng, các kí t ñánh d u ñ u không th có m t trong m t tên. Ch có ch cái, ch s và kí t g ch dư i là ñư c cho phép. Thêm vào ñó, m t tên bi n luôn ph i b t ñ u b ng m t ch cái. Chúng cũng có th b t ñ u b ng kí t g ch dư i ( _ ) nhưng kí t này thư ng ñư c dành cho các liên k t bên ngoài (external link). Không bao gi chúng b t ñ u b ng m t ch s . M t lu t n a mà b n ph i quan tâm ñ n khi t o ra các tên c a riêng mình là chúng không ñư c trùng v i b t kì t khoá nào c a ngôn ng hay c a trình d ch, ví d các tên sau ñây luôn luôn ñư c coi là t khoá theo chu n ANSI-C++ và do v y chúng không th ñư c dùng ñ ñ t tên asm, car, bool, break, marry, catch, to char, class, const, const_cast, continue, default, delete, do, double, dynamic_cast, else, enum, explicit, extern, false, float, for, friend, goto, if, inline, int, long, mutable, namespace, new, operator, private, protected, public, to register, reinterpret_cast, return, short, signed, sizeof, static, static_cast, struct, switch, template, this, throw, true, try, typedef, typeid, typename, union, unsigned, using, virtual, void, volatile, wchar_t Thêm vào ñó, m t s bi u di n khác c a các toán t (operator) cũng không ñư c dùng làm tên vì chúng là nh ng t ñư c dành riêng trong m t s trư ng h p. and, and_eq, bitand, bitor, compl, not, not_eq, or, or_eq, xor, xor_eq Trình d ch c a b n có th thêm m t t dành riêng ñ c trưng khác. Ví d , r t nhi u trình d ch 16 bit (như các trình d ch cho DOS) còn có th các t khoá far, huge và near. Chú ý: Ngôn ng C++ là "case sensitive" có nghĩa là phân bi t ch hoa ch thư ng. Do v y bi n RESULT khác v i result cũng như Result. Các ki u d li u Khi l p trình, chúng ta lưu tr các bi n trong b nh c a máy tính nhưng máy tính ph i bi t chúng ta mu n lưu tr gì trong chúng vì các ki u d li u khác nhau s c n lư ng b nh khác nhau. Trang 5
  6. Updatesofts.com Ebooks Team B nh c a máy tính chúng ta ñư c t ch c thành các byte. M t byte là lư ng b nh nh nh t mà chúng ta có th qu n lí. M t byte có th dùng ñ lưu tr m t lo i d li u nh như là ki u s nguyên t 0 ñ n 255 hay m t kí t . Nhưng máy tính có th x lý các ki u d li u ph c t p hơn b ng cách g p nhi u byte l i v i nhau, như s nguyên dài hay s th p phân. Ti p theo b n s có m t danh sách các ki u d li u cơ b n trong C++ cũng như mi n giá tr mà chúng có th bi u di n S Tên Mô t Mi n giá tr byte có d u: -128 to 127 1 Kí t hay ki u s nguyên 8-bit char không d u: 0 to 255 có d u: -32763 to 32762 2 ki u s nguyên 16-bit short không d u: 0 to 65535 có d u:-2147483648 to 4 ki u s nguyên 32-bit 2147483647 long không d u: 0 to 4294967295 S nguyên. ð dài c a nó ph thu c vào h th ng, như trong MS-DOS nó là 16-bit, trên * Xem short, long int Windows 9x/2000/NT là 32 bit... D n g d u ph y ñ n g 4 3.4e + / - 38 (7 digits) float D ng d u ph y ñ ng v i ñ chính xác g p double 8 1.7e + / - 308 (15 digits) ñôi D ng d u ph y ñ ng v i ñ chính xác hơn long 10 1.2e + / - 4932 (19 digits) na double Giá tr logic. Nó m i ñư c thêm vào chu n 1 ANSI-C++. B i v y không ph i t t c các bool ho c false true trình d ch ñ u h tr nó. Ngoài các ki u d li u cơ b n nói trên còn t n t i các con tr và các tham s không ki u (void) mà chúng ta s xem xét sau. Khai báo m t bi n ð có th s d ng m t bi n trong C++, ñ u tiên chúng ta ph i khai báo nó, ghi rõ nó là ki u d li u nào. Chúng ta ch c n vi t tên ki u (như int, short, float...) ti p theo sau ñó là m t tên bi n h p l . Ví d int a; float mynumber; Dòng ñ u tiên khai báo m t bi n ki u int v i tên là a. Dòng th hai khai báo m t bi n ki u float v i tên mynumber. Sau khi ñư c khai báo, các bi n trên có th ñư c dùng trong ph m vi c a chúng trong chương trình. Trang 6
  7. Updatesofts.com Ebooks Team N u b n mu n khai báo m t vài bi n có cùng m t ki u và b n mu n ti t ki m công s c vi t b n có th khai báo chúng trên m t dòng, ngăn cách các tên b ng d u ph y. Ví d int a, b, c; khai báo ba bi n ki u int (a,b và c) và hoàn toàn tương ñương v i : int a; int b; int c; Các ki u s nguyên (char, short, long and int) có th là s có d u hay không d u tuỳ theo mi n giá tr mà chúng ta c n bi u di n. Vì v y khi xác ñ nh m t ki u s nguyên chúng ta ñ t t khoá signed ho c unsigned trư c tên ki u d li u. Ví d : unsigned short NumberOfSons; signed int MyAccountBalance; N u ta không ch rõ signed or unsigned nó s ñư c coi là có d u, vì v y trong khai báo th hai chúng ta có th vi t : int MyAccountBalance cũng hoàn toàn tương ñương v i dòng khai báo trên. Trong th c t , r t ít khi ngư i ta dùng ñ n t khoá signed. Ngo i l duy nh t c a lu t này ki u char. Trong chu n ANSI- C++ nó là ki u d li u khác v i signed char và unsigned char. ð có th th y rõ hơn vi c khai báo trong chương trình, chúng ta s xem xét m t ño n mã C++ ví d như sau: 4 // operating with variables #include int main () { // declaring variables: int a, b; int result; // process: a = 5; b = 2; a = a + 1; result = a - b; // print out the result: cout