Xem mẫu

  1. Bé c«ng nghiÖp Tr êng cao ®¼ng c«ng nghiÖp hµ néi --- - --- ®Ò c¬ng chi tiÕt m«n häc kü thuËt lËp tr×nh (Tµi liÖu gi¶ng d¹y) Biªn so¹n: ThS. NguyÔn M¹nh Cêng (lu hµnh néi bé)
  2. §Ò c¬ng chi tiÕt Kü thuËt lËp tr×nh Hµ néi – 8/2004 §Ò c¬ng chi tiÕt M«n häc: Kü thuËt lËp tr×nh Tµi liÖu tham kh¶o 1. Ng«n ng÷ lËp tr×nh C++ - GS. TS. Ph¹m v¨n Êt. 2. C++ vµ lËp tr×nh H íng ®èi tîng - GS. TS. Ph¹m v¨n Êt. 3. Kü thuËt lËp tr×nh - NguyÔn TiÕn Huy – TrÇn H¹nh Nhi. 4. Ng«n ng÷ lËp tr×nh C++ - Ng« Trung ViÖt. …. Ch¬ng I. Giíi thiÖu vÒ ng«n ng÷ lËp tr×nh C++ 1. M«i tr êng lËp tr×nh C++ Ng«n ng÷ lËp tr×nh C++ lµ mét sù më réng cña ng«n ng÷ lËp tr×nh C, trong ®ã, chñ yÕu ®a thªm vµo ng«n ng÷ C kh¶ n¨ng lËp tr×nh híng ®èi t îng vµ lo¹i bá nh÷ng phøc t¹p kh«ng cÇn thiÕt cña ng«n ng÷ . §Ó vµo m«i tr êng so¹n th¶o ch¬ng tr×nh cña C++ ta thùc hiÖn: + Cµi ®Æt ch¬ng tr×nh so¹n th¶o m· lÖnh C++ vµo m¸y tÝnh. + Vµo th môc TC30\ BIN, chän TC.Exe. Khi ®ã, m«i tr êng so¹n th¶o C++ ®· s½n sµng. - C¸c thao t¸c khi so¹n th¶o ch¬ng tr×nh: Biªn so¹n: NguyÔn M ¹nh Cêng Trang 2
  3. §Ò c¬ng chi tiÕt Kü thuËt lËp tr×nh [1]. Më mét file míi: Chän File \ New hoÆc bÊm phÊm F3 sau ® ã gâ tªn file vµo. [2]. L u file: Chän File\ Save hoÆc bÊm phÝm F2. NÕu file cha ®îc ®Æt tªn bëi ngêi lËp tr×nh h·y ®Æt tªn. [3]. Më mét file cã s½n: Chän File\ Open hoÆc bÊm phÝm F3. Chän file cÇn më vµ bÊm Enter. [4]. So¹n th¶o ch¬ng tr×nh: Ch¬ng tr×nh ®îc so¹n th¶o trong cöa sæ so¹n th¶o. Nãi chung, khi so¹n th¶o th êng thùc hiÖn nh÷ng thao t¸c sau: - Di chuyÓn con trá: dïng c¸c phÝm mòi tªn, phÝm Page Up, Page Down. phÝm Home ®a con trá vÒ ®Çu dßng, phÝm End ®a con trá vÒ cuèi dßng. - Sao chÐp: Gi÷ Shift vµ phÝm mòi tªn ®Ó b«i ®en ®o¹n cÇn sao chÐp. §a con trá tíi n¬i ®Æt ®o¹n sao chÐp vµ bÊm tæ hîp phÝm Ctrl + K + C ®Ó d¸n. - Di chuyÓn khèi: NÕu bÊm tæ hîp phÝm Ctrl + K + V sÏ cho phÐp di chuyÓn ®o¹n m· ®îc b«i ®en. - Bá b«i ®en khèi: §a con trá lªn trªn ®o¹n b«i ®en vµ bÊm tæ hîp phÝm Ctrl + K + K ®Ó bá b«i ®en Chó ý: Kh¸c víi ng«n ng÷ Pascal, ng«n ng÷ C++ cã ph©n biÖt ch÷ hoa vµ ch÷ thêng. §Ó ghi c¸c dßng chó thÝch, sö dông dÊu / / t¹i ®Çu dßng hoÆc ®Æt ®o¹n chó thÝch nh sau: / * ®o¹n chó thÝch * / Biªn so¹n: NguyÔn M ¹nh Cêng Trang 3
  4. §Ò c¬ng chi tiÕt Kü thuËt lËp tr×nh [5]. DÞch ch¬ng tr×nh: BÊm phÝm F9 ® Ó dÞch ch¬ ng t r× nh. NÕu ch¬ ng t r× nh cã lçi, ch¬ ng t r× nh dÞch sÏ b¸o lçi. Ch¬ ng t r× nh chØ t hùc t hi ®îc nÕu kh«ng cã lçi. [6]. Thùc thi ch¬ng tr×nh: BÊm tæ hîp phÝm Ctrl + F9 ®Ó thùc thi ch¬ng tr×nh. [7]. §Æt ®êng dÉn tíi c¸c th viÖn: Trong mét ch¬ng tr×nh viÕt b»ng ng«n ng÷ C++ th êng sö dông c¸c hµm trong c¸c th viÖn kh¸c nhau. Th«ng th êng, c¸c th viÖn ®Æt trong c¸c th môc TC\INCLUDE hoÆc TC\ LIB. M«i tr êng lËp tr×nh C++ tù thiÕt ®Æt ®êng dÉn tíi c¸c th viÖn nµy. Tuy nhiªn, trong tr êng hîp ®êng dÉn bÞ thay ®æi, ta cÇn ph¶i thiÕt ®Æt l¹i. B1: Trong Menu chÝnh, chän Option \ Directories. B2: Trong Include, ®Æt ®êng dÉn tíi c¸c th viÖn cã ®u«i .h. Trong Libraries, ®Æt ®êng dÉn tíi c¸c th viÖn ®u«i .lib. 2. C¸c kiÓu d÷ liÖu c¬ b¶n trong C++ Trong C++ cã sö dông mét sè kiÓu d÷ liÖu c¬ b¶n sau: a. KiÓu sè: bao gåm + Sè nguyªn ng¾n int: lµ kiÓu d÷ liÖu cã ®é dµi 2 byte, dïng ®Ó khai b¸o c¸c biÕn nguyªn cã gi¸ trÞ trong kho¶ng –32768 -> 32767 + Sè nguyªn ng¾n kh«ng dÊu: unsign int: ®é dµi 2 byte, khai b¸o c¸c biÕn nguyªn cã gi¸ trÞ tõ 0 tíi 65535. + Sè nguyªn dµi long: lµ kiÓu d÷ liÖu cã ®é dµi 4 byte, dïng khai b¸o c¸c biÕn nguyªn cã gi¸ trÞ trong kho¶ng – 2.147.483.648 -> 2.147.483.647. Biªn so¹n: NguyÔn M ¹nh Cêng Trang 4
  5. §Ò c¬ng chi tiÕt Kü thuËt lËp tr×nh + Sè nguyªn dµi kh«ng dÊu: unsign long: ® é dµi 4 byte, khai b¸o c¸c biÕn cã gi¸ t rÞ tõ 0 t íi 4.294.967.295. + Sè thùc (dÊu ph¶y ®éng) float: kÝch th íc 4 byte khai b¸o c¸c -38 38 biÕn thùc tõ 3.4*10 -> 3.4*10 . -308 + Sè thùc double: kÝch th íc 8 byte, cã ph¹m vi tõ 1.7*10 - > 308 1.7*10 + Sè thùc (dÊu ph¶y ®éng, ®é chÝnh x¸c kÐp) dµi: long double: -4932 4932 kÝch th íc 10 byte, khai b¸o c¸c biÕn tõ 3.4 * 10 tíi 1.1 * 10 . b. KiÓu ký tù: bao gåm + KiÓu ký tù char: khai b¸o biÕn chøa mét ký tù. + KiÓu con trá ký tù char *: t¬ng ®¬ng víi chuçi ký tù. 3. BiÕn vµ c¸ch khai b¸o biÕn §Ó khai b¸o biÕn trong C++ ta dïng có ph¸p sau: Trong ®ã: - : cã thÓ lµ mét trong c¸c kiÓu d÷ liÖu chuÈn, cã thÓ lµ c¸c kiÓu tù ®Þnh nghÜa. - : ®îc ®Æt tu©n theo quy t¾c ®Æt tªn biÕn trong ng«n ng÷ lËp tr×nh Pascal. - C¸c biÕn c¸ch nhau bëi dÊu ph¶y, c¸c khai b¸o c¸ch nhau bëi dÊu chÊm ph¶y. VD: int a, b, c; long so; char * s; Biªn so¹n: NguyÔn M ¹nh Cêng Trang 5
  6. §Ò c¬ng chi tiÕt Kü thuËt lËp tr×nh Chó ý: cã t hÓ khai b¸o biÕn t¹i bÊt kú ® © u t rong ch¬ ng t r× nh vµ t ríc khi sö dông. 4. CÊu tróc mét ch¬ng tr×nh ®¬n gi¶n Mét ch¬ng tr×nh ®¬n gi¶n trong C++ th êng cã cÊu tróc nh sau: //Khai b¸o c¸c th viÖn sö dông trong ch¬ng tr×nh. #include …. main() //tªn hµm chÝnh { // NhËp d÷ liÖu // TÝnh to¸n // In c¸c kÕt qu¶ } VD1. xÐt ®o¹n tr×nh sau: #include #include #include main() { clrscr(); int a, b; / / k hai b¸o hai biÕn nguyªn a, b couta; coutb; int c; c = a+b; cout
  7. §Ò c¬ng chi tiÕt Kü thuËt lËp tr×nh Trong vÝ dô trªn, ta cã: - C¸c c©u lÖnh #include : khai b¸o mét sè t h viÖn sÏ sö dông. C¸ c t h viÖn nµy cã chøa s½n c¸c hµm sÏ sö dông t rong ch- ¬ ng t r× nh. Ch¼ng h¹n t h viÖn iost ream.h chøa c¸c hµm cout, cin… - Tõ khãa main() ®Ó b¾t ®Çu th©n ch¬ng tr×nh chÝnh. - C¸c ký tù {, } ®Ó b¾t ®Çu vµ kÕt thóc mét khèi lÖnh trong ch¬ng tr×nh. C¸c ký tù nµy t ¬ng tù c¸c tõ khãa nµy Begin vµ End trong Pascal. - clrscr(); lµ mét lêi gäi hµm xãa mµn h×nh. Hµm n·y ®· cã s½n trong th viÖn stdio.h. CÇn lu ý c¸ch gäi hµm kh«ng ®èi, kh¸c víi Pascal. - C¸c lÖnh cout, cin cã s½n trong th viÖn iostream.h cho phÐp in lªn mµn h×nh c©u th«ng b¸o vµ nhËn gi¸ trÞ nhËp vµo tõ bµn phÝm cho hai biÕn a, b. chóng t ¬ng tù nh lÖnh Write vµ Read trong Pascal. - LÖnh getch() cã trong th viÖn conio.h cho phÐp dõng mµn h×nh l¹i ®Ó xem kÕt qu¶. Mµn h×nh sÏ dõng cho tíi khi mét phÝm bÊt kú ®îc bÊm. - LÖnh return 0; dïng ®Ó chØ ra kÕt qu¶ tr¶ vÒ cña hµm. VD2. ViÕt ch¬ng tr×nh nhËp vµo hai sè nguyªn a, b sau ®ã in ra mµn h×nh tæng, hiÖu, tÝch, th ¬ng cña hai sè nguyªn ®ã. #include #include #include main() { clrscr(); int a, b; / / k ha i b¸o hai biÕn nguyªn a, b Biªn so¹n: NguyÔn M ¹nh Cêng Trang 7
  8. §Ò c¬ng chi tiÕt Kü thuËt lËp tr×nh couta; coutb; int T, H, TI, TH; T = a+b; H = a-b; TI = a*b; TH= a/b; cout
  9. §Ò c¬ng chi tiÕt Kü thuËt lËp tr×nh Chó ý: - cã t hÓ sö dông liªn t iÕp nhiÒu to¸ n tö xuÊt t rªn mét dßng cout. VD: cout< < ” Gi¸ t rÞ cña a[“< < i
  10. §Ò c¬ng chi tiÕt Kü thuËt lËp tr×nh cout.precision(2); coutc; Biªn so¹n: NguyÔn M ¹nh Cêng Trang 1 0
  11. §Ò c¬ng chi tiÕt Kü thuËt lËp tr×nh Bµi t Ëp vÝ dô: ViÕt ch¬ ng t r× nh nhËp vµo mét sè t hùc x, in ra 2 mµn h× nh gi¸ t rÞ cña F(x) = sin (x) + cos(x) víi ®é chÝnh x¸c 2 ch÷ sè sau dÊu ph¶y. #include #include #include void main() { clrscr(); float x, F; coutx cout.precision(2); cout
  12. §Ò c¬ng chi tiÕt Kü thuËt lËp tr×nh VD: CÇn ®a ra c¸c gi¸ t rÞ cña c¸c biÕn a, b, c kiÓu nguyªn, ta viÕt: printf (“ Gi¸ trÞ cña a b c la %d %d %d, a, b, c); LÖnh nhËp: scanf. Có ph¸p: scanf(“chuçi c¸c ®Æc t¶”, , …); Trong ®ã, mçi biÕn cÇn ph¶i cã mét ®Æc t¶ t ¬ng øng. LÖnh scanf nhËp gi¸ trÞ vµo c¸c biÕn th«ng qua ®Þa chØ cña biÕn. c. C¸c lÖnh nhËp xuÊt trong Conio.h LÖnh xuÊt: puts. Có ph¸p: puts(p); Trong ®ã p lµ mét con trá, trá tíi mét ký tù hoÆc h»ng x©u ký tù. NÕu p lµ biÕn chøa 1 ký tù th× p ph¶i cã kiÓu char *, nÕu p lµ kiÓu char th× ph¶i lµ mét m¶ng kiÓu char. LÖnh puts sÏ ®a c¸c ký tù ®îc con trá p trá tíi lªn mµn h×nh. VD: char * p = “a”; puts(p);// ®a ký tù a ra mµn h×nh char q[100] = “Ha Noi”; puts(q);// ®a Ha Noi ra mµn h×nh. LÖnh nhËp: gets(). Có ph¸p: gets(p); Trong ®ã, p lµ biÕn con trá ký tù, nh vËy, p ph¶i cã kiÓu char * . NÕu p lµ biÕn kiÓu char th× ph¶i lµ mét biÕn m¶ng kiÓu char. (char * p hoÆc char p[]) Biªn so¹n: NguyÔn M ¹nh Cêng Trang 1 2
  13. §Ò c¬ng chi tiÕt Kü thuËt lËp tr×nh C¸ c lÖnh gets, puts t hÝch hîp cho viÖc nhËp xuÊt c¸c biÕn kiÓu x© u ký t ù. 6. BiÓu thøc trong C++ Mét biÓu thøc th«ng th êng ®îc cÊu thµnh tõ hai thµnh phÇn: c¸c to¸n tö vµ c¸c to¸n h¹ng. a. C¸c to¸n tö: ®îc t¹m chia lµm 3 lo¹i C¸c to¸n tö sè häc Trong C++ sö dông c¸c to¸n tö sè häc cho trong b¶ng sau: Stt To¸n tö Ng«n ng÷ Ng«n ng÷ C++ Pascal 1 Céng + + 2 Trõ - - 3 Nh©n * * 4 Chia / / 5 §ång d mod % 6 T¨ng 1 ®¬n +1 ++ vÞ 7 Gi¶m 1 ®¬n -1 -- vÞ 8 G¸n := = VD: int a, b; int T, H, TI, TH, D; a=8; b=3; T = a+b; H = a-b; TI = a*b; Biªn so¹n: NguyÔn M ¹nh Cêng Trang 1 3
  14. §Ò c¬ng chi tiÕt Kü thuËt lËp tr×nh TH = a/b; D = a%b; a++; b--; C¸c to¸n tö Logic Trong C+ + sö dông c¸c to¸ n tö Logic cho t rong b¶ng sau: Stt To¸n tö Ng«n ng÷ Ng«n ng÷ C++ Pascal 1 Vµ And && 2 HoÆc Or | | 3 Phñ ®Þnh Not ! C¸c to¸n tö so s¸nh Trong C++ sö dông c¸c to¸n tö So s¸nh cho trong b¶ng sau: Stt To¸n tö Pascal Ng«n ng÷ C++ 1 Lín h¬n > > 2 Nhá h¬n < < 3 Lín h¬n hoÆc >= >= b»ng 4 Nhá h¬n hoÆc
  15. §Ò c¬ng chi tiÕt Kü thuËt lËp tr×nh Trong mét biÓu t høc cã sö dông nhiÒu to¸ n tö, t hø t ù u t iªn c¸c to¸ n tö nh sau (theo chiÒu tõ t r¸ i qua ph¶i, tõ t rªn xuèng díi): ! ++ -- * / % + - < >= == != && | | VD: ViÕt biÓu thøc to¸n häc sau b»ng ng«n ng÷ C++ (nÕu cÇn) vµ cho biÕt thø tù thùc hiÖn c¸c phÐp to¸n. 5x 6 +2/7 + (6 mod 3) i + j ++ (i+j)++ Biªn so¹n: NguyÔn M ¹nh Cêng Trang 1 5
  16. §Ò c¬ng chi tiÕt Kü thuËt lËp tr×nh Ch¬ng II. C¸c cÊu tróc ®iÒu khiÓn trong C++ 1. Giíi thiÖu chung Mét phÇn rÊt quan t räng t rong mét ng«n ng÷ lËp t r× nh lµ c¸c cÊu t róc ® iÒu khiÓn. Trong Pascal ta ® · lµm quen víi 3 lo¹i cÊu t róc ® iÒu khiÓn: Chän, RÏ nh¸ nh, LÆp. Ta sÏ lÇn lît xem xÐt c¸c lo¹i cÊu t róc ® iÒu khiÓn ® ã t rong ng«n ng÷ C+ + . Ta t¹m t hêi chia c¸c cÊu t róc ® iÒu khiÓn t rong C+ + t heo c© y t hø bËc sau: CÊu tr óc ®iÒu k hiÓn CÊu t r óc CÊu t r óc CÊu t r óc chän r Ï nh¸nh lÆp CÊu t r óc CÊu t r óc lÆp víi sè lÆp víi sè lÇn lÆp lÇn lÆp CÊu t r óc CÊu t r óc lÆp kiÓm lÆp kiÓm t r a ®iÒu t r a ®iÒu 2. CÊu tróc rÏ nh¸nh Trong thùc tÕ, khi gi¶i quyÕt mét c«ng viÖc th êng ta ph¶i lùa chän nhiÒu ph¬ng ¸n gi¶i quyÕt kh¸c nhau. Ngêi ta th êng biÓu diÔn vÊn ®Ò nµy b»ng mÖnh ®Ò: Biªn so¹n: NguyÔn M ¹nh Cêng Trang 1 6
  17. §Ò c¬ng chi tiÕt Kü thuËt lËp tr×nh - [1]. NÕu … th× …; - [2]. NÕu … th× … ngîc l¹i th×… §Ó m« pháng hai mÖnh ® Ò ® ã, t rong ng«n ng÷ lËp t r× nh C+ + ®a ra cÊu t róc r Ï nh¸ nh. CÊu t róc r Ï nh¸ nh cã hai d¹ng nh t rong s¬ ® å khèi díi ® © y. BT§K BT§K Thùc hiÖn Thùc hiÖn N lÖnh1 lÖnh 2 Thùc hiÖn lÖnh Y N Y a). M« t¶ mÖnh ®Ò [1] b) M« t¶ mÖnh ®Ó [2] Có ph¸p: (m« pháng mÖnh ®Ò 1) if () ; (M« pháng mÖnh ®Ò 2) if () ; Biªn so¹n: NguyÔn M ¹nh Cêng Trang 1 7
  18. §Ò c¬ng chi tiÕt Kü thuËt lËp tr×nh else ; ý nghÜa: [1]. nÕu < biÓu t høc ® iÒu kiÖn> nhËn gi¸ t rÞ ® óng, sÏ t hùc hiÖn < LÖnh> , ngîc l¹i, bá qua lÖnh if. [2]. nÕu < biÓu t høc ® iÒu kiÖn> nhËn gi¸ t rÞ ® óng, sÏ t hùc hiÖn < LÖnh 1> , ngîc l¹i, nÕu < biÓu t høc ® iÒu kiÖn> nhËn gi¸ t rÞ sai sÏ t hùc hiÖn < LÖnh 2> . Chó ý: - BiÓu thøc ®iÒu kiÖn ®îc ®Æt gi÷a hai dÊu ngoÆc ®¬n “(“ “)”. - C©u lÖnh tr íc else cã dÊu “;”. - vµ cã thÓ lµ mét khèi lÖnh. C¸c khèi lÖnh ®îc ®Æt trong hai dÊu { }. VD: LËp ch¬ng tr×nh nhËp vµo mét sè nguyªn. KiÓm tra tÝnh ch½n lÎ cña sè ®ã vµ th«ng b¸o ra mµn h×nh. #include #include #include main() { clrscr(); int a; cout>a; if (a%2 = = 0) cout
  19. §Ò c¬ng chi tiÕt Kü thuËt lËp tr×nh getch(); } C¸ c lÖnh if cã t hÓ lång nhau t heo nghÜa: C¸ c c© u lÖnh bªn t rong mét m Önh ® Ò if l¹i cã t hÓ lµ c¸c mÖnh ® Ò if. C¸ c m Önh ® Ò if lång nhau t ¬ ng ®¬ ng víi mét m Önh ® Ò if mµ biÓu t høc ® iÒu kiÖn cña nã lµ sù kÕt hîp biÓu c¸c biÓu t høc ® iÒu kiÖn cña c¸c mÖnh ® Ó if lång nhau t heo phÐp vµ (AND). Mçi lÖnh if ®ñ sÏ cho phÐp lùa chän 2 kh¶ n¨ng ®Ó thùc hiÖn. Trong tr êng hîp cã n kh¶ n¨ng lùa chän, ta cã thÓ sö dông n-1 lÖnh if ®ñ lång nhau. VD: ViÕt ch¬ng tr×nh thùc hiÖn viÖc nhËp vµo sè tiÒn cña kh¸ch hµng ph¶i tr¶. NÕu sè tiÒn tõ 300000 tíi 400000, khuyÕn m¹i 20%. NÕu sè tiÒn tõ 400000 trë lªn, khuyÕn m¹i 30%. C¸c tr êng hîp kh¸c kh«ng ®îc khuyÕn m¹i. TÝnh vµ in sè tiÒn khuyÕn m¹i cña kh¸ch lªn mµn h×nh. #include #include #include main() { clrscr(); int T, km; coutT; if (T>=300000 && T 40000) km = 30*T /100; else km = 0; Biªn so¹n: NguyÔn M ¹nh Cêng Trang 1 9
  20. §Ò c¬ng chi tiÕt Kü thuËt lËp tr×nh cout
nguon tai.lieu . vn