Giáo trình kỹ thuật lập trình

Chia sẻ: Lê Văn | Ngày: | Loại File: PDF | Số trang:181

0
176
lượt xem
84
download

Giáo trình kỹ thuật lập trình

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Ý tưởng quan trọng nhất của C xuất phát từ ngôn ngữ BCPL do Martin Richards thiết kế. Ảnh hưởng của BCPL lên C gián tiếp thông qua ngôn ngữ B do Ken Thompson viết năm 1970 cho hệ thống UNIX đầu tiên trên máy PDP-7. Từ ngôn ngữ B, Dennish Ritchie và Brian Kernighan phát triển thành ngôn ngữ C vào những năm 1970 tại phòng thí nghiệm của hãng AT và T để phát triển cốt lõi của hệ điều hành UNIX.

Chủ đề:
Lưu

Nội dung Text: Giáo trình kỹ thuật lập trình

  1. Kyõ thuaät laäp trình -1- TRÖÔØNG ÑAÏI HOÏC ÑAØ LAÏT GIAÙO TRÌNH KYÕ THUAÄT LAÄP TRÌNH TRAÀN TUAÁN MINH 2002 Traàn Tuaán Minh Khoa Toaùn – Tin hoïc
  2. Kyõ thuaät laäp trình -2- MUÏC LUÏC MUÏC LUÏC .......................................................................................................................... 2 CHÖÔNG 1 : CAÙC KIEÅU DÖÕ LIEÄU CÔ BAÛN TRONG C++...................................... 4 1.1 Môû ñaàu...................................................................................................................... 4 1.2 Caùc Yeáu Toá Cô Baûn Cuûa Ngoân Ngöõ C++ : ........................................................... 6 1.3 Caùc Kieåu Döõ Lieäu Cô Baûn Trong C++ : .............................................................. 8 1.4 Caùc Haèng :............................................................................................................. 10 1.5 Bieán : ...................................................................................................................... 13 1.6 Caâu leänh gaùn : ........................................................................................................ 14 1.7 Töø khoùa : typedef ................................................................................................... 15 1.8 Sô Löôïc Veà Nhaäp, Xuaát Chuaån Trong C++......................................................... 15 BAØI TAÄP ........................................................................................................................... 19 CHÖÔNG 2 : CAÙC TOAÙN TÖÛ TRONG C++. .............................................................. 21 2.1 Caùc toaùn töû soá hoïc :................................................................................................ 21 2.2 Toaùn töû quan heä vaø logic : ..................................................................................... 23 2.3 Caùc Toaùn Töû Thao Taùc Bit. ................................................................................... 24 2.4 Caùc toaùn töû khaùc. ................................................................................................... 27 2.5 Bieåu Thöùc : ............................................................................................................. 27 2.6 Ñoä öu tieân cuûa caùc toaùn töû .................................................................................... 31 BAØI TAÄP ........................................................................................................................... 33 CHÖÔNG 3. HAØM VAØ CHÖÔNG TRÌNH..................................................................... 36 3.1 Caáu truùc chung cuûa chöông trình C++ :................................................................. 36 3.2 Haøm. ....................................................................................................................... 38 3.3 Moät soá thö vieän trong C++ .................................................................................... 45 BAØI TAÄP ........................................................................................................................... 48 CHÖÔNG 4. CAÙC CAÂU LEÄNH ÑIEÀU KHIEÅN. ............................................................. 49 4.1 Caâu leänh if ........................................................................................................... 49 4.2 Caâu leänh switch .................................................................................................... 53 4.4 Caâu leänh while ( Laëp vôùi ñieàu kieän ñöôïc kieåm tra tröôùc )................................... 61 4.5 Caâu leänh do .. while ( Laëp vôùi ñieàu kieän ñöôïc kieåm tra sau ) ............................. 63 4.6 Caâu leänh goto vaø nhaõn :......................................................................................... 68 4.7 Caùc caâu leänh break, continue : ............................................................................ 68 4.8 Caâu leänh roång :....................................................................................................... 69 4.10 Caùc ví duï :............................................................................................................. 71 BAØI TAÄP ........................................................................................................................... 77 CHÖÔNG 5. CAÙC CAÁU TRUÙC DÖÕ LIEÄU CÔ BAÛN. .................................................... 79 5.1 Maûng :.................................................................................................................... 79 5.2 Xaâu kyù töï :.............................................................................................................. 91 5.3 Kieåu Caáu truùc :....................................................................................................... 94 Traàn Tuaán Minh Khoa Toaùn – Tin hoïc
  3. Kyõ thuaät laäp trình -3- 5.4 Maûng caáu truùc : ...................................................................................................... 97 5.5 Kieåu enum. ........................................................................................................... 102 BAØI TAÄP ......................................................................................................................... 104 CHÖÔNG 6 : CON TROÛ................................................................................................ 110 6.1 Con troû : ................................................................................................................ 110 6.2 Con troû vaø maûng 1 chieàu :.................................................................................... 118 6.3 Con troû vaø xaâu kyù töï : .......................................................................................... 120 6.4 Con troû vaø maûng 2 chieàu :.................................................................................... 122 6.5 Con troû vaø caáu truùc............................................................................................... 125 6.6. Maûng con troû : ..................................................................................................... 127 6.7 Tìm hieåu theâm veà haøm:........................................................................................ 128 BAØI TAÄP ......................................................................................................................... 136 CHÖÔNG 7 : LAÄP TRÌNH ĐƠN THỂ......................................................................... 137 7.1 Ñôn theå chöông trình :.......................................................................................... 137 7.2 Döï aùn (Project). .................................................................................................... 139 7.3 Caùc lôùp löu tröû :.................................................................................................... 145 7.4 Ñeä qui ................................................................................................................... 152 7.5 Boä tieàn xöû lyù trong C++ : .................................................................................... 155 BAØI TAÄP :....................................................................................................................... 158 CHÖÔNG 8 : LAÄP TRÌNH VÔÙI TAÄP TIN.................................................................... 160 8.1 Môû ñaàu : ............................................................................................................... 160 8.2 Caùc loaïi taäp tin : ................................................................................................... 160 8.3 Môû ñaàu veâ nhaäp/xuaát taäp tin trong C++.............................................................. 161 8.4 Nhaäp/Xuaát nhò phaân khoâng ñònh daïng................................................................. 175 8.5 Truy caäp ngaãu nhieân. ........................................................................................... 176 BAØI TAÄP ......................................................................................................................... 180 TAØI LIEÄU THAM KHAÛO .............................................................................................. 181 Traàn Tuaán Minh Khoa Toaùn – Tin hoïc
  4. Kyõ thuaät laäp trình -4- CHÖÔNG 1 : CAÙC KIEÅU DÖÕ LIEÄU CÔ BAÛN TRONG C++. 1.1 Môû ñaàu. 1.2 Caùc yeáu toá cô baûn cuûa ngoân ngöõ C++. 1.3 Caùc kieåu döõ lieäu cô baûn trong C++. 1.4 Caùc haèng. 1.5 Bieán. 1.6 Caâu leänh gaùn. 1.7 Töø khoùa typedef. 1.8 Sô löôïc veà nhaäp, xuaát trong C++. 1.1 Môû ñaàu. 1.1.1 Giôùi thieäu ngoân ngöõ C/ C++ : YÙ töôûng quan troïng nhaát cuûa C xuaát phaùt töø ngoân ngöõ BCPL do Martin Richards thieát keá. Aûnh höôûng cuûa BCPL leân C giaùn tieáp thoâng qua ngoân ngöõ B do Ken Thompson vieát naêm 1970 cho heä thoáng UNIX ñaàu tieân treân maùy PDP-7. Töø ngoân ngöõ B, Dennish Ritchie vaø Brian Kernighan phaùt trieån thaønh ngoân ngöõ C vaøo nhöõng naêm 1970 taïi phoøng thí nghieäm cuûa haõng AT & T ñeå phaùt trieån coát loõi cuûa heä ñieàu haønh UNIX. Trong nhieàu naêm, chuaån cho C treân thöïc teá laø moät phieân baûn ñöôïc cung caáp cuøng vôùi heä ñieàu haønh Unix version 5. Noù ñöôïc moâ taû laàn ñaàu tieân trong cuoán : ” The C programming language “ cuûa Dennish Ritchie vaø Brian Kernighan. Cuøng vôùi söï phoå bieán caùc maùy tính caù nhaân, coù nhieàu baûn caøi ñaët cuûa C ñöôïc taïo ra. Ña soá caùc caøi ñaët ñeàu töông thích toát vôùi nhau ( töùc laø moät chöông trình ñöôïc vieát cho trình bieân dòch naøy thöôøng bieân dòch thaønh coâng ñoái vôùi moät trình bieân dòch khaùc ). Tuy nhieân, vì khoâng döïa treân moät chuaån chung neân cuõng coù nhieàu töông phaûn. Ñeå khaéc phuïc tình traïng naøy, vaøo muøa heø 1983 moät hoäi ñoàng ñöôïc thaønh laäp ñeå taïo ra moät chuaån cho C, goïi laø chuaån ANSI ( American National Standards Institute : Vieän ñònh chuaån Quoác gia Myõ). Sau 6 naêm, chuaån cuoái cuøng ANSI C ñöôïc ñeà nghò vaøo thaùng 12/1989, vaø baûn ñaàu tieân ñöôïc duøng vaøo naêm 1990. Ngaøy nay caùc trình bieân dòch C chính ñeàu giöõ ñuùng theo ANSI chuaån. C laø moät ngoân ngöõ coù khaû naêng toå hôïp nhöõng thaønh phaàn toát nhaát cuûa ngoân ngöõ baäc cao vaø söï ñieàu khieån linh hoaït cuûa ngoân ngöõ assembly . - Coù theå xem C laø ngoân ngöõ "caáp thaáp" theo nghóa töông ñoái, nghóa laø C coù theå xöû lyù tröïc tieáp caùc ñoái töôïng kyù töï, soá, ñòa chæ. Ngoaøi ra, C coøn sinh maõ toái öu, taäp caùc toaùn töû hieäu quaû cho pheùp thao taùc ñeán caùc bit. - Tuy nhieân C vaãn coù ñaày ñuû caùc ñaëc ñieåm maø baát kyø moät ngoân ngöõ caáp cao naøo caàn phaûi coù : - Tính khaû chuyeån ( portable ) . Traàn Tuaán Minh Khoa Toaùn – Tin hoïc
  5. Kyõ thuaät laäp trình -5- - Cho pheùp deã daøng trieån khai phöông phaùp laäp trình coù caáu truùc . - Cho pheùp xaây döïng caáu truùc chöông trình, dieãn ñaït thuaät toaùn roõ raøng, trong saùng. Bôûi caùc lyù do treân ngöôøi ta coøn thöôøng noùi C laø ngoân ngöõ baäc trung. Sau ñaây laø baûng vò trí cuûa C/C++ trong theá giôùi caùc ngoân ngöõ : Baäc cao nhaát Ada Modula-2 Pascal COBOL FORTRAN BASIC Baäc trung C C++ FORTH Macro-assembler Ngoân ngöõ C ñaõ khoâng ngöøng caûi tieán vaø phaùt trieån. Naêm 1987 haõng Borland ñaõ ñöa ngoân ngöõ C vaøo thò tröôøng cuûa IBM-PC thoâng qua Turbo C. Vaøo nhöõng naêm 1980, Bjarne Stroustrup ñaõ cho ra ñôøi ngoân ngöõ C++ baèng caùch caøi vaøo ngoân ngöõ C khaùi nieäm laäp trình höôùng ñoái töôïng. Naêm 1988, haõng Zortech giôùi thieäu moät trình bieân dòch C++ cho caùc maùy tính MS-DOS Cho tôùi nay ñaõ xuaát hieän nhieàu phieân baûn C++ trong moâi tröôøng Microsoft Windows : Borland C++, Turbo C++ cuûa haõng Borland; Visual C++ cuûa Microsoft. Hieän nay coù nhieàu chöông trình lôùn ñöôïc vieát hay ñöôïc vieát laïi baèng C/C++ : - Heä ñieàu haønh UNIX. - Heä ñieàu haønh Windows. - Heä quaûn trò cô sôû döõ lieäu Dbase. - Caùc chöông trình soaïn thaûo vaên baûn. - Caùc baûng tính ñieän töû. .. .... ........ Trong giaùo trình naøy ta seõ minh hoïa baèng Borland C++ 3.1 for DOS. 1.1.2 Chöông trình C++ ñaàu tieân. Chöông trình C++ ñôn giaûn sau ñaây xuaát moät doøng vaên baûn ra man hình. //Chöông trình C++ ñaàu tieân. #include Traàn Tuaán Minh Khoa Toaùn – Tin hoïc
  6. Kyõ thuaät laäp trình -6- int main() { cout
  7. Kyõ thuaät laäp trình -7- Ñaëc bieät coù khoaûng traéng duøng ñeå ngaên caùch caùc töø (phím Space). Caùc kyù hieäu cô sôû ñeàu coù treân baøn phím. 1.2.2 Caùc töø Töø trong C++ ñöôïc xaây döïng bôûi caùc kyù hieäu cô sôû treân. Coù 2 loaïi töø :Töø khoùa vaø teân. a. Töø khoùa (Key Word): Laø nhöõng töø coù yù nghóa hoaøn toaøn xaùc ñònh, chuùng thöôøng ñöôïc duøng ñeå khai baùo caùc kieåu döõ lieäu , ñeå vieát caùc toaùn töû, vaø caùc caâu leänh. Sau ñaây laø caùc töø khoùa trong Borland C++ (Turbo C++) : Asm auto break case catch char Class const continue default delete do Double else enum extern float for Friend goto if inline int long New operator private protected public register Return short signed sizeof static struct Switch template this throw try typedef Union unsigned virtual void volatile while Cdecl _cs _ds _es _export far Huge interrupt _loadds near Pascal _regparam _saveregs _seg _ss Ghi chuù : Caùc töø khoùa chæ ñöôïc vieát thöôøng, chaúng haïn khoâng ñöôïc vieát INT maø phaûi vieát int. b. Teân hoaëc danh hieäu (identifier): Laø töø do ngöôøi söû duïng töï ñaët ñeå giaûi quyeát baøi toaùn cuûa mình. Töø töï ñaët duøng ñeå ñaët teân cho haèng, bieán, haøm, teân kieåu döõ lieäu môùi,... Teân ñöôïc ñaët theo quy taéc : phaûi baét ñaàu baèng moät chöõ caùi hoaëc daáu gaïch noái,sau ñoù laø caùc chöõ caùi, chöõ soá hoaëc daáu gaïch noái , vaø khoâng ñöôïc truøng vôùi töø khoùa. Teân coù theå vieát baèng chöõ thöôøng hoaëc chöõ hoa. Chieàu daøi cöïc ñaïi cuûa teân maëc ñònh laø 32. Nhöng coù theå ñaët laïi moät giaù trò khaùc töø 1 ñeán 32 trong chöùc naêng : Option - Complier - Source - Identìier length trong moâi tröôøng keát hôïp cuûa C++. Trong C++ coù phaân bieät chöõ thöôøng vaø chöõ hoa. Ví duï : - Caùc ví duï sai : 21holpljpmljn // Kyù töï ñaàu laø soá ts#bnk uio0986 // Sö duïng kyù hieäu # Khoang trang // Söû duïng khoûang traéng f(x) // Söû duïng daáu ngoaëc troøn Traàn Tuaán Minh Khoa Toaùn – Tin hoïc
  8. Kyõ thuaät laäp trình -8- . . . . . . . . . . . . . . . . . . - Caùc ví duï ñuùng : T123tyu09 _dll098786 1.3 Caùc Kieåu Döõ Lieäu Cô Baûn Trong C++ : Trong C++ coù 5 kieåu döõ lieäu cô baûn laø : - Caùc kieåu Kyù töï . - Caùc kieåu nguyeân . - Kieåu Soá thöïc daáu chaám ñoäng ñoä chính xaùc ñôn : float - Kieåu Soá thöïc daáu chaám ñoäng ñoä chính xaùc keùp : double - Kieåu void. Caùc kieåu döõ lieäu khaùc ñeàu döïa vaøo caùc kieåu döõ lieäu treân. Kieåu void seõ ñöôïc trình baøy trong caùc chöông sau, trong phaàn naøy ta chæ giôùi thieäu caùc kieåu coøn laïi. 1.3.1 Kyùù töï : Coù nhieàu kieåu kyù töï. Moät kieåu kyù töï ñöôïc khai baùo bôûi töø khoùa char. Moät giaù trò kieåu char ñöôïc löu tröû trong 8 bit vaø bieåu dieãn ñöôïc 1 kyù töï thoâng qua baûng maõ ASCII . Chaúng haïn : Kyù töï Maõ ASCII (heä 10) 0 48 1 49 A 65 a 97 . . . . Coù caùc kieåu kyù töï töông öùng vôùi caùc töø khoùa : signed char ( nhö char, coù daáu) unsigned char (Khoâng daáu). Sau ñaây laø baûng kích thöôùc, phaïm vi bieåu dieãn cuûa caùc kieåu kyù töï : KIEÅU Phaïm vi bieåu dieãn Kích thöôùc Soá kyù töï Char -128 → 127 1 byte 256 signed char -128 → 127 1 byte 256 unsigned char 0 → 255 1 byte 256 Ghi chuù : Coù theå chia 256 kyù töï thaønh 3 nhoùm : - Nhoùm 1 : Laø caùc kyù töï ñieàu khieån, coù maõ ASCII töø 0 ñeán 31. Caùc kyù töï naøy noùi chung laø khoâng hieån thò ra maøn hình. Traàn Tuaán Minh Khoa Toaùn – Tin hoïc
  9. Kyõ thuaät laäp trình -9- Chaúng haïn, Kyù töï maõ 10 chuyeån con troû xuoáng doøng döôùi (treân cuøng coät); kyù töï maõ 13 chuyeån con troû veà ñaàu doøng. . . - Nhoùm 2 : Laø caùc kyù töï vaên baûn, coù maõ ASCII töø 32 ñeán 126. Caùc kyù töï naøy coù theå ñöa ra maøn hinh hoaëc maùy in. - Nhoùm 3 : Laø caùc kyù töï ñoà hoïa, coù maõ soá töø 127 ñeán 255. Caùc kyù töï naøy coù theå ñöa ra maøn hình. 1.3.2 Kieåu nguyeân : Trong C++ cho pheùp söû duïng caùc kieåu soá nguyeân ñöôïc khai baùo bôûi töø khoùa int, hoaëc ñi keøm theo int vôùi caùc töø khoùa long, short, unsigned. Soá löôïng bit ñöôïc duøng ñeå löu tröû moät giaù trò int phuï thuoäc vaøo kích thöôùc töø (word) cuûa maùy. Thöôøng thì maùy 16-bit seõ duøng 16 bit ñeå löu tröû moät giaù trò int , trong khi ñoù maùy 32-bit seõ duøng 32 bit . Kích thöôùc vaø phaïm vi bieåu dieãn cuûa chuùng ñöôïc cho trong baûng sau : Kieåu Phaïm vi bieåu dieãn Kích thöôùc Int Chieám 1 töø cuûa maùy. short int , short -32768 → 32767 (-215 → 215 -1) 16 bit 16 unsigned short int 0 → 65535 (0 → 2 -1) 16 bit long int , long -2147483648 → 2147483647 32 bit 31 31 (-2 → 2 -1 ) unsigned long int 0 → 4294967295 ( 0 → 232 -1) 32 bit unsigned int Soá nguyeân khoâng aâm , chieám 1 töø cuûa maùy. Ghi chuù : Giaù trò kieåu kyù töï ñöôïc xem laø moät soá nguyeân 8-bit. 1.3.3 Kieåu soá thöïc : C++ cho pheùp söû duïng 3 kích thöôùc giaù trò thöïc, töông öùng vôùi 3 töø khoùa : float, double vaø long double. Kích thöôùc vaø phaïm vi bieåu dieãn cuûa chuùng ñöôïc cho trong baûng sau : Kieåu YÙ nghóa Phaïm vi bieåu dieãn Kích Ñoä chính thöôùc xaùc Float Soá thöïc chính -3.4E+38 → 3.4E+38 32 bit 6 soá thaäp xaùc ñôn phaân Double Soá thöïc chính -1.7E+308 → 1.7E+308,0 64 bit 10 soá thaäp xaùc keùp phaân long double Kích thöôùc 96 bit hoaëc 128 bit Ghi chuù : Traàn Tuaán Minh Khoa Toaùn – Tin hoïc
  10. Kyõ thuaät laäp trình - 10 - Löu tröû trong maùy : (*) Moät soá thöïc kieåu float x vôùi | x| < 3.4E-38 ñöôïc xem laø baèng 0. -3.4E+38 -3.4E-38 0 3.4E-38 3.4E+38 (**) Moät soá thöïc kieåu double x vôùi ( | x| < 1.7E-308 ) ñöôïc xem laø baèng 0. -1.7E+308 -1.7E-308 1.7E-308 1.7E+308 1.4 Caùc Haèng : Haèng laø caùc ñaïi löôïng maø giaù trò cuûa noù khoâng thay ñoåi trong quaù trình tính toaùn. Ta thöôøng duøng caùc kyù töï hoa ñeå bieåu dieãn caùc haèng kyù hieäu. Trong C++ coù caùc loaïi haèng sau ñaây: 1.4.1 Haèng soá thöïc Giaù trò ñöôïc laáy laø float vaø double. Vieát theo 2 caùch : 1. Daïng thaäp phaân (daáu chaám coá ñònh) : Bao goàm : Phaàn nguyeân, daáu chaám thaäp phaân, phaån phaân. Phaàn nguyeân ⋅ Phaàn phaân Ví duï : 214.35 -43.345 234.0 Ghi chuù : Phaàn nguyeân hay phaàn phaân coù theå vaéng maët nhöng daáu chaâm khoâng theå thieáu. Chaúng haïn cho pheùp vieát : .12 7. 2. Daïng khoa hoïc hay daïng muõ ( daáu chaám ñoäng ) : Coù 3 thaønh phaàn : Phaàn ñònh trò , kyù hieäu E hoaëc e , vaø phaàn baäc. Phaàn ñònh trò laø moät soá nguyeân hoaëc soá thöïc daïng thaäp phaân. Phaàn baäc laø moät soá nguyeân. Hai phaàn naøy caùch nhau bôûi kyù töï E hoaëc e. Phaàn ñònh trò E hoaëc e Phaàn baäc Ví duï : 12.234E-3 // bieåu dieãn giaù trò 0.012234 0.35E4 // bieåu dieãn giaù trò 3500.0 -12.22e-3 // bieåu dieãn giaù trò -0.01222 1e6 // bieåu dieãn giaù trò 1 000 000 1.4.2 Haèng nguyeân 1. Haèng int : Laø soá nguyeân coù kieåu int . Traàn Tuaán Minh Khoa Toaùn – Tin hoïc
  11. Kyõ thuaät laäp trình - 11 - Ghi chuù : 21 (haèng nguyeân) khaùc 21.0 (haèng thöïc) 2. Haèng long : Bieåu dieãn : theâm L hoaëc l vaøo sau haèng int. Ví duï : -2345L ; 4356l Ghi chuù : Moät soá nguyeân vöôït ra khoûi mieàn xaùc ñònh cuûa int ñöôïc xem laø haèng long. 3. Haèng unsigned : Bieåu dieãn : theâm u vaøo sau haèng int. Coù giaù trò töø 0 ñeán 65535. 4. Haèng int heä 8 : Haèng int heä 8 luoân nhaän giaù trò döông. Daïng bieåu dieãn : 0c1c2c3 … Vôùi : ci laø moät soá nguyeân trong khoaûng töø 0 ñeán 7. Ví duï : - Haèng int heä 8 : 0345 - Giaù trò cuûa noù trong heä 10 : 3*8*8 + 4*8 + 5 = 229. 5. Haèng int heä 16 : Trong heä naøy söû duïng 16 kyù töï : 0,1,2,3,4,5,6,7,8,9, a hoaëc A b hoaëc B c hoaëc C d hoaëc D e hoaëc E f hoaëc F Daïng bieåu dieãn : 0x c1c2c3 … hoaëc 0X c1c2c3 … Trong ñoù ci laø moät chöõ soá heä 16. Ví duï : Caùc haèng nguyeân heä 16 : 0xa3 ; 0Xa3 ; 0xA3 ; 0XA3 laø nhö nhau. Giaù trò cuûa noù trong heä 10 laø : 10*16 + 3 = 163. 1.4.3 Haèng kyù töï : - Laø moät kyù töï ñöôïc vieát trong 2 daáu nhaùy ñôn. Chaúng haïn ‘a’ , ‘A’, ‘3’, ‘+’ . . . Trình bieân dòch cuûa C++ seõ löu tröû caùc haèng naøy baèng caùch duøng caùc maõ soá ASCII (heä 10) cuûa noù, töông öùng laø 97,65, 43, 51 . . . - Kyù töï coù theå bieåu dieãn bôûi heä 8. Caùch vieát : ‘\c1c2c3’ , trong ñoù ci laø caùc kyù hieäu trong heä 8. - Kyù töï coù theå bieåu dieãn bôûi heä 16. Caùch vieát : ‘\xc1c2c3’ hoaëc ‘\Xc1c2c3’ trong ñoù ci laø caùc kyù hieäu trong heä 16. Kyù töï Heä 8 Heä 16 Maõ ASCII Maõ ASCII Bieåu dieãn Maõ ASCII Bieåu dieãn heä 10 Traàn Tuaán Minh Khoa Toaùn – Tin hoïc
  12. Kyõ thuaät laäp trình - 12 - ‘a’ 141 ‘\141’ 61 ‘\x61’ 97 ‘A’ 101 ‘\101’ 41 ‘\x41’ 65 - Ñoái vôùi moät soá haèng kyù töï ñaëc bieät, ta söû duïng caùch vieát sau (theâm daáu \) : Caùch vieát Kyù töï ‘\’ ’ ‘ ‘\” ‘ “ ‘\\’ \ ‘\n’ \n (chuyeån doøng) ‘\0’ \0 (NULL) ‘\t’ Tab ‘\b’ Backspace ‘\r’ CR (Veà ñaàu doøng) ‘\f’ LF (sang trang) Ghi chuù : 1. Haèng kyù töï coù theå tham gia vaøo caùc bieåu thöùc nhö moïi soá nguyeân khaùc. Ví duï : ‘9’ -’0’ = 57 -48 = 9 2. Caàn phaân bieät : ‘0’ : laø kyù soá 0 coù maõ ASCII heä 10 laø 48. ‘\0’ : laø kyù töï NULL coù maõ ASCII heä 10 laø 0. 1.4.4 Haèng xaâu kyù töï ( Chuoãi ): Laø moät daõy kyù töï ñöôïc bao trong 2 daáu nhaùy keùp. Ví duï : “Da Lat” “” // Xaâu roång Ghi chuù : - Xaâu kyù töï ñöôïc löu tröû trong maùy döôùi daïng moät maûng caùc kyù töï. Trình bieân dòch töï ñoäng theâm kyù töï NULL ‘\0’ ( ñöôïc xem laø daáu hieäu keát thuùc xaâu ) vaøo cuoái moãi xaâu. - Haèng kyù töï ‘a’ khaùc xaâu kyù töï “a”. 1.4.5 Bieåu thöùc haèng : Bieåu thöùc haèng chæ bao goàm caùc haèng. Caùc bieåu thöùc nhö vaäy ñöôïc xaùc ñònh vaøo luùc bieân dòch. 1.4.6 Ñònh nghóa moät haèng 1. Duøng chæ thò #define ( Coù theå ñònh nghóa laïi giaù trò haèng ) : - Caùch vieát : #define TEÂN-HAÈNG GIAÙ_TRÒ_HAÈNG // Khoâng coù daáu ; ôû sau Traàn Tuaán Minh Khoa Toaùn – Tin hoïc
  13. Kyõ thuaät laäp trình - 13 - - Taùc duïng : TEÂN-HAÈNG seõ ñöôïc thay theá bôûi GIAÙ_TRÒ_HAÈNG cho phaàn coøn laïi cuûa vaên baûn chöông trình. Ví duï : #define MAX 100 // Thay theá MAX baèng 100 2. Duøng töø khoùa const ( Khoâng ñònh nghóa laïi ñöôïc giaù trò haèng ) : C++ söû duïng töø khoùa const ñeå ñònh nghóa moät haèng döôùi daïng moät teân . - Cuù phaùp : Const kieåu TEÂN-HAÈNG = GIAÙ_TRÒ_HAÈNG; // coù daáu ; - Taùc duïng : Cho pheùp ñònh nghóa moät haèng kyù hieäu coù teân laø TEÂN-HAÈNG bieåu thò moät gia trò laø GIAÙ_TRÒ_HAÈNG vaø sau naøy khoâng theå söûa ñoåi GIAÙ_TRÒ_HAÈNG cuûa TEÂN- HAÈNG ñöôïc . Ví duï : Const long double PI = 3.141592653589793; Trong C++ coù moät soá haèng ñöôïc ñònh nghóa tröôùc : Teân haèng Moâ taû Taäp tin tieâu ñeà INT_MIN Giaù trò nhoû nhaát cuûa int limits.h INT_MAX Giaù trò lôùn nhaát cuûa int limits.h UINT_MIN Giaù trò nhoû nhaát cuûa unsigned limits.h int UINT_MAX Giaù trò lôùn nhaát cuûa unsigned int limits.h LONG_MIN Giaù trò nhoû nhaát cuûa long int limits.h LONG_MA Giaù trò lôùn nhaát cuûa long int limits.h X FLT_MIN Giaù trò nhoû nhaát float float.h FLT_MAX Giaù trò lôùn nhaát cuûa float float.h DBL_MIN Giaù trò nhoû nhaát double float.h DBL_MAX Giaù trò lôùn nhaát cuûa double float.h LDBL_MIN Giaù trò nhoû nhaát long double float.h LDBL_MAX Giaù trò lôùn nhaát cuûa long double float.h 1.5 Bieán : 1.5.1 Ñònh nghóa : Bieán laø moät phaàn boä nhôù ñöôïc ñaët teân, ñöôïc duøng, ñeå giöõ moät giaù trò maø coù theå thay ñoåi trong chöông trình. Vaäy bieán gaén vôùi teân vaø kieåu döõ lieäu, coù giaù trò thay ñoåi trong quaù trình tính toaùn. 1.5.2 Khai baùo bieán : Moãi bieán phaûi ñöôïc khai baùo tröôùc khi söû duïng. Cuù phaùp khai baùo nhö sau : - Khai baùo moät bieán : Kdl Bien; - Khai baùo nhieàu bieán cuøng moät kieåu : Traàn Tuaán Minh Khoa Toaùn – Tin hoïc
  14. Kyõ thuaät laäp trình - 14 - Kdl Bien1,Bien2,Bien3; Trong ñoù : - Kdl laø kieåu döõ lieäu naøo ñoù nhö char, int, double, . . . - Bien, Bien1,. . . laø teân chæ teân cuûa bieán. Giöõa Kdl vaø Teân bieán phaûi caùch nhau ít nhaát 1 khoaûng traéng. Trong phaàn teân bieán, neáu coù nhieàu bieán thì giöõa 2 bieán phaûi phaân caùch bôûi daáu phaûy (,). Ví duï : int a,b,c; // khai baùo 3 bieán kieåu int long c,d; // khai baùo 2 bieán kieåu long unsigned i,j; // Khai baùo 2 bieán kieåu unsigned char k; // khai baùo 1 bieán kieåu char float x,y; // khai baùo 2 bieán kieåu double Ghi chuù : Bieán cuûa kieåu döõ lieäu naøo thì chæ coù theå nhaän caùc giaù trò cuûa kieåu döõ lieäu ñoù. 1.5.3 Khôûi ñaàu cho caùc bieán : Neáu trong khai baùo, ngay sau teân bieán ta ñaët daáu = (pheùp gaùn ) vaø moät giaù trò döõ lieäu töông öùng thi ñoù chính laø caùch vöøa khai baùo vöøa khôûi ñaàu cho 1 bieán. Ví duï : int a = 20; long m = 12456, n; float x, y = 32.1; Ghi chuù : Coù theå thöïc hieän vieâc khôûi ñaàu cho bieán nhôø leänh gaùn. 1.5.4 Laáy ñòa chæ cho bieán : Moãi bieán ñöôïc caáp phaùt moät vuøng nhôù goàm moät soá byte lieân tieáp. Soá hieäu cuûa byte ñaàu chính laø ñòa chæ cuûa bieán. Ñeå nhaän ñòa chæ bieán ta duøng toaùn töû & vôùi cuù phaùp : &Bien . 1.6 Caâu leänh gaùn : - Coù daïng : b = bt; Trong ñoù b laø bieán. bt laø moät bieåu thöùc ( moät coâng thöùc toaùn hoïc naøo ñoù). Tröôùc tieân tính bieåu thöùc bt vaø sau ñoù gaùn giaù trò tính ñöôïc cho bieán b. Ví duï : float x; x = 2.5; x = x*x; // khi ñoù x nhaän giaù trò laø 6.25 - coù khaû naêng coù nhieàu daáu gaùn lieàn nhau : m = n = 2; Coù nghóa laø : n laáy giaù trò 2, roài m laáy giaù trò cuûa n, neân coù giaù trò baèng 2. Traàn Tuaán Minh Khoa Toaùn – Tin hoïc
  15. Kyõ thuaät laäp trình - 15 - Ghi chuù : Trong C++ coù nhieàu tröôøng hôïp cho pheùp gaùn giöõa caùc teân coù kieåu khaùc nhau, khi ñoù coù söï chuyeån ñoåi kieåu moät caùch töï ñoäng. ta seõ xeùt sau. 1.7 Töø khoùa : typedef Töø khoùa typefef ñöôïc duøng ñeå ñoåi laïi teân moät kieåu döõ lieäu ñaõ coù nhö char, int, float, maûng ... thaønh moät teân môùi. Caùch vieát laø ñaët töø khoùa typedef vaøo tröôùc 1 khai baùo thoâng thöôøng : Ví duï : a) typedef int intgia; // Kieåu intgia thöïc chaát laø kieåu int intgia x,y; // x,y laø bieán kieåu ingia (int) b) typedef double dgia; // Kieåu dgia thöïc chaát laø kieåu double dgia a,b; // a,b laø bieán kieåu dgia 1.8 Sô Löôïc Veà Nhaäp, Xuaát Chuaån Trong C++. 1.8.1 Luoàng I/O (I/O Streams) C++ xöû lyù vieäc nhaäp lieäu vaø xuaát lieäu nhö sau: • Khi caùc kyù töï ñöôïc vaøo töø baøn phím, chuùng vaøo moät luoàng nhaäp (input stream) ñöôïc goïi laø istream maø noù truyeàn caùc kyù töï töø baøn phím ñeán chöông trình. • Töông töï khi xuaát lieäu chöông trình ñöôïc hieån thò treân maøn hình, caùc kyù töï xuaát ñöôïc ñaët vaøo trong moät luoàng xuaát (output stream) maø noù truyeàn caùc kyù töï ñeán maøn hình. Chöông trình Baøn phím ostream istream C++ khoâng coù caùc tính naêng nhaäp vaø xuaát xaây döïng trong ngoân ngöõ. Thay vaøo ñoù caùc istream vaø ostream ñöôïc cung caáp bôûi moät thö vieän ñaëc bieät, maø giao dieän cuûa noù trong taäp tin tieâu ñeà (hearder) (caùc teân istream vaø ostream khoâng phaûi laø moät phaàn cuûa ngoân ngöõ C++ maø chuùng laø teân cuûa hai lôùp). Thö vieän naøy ñònh nghóa ba ñoái töôïng döõ lieäu quan troïng: • Moät ñoái töôïng istream mang teân cin, maø noù ñöôïc keát hôïp vôùi baøn phím. • Moät ñoái töôïng ostream mang teân cout, maø noù ñöôïc keát hôïp vôùi maøn hình. • Moät ñoái töôïng ostream mang teân ceer, maø noù ñöôïc keát hôïp vôùi maøn hình vaø ñöôïc duøng ñeå hieån thò caùc thoâng baùo sai. Nhaäp vaø xuaát laø caùc pheùp toaùn treân nhöõng ñoái töôïng döõ lieäu naøy. 1.8.2 Nhaäp döõ lieäu töø baøn phím : Meänh ñeà nhaäp coù theå moâ taû nhö sau: Traàn Tuaán Minh Khoa Toaùn – Tin hoïc
  16. Kyõ thuaät laäp trình - 16 - cin >> Bien; //Nhaäp giaù trò 1 bieán cin >> Bien1 >> Bien2 >> ... >> Bienn;//Nhaäp giaù trò n bieán. Trong ñoù: • cin laø istream ñaõ ñöôïc khai baùo trong . • >> laø toaùn töû nhaäp. • Bieán-i laø bieán maø ñoái vôùi loaïi cuûa noù >> ñöôïc ñònh nghóa. Ví duï: cin >> A >> B >> C >> D; Baát kyø kyù töï khoaûng traéng ‘ ‘, daáu tab ‘\t’, doøng môùi ‘\n’ ñeàu coù theå ñöôïc duøng ñeå taùch caùc giaù trò nhaäp ñeå nhaäp vaøo döõ lieäu khi meänh ñeà treân ñöôïc thöïc hieän. 1.8.3 Xuaát döõ lieäu ra maøn hình : Meänh ñeà xuaát coù theå moâ taû nhö sau: cout
  17. Kyõ thuaät laäp trình - 17 - laø 6). setiosflags (FlagList) Ñaët caùc côø ñònh daïng trong FlagList, trong ñoù FlagList laø moät daõy goàm moät hoaëc nhieàu côø, caùch nhau bôûi kyù hieäu | nhö laø : Flag1 | Flag2 | ... | Flagn. Sau ñaây laø moät soá caùc côø ñònh daïng saún : ios::showpoint Hieån thò daáu chaám thaäp phaân vaø caùc soá 0 keùo theo. ios::fixed Hieån thò caùc giaù trò thöïc ôû daïng daáu chaám coá ñònh. ios::scientific Hieån thò caùc giaù trò thöïc ôû daïng daáu chaám di ñoäng. ios::left Hieån thò caùc giaù trò canh traùi trong moät vuøng. Ios::right Hieån thò caùc giaù trò canh phaûi trong moät vuøng. Ví duï : Chöông trình Keát quaû thöïc hieän #include #include int main () { double X = 2.66666666 Y = 3; (2.666667) cout
  18. Kyõ thuaät laäp trình - 18 - Ghi chuù : ios::right laø maëc nhieân, vaø setw() chæ gaây aûnh höôûng cho giaù trò keá noù ñöôïc hieån thò, trong khi nhöõng xöû lyù ñònh daïng khaùc gaây aûnh höôûng ñeán söï xuaát hieän cuûa taát caû caùc giaù trò theo sau chuùng trong meänh ñeà xuaát. KNLT : Moät caâu leänh quaù daøi coù theå vieát treân nhieàu doøng. Traàn Tuaán Minh Khoa Toaùn – Tin hoïc
  19. Kyõ thuaät laäp trình - 19 - BAØI TAÄP Baøi 1 : Vieát chöông trình in ra maøn hình caùc döõ lieäu coù ñònh daïng : // Haøng ñaàu laø vò trí coät maøn hình : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 7 8 B C B O R L A N D C + + T U R B O C + + 1 2 3 4 5 1 2 3 4 5 1 2 3 . 4 5 6 0 0 0 1 2 3 . 4 5 6 1 2 3 . 4 5 6 1 . 2 3 4 5 6 E + 0 5 Baøi 2 : Vieát chöong trình in ra maøn hình : Day la nua tren dau tich phan ( ma ASCII he 16 la F4 ) : ⌠ Day la nua duoi dau tich phan ( ma ASCII he 16 la F5 ) : ⌡ Day la dau tich phan : ∫ Baøi 3 : Xuaát kyù töï ‘z’ ra maøn hình baèng caùch duøng : 1. Bieåu dieãn kyù töï trong heä 8. 2. Bieåu dieãn kyù töï trong heä 16. Baøi 4 : double X = 100.56, Y = 3.; cout
  20. Kyõ thuaät laäp trình - 20 -
Đồng bộ tài khoản