intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Giới thiệu về ngôn ngữ C

Chia sẻ: LE DA | Ngày: | Loại File: DOC | Số trang:47

86
lượt xem
7
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Giới thiệu về ngôn ngữ C++ Khả năng tổ chức và xử lý thông tin là yếu tố chính dẫn đến thành công trong thời đại hiện nay. Các máy tính được thiết kế để kết nối và xử lý một lượng lớn các thông tin nhanh và hiệu quả. Tuy nhiên chúng không thể làm được bất cứ việc gì khi mà một người nào đó chưa nói với chúng những gì phải làm. Những công việc mà người ta yêu cầu phải thực hiện, thì đó chính là những cái mà C++ có thể làm. C++ là một ngôn...

Chủ đề:
Lưu

Nội dung Text: Giới thiệu về ngôn ngữ C

  1. Ch¬ng 1 Giíi thiÖu vÒ ng«n ng÷ C++ Kh¶ n¨ng tæ chøc vµ xö lý th«ng tin lµ yÕu tè chÝnh dÉn ®Õn thµnh c«ng trong thêi ®¹i hiÖn nay. C¸c m¸y tÝnh ®îc thiÕt kÕ ®Ó kÕt nèi vµ xö lý mét lîng lín c¸c th«ng tin nhanh vµ hiÖu qu¶. Tuy nhiªn chóng kh«ng thÓ lµm ®îc bÊt cø viÖc g× khi mµ mét ngêi nµo ®ã cha nãi víi chóng nh÷ng g× ph¶i lµm. Nh÷ng c«ng viÖc mµ ngêi ta yªu cÇu ph¶i thùc hiÖn, th× ®ã chÝnh lµ nh÷ng c¸i mµ C++ cã thÓ lµm. C++ lµ mét ng«n ng÷ lËp tr×nh bËc cao, nã cho phÐp nh÷ng kü s phÇn mÒm trao ®æi th«ng tin mét c¸ch hiÖu qu¶ ®èi víi m¸y tÝnh. C++ lµ mét ng«n ng÷ cã kh¶ n¨ng thÝch øng vµ cã tÝnh mÒm dÎo cao. Tõ khi nã ®îc t¹o ra n¨m 1980, nã ®· ®îc sö dông réng r·i víi c¸c ch- ¬ng tr×nh bao gåm c¬ së cho c¸c bé vi ®iÒu khiÓn, c¸c hÖ thèng ®iÒu hµnh, c¸c øng dông, vµ ®å ho¹. C++ nhanh chãng trë thµnh mét ng«n ng÷ lËp tr×nh ®îc a chuéng. Cã mét sù yªu cÇu lín ®èi víi nh÷ng ngêi lµm viÖc víi m¸y tÝnh lµ hä ph¶i cã kh¶ n¨ng yªu cÇu lµm nh÷ng c«ng viÖc mµ hä cÇn, vµ C++ cho phÐp hä lµm viÖc nhanh chãng vµ hiÖu qu¶. S¬ lîc vÒ lÞch sö ph¸t triÓn cña C++ N¨m 1970 hai nhµ lËp tr×nh lµ Brian Kemighan vµ Dennis Ritchie t¹o ra mét ng«n ng÷ míi ®îc gäi lµ C (Gäi lµ ng«n ng÷ C bëi v× C ®øng tríc mét ng«n ng÷ cò mµ hä sö dông cã tªn lµ B). C ®îc thiÕt kÕ víi mét môc ®Ých chñ yÕu lµ: viÕt hÖ thèng ®iÒu hµnh. Ng«n ng÷ nµy rÊt ®¬n gi¶n, mÒm dÎo vµ nã sím ®îc sö dông réng r·i cho nhiÒu d¹ng ch¬ng tr×nh kh¸c nhau. Cuèi cïng C ®· nhanh chãng trë thµnh mét trong nh÷ng ng«n ng÷ th«ng dông nhÊt trªn thÕ giíi. Tuy nhiªn ng«n ng÷ C cã mét vÊn ®Ò chÝnh, nã lµ mét ng«n ng÷ h- íng ®èi tîng, nghÜa lµ khi thiÕt kÕ mét ch¬ng tr×nh C, ngêi lËp tr×nh b¾t ®Çu víi viÖc m« t¶ d÷ liÖu vµ viÕt c¸c thñ tôc ®Ó thao t¸c víi c¸c d÷ liÖu ®ã. Cuèi cïng nh÷ng ngêi lËp tr×nh kh¸m ph¸ ra r»ng ng÷ng qu¸ trÝnh trªn nã lµm cho ch¬ng tr×nh trë lªn râ rµng vµ dÔ hiÓu nÕu hä cã thÓ ®a vµo mét bunch d÷ liÖu vµ nhãm chóng vµo víi nhau víi c¸c thao t¸c mµ lµm viÖc trªn c¸c d÷ liÖu ®ã. Nh vËy mét nhãm ®îc gäi lµ mét object (®èi tîng) hoÆc class (líp). ThiÕt kÕ c¸c ch¬ng tr×nh b»ng c¸ch thiÕt kÕ c¸c class ®îc biÕt ®Õn nh thiÕt kÕ híng ®èi tîng (object-oriented design _ OOD) N¨m 1980 Bjarne Stroustrup b¾t ®Çu lµm viÖc trªn mét ng«n ng÷ míi gäi lµ “C víi class”. Ng«n ng÷ nµy c¶i tiÕn tõ ng«n ng÷ C b»ng c¸ch thªm
  2. mét sè ®Æc ®iÓm míi, vµ ®Æc biÖt quan träng lµ vÒ class. Ng«n ng÷ nµy ®îc c¶i tiÕn, bæ sung, vµ cuèi cïng nã trë thµnh C++. C++ víi nh÷ng thµnh c«ng cña nã, trªn thùc tÕ lµ nã cho phÐp nh÷ng ngêi lËp tr×nh tæ chøc vµ xö lý th«ng tin hiÖu qu¶ h¬n hÇu hÕt c¸c ng«n ng÷ kh¸c. H¬n n÷a, nã ®îc x©y dùng trªn nh÷ng viÖc ®· ®îc lµm víi ng«n ng÷ C. Trªn thùc tÕ hÇu hÕt c¸c ch¬ng tr×nh C cã thÓ chuyÓn ®æi sang ch¬ng tr×nh C++ víi mét chót thay ®æi. Nh÷ng ch¬ng tr×nh nµy thêng kh«ng sö dông hÕt tÊt c¶ nh÷ng ®Æc ®iÓm míi cña C++, nh- ng chóng vÉn cã thÓ thùc hiÖn ®îc c«ng viÖc. Trong trêng hîp nµy, C++ cho phÐp c¸c nhµ lËp tr×nh x©y dùng dùa trªn nh÷ng nÒn t¶ng tån t¹i cña m· cña C. Sù tæ chøc cña C++ C++ ®îc thiÕt kÕ nh lµ mét cÇu nèi gi÷a nh÷ng ngêi lËp tr×nh vµ m¸y tÝnh raw. ý tëng chÝnh lµ cho phÐp ngêi lËp tr×nh tæ chøc mét ch¬ng tr×nh theo mét c¸ch mµ hä cã thÓ dÔ dµng hÓu ®îc chóng. Ch¬ng tr×nh dÞch sau ®ã dÞch tõ ng«n ng÷ sang d¹ng mµ m¸y cã thÓ sö dông. C¸c ch¬ng tr×nh m¸y tÝnh bao gåm hai phÇn chÝnh lµ: d÷ liÖu vµ c¸c lÖnh. C¸c m¸y tÝnh t¸c ®éng mét chót hoÆc kh«ng cã sù tæ chøc(organization) trªn hai phÇn nµy. Sau cïng, c¸c m¸y tÝnh ®îc thiÕt kÕ mét c¸ch chung nhÊt cã thÓ ®îc. Mét ý tëng cho c¸c nhµ lËp tr×nh lµ t¸c ®éng lªn tæ chøc trªn m¸y tÝnh cña hä vµ kh«ng ph¶i b»ng c¸ch kh¸c. D÷ liÖu trong m¸y tÝnh ®îc chøa nh mét chuçi bao gåm c¸c byte. C+ + sö dông nh÷ng byte nµy ®Ó chøa c¸c d÷ liÖu cã Ých. C¸c kh¸i b¸o d÷ liÖu ®îc dïng bëi nh÷ng ngêi lËp tr×nh ®Ó biÓu thÞ th«ng tin mµ hä ®ang lµm viÖc. VÝ dô: int total; //Total number accounts Khai b¸o trªn yªu cÇu C++ r»ng b¹n muèn dïng mét phÇn bé nhí cña m¸y tÝnh ®Ó chøa mét sè nguyªn víi tªn lµ total. B¹n cã thÓ cho phÐp ch- ¬ng tr×nh dÞch lùa chän nh÷ng byte ®Æc biÖt nµo ®ã cña bé nhí ®Ó sö dông. BiÕn total lµ mét biÕn ®¬n gi¶n. Nã cã thÓ chØ chøa duy nhÊt mét sè nguyªn vµ miªu t¶ duy nhÊt víi mét total. Mét chuçi c¸c sè nguyªn cã thÓ ®îc tæ chøc vµo trong mét m¶ng. MÆt kh¸c, C++ sÏ kÕt nèi c¸c chi tiÕt, t¸c ®éng lªn (imposing) sù tæ chøc trªn bé nhí cña m¸y tÝnh. int balance[1001; //Balance (in cents) for all 100 accounts Cuèi cïng, cã thªm c¸c kiÓu d÷ liÖu phøc hîp. VÝ dô, mét h×nh ch÷ nhËt cã thÓ cã chiÒu réng, ®é cao, mµu vµ mÉu t«. C++ cho phÐp b¹n tæ chøc bèn thuéc tÝnh trªn vµo mét nhãm gäi lµ mét cÊu tróc (structure). struct rectangle { int width; //Width of rectangle in pixels int height; //Height of rectangle in pixels color_type color; //color of the rectangle fill-type fill; //Fill pattern };
  3. Tuy nhiªn, d÷ liÖu chØ lµ mét phÇn cña ch¬ng tr×nh, ngoµi ra b¹n cßn cÇn ®Õn c¸c lÖnh. §Õn møc ®é mµ m¸y tÝnh ®îc quan t©m, nã kh«ng biÕt mét chót g× vÒ c¸ch s¾p xÕp cña c¸c lÖnh. Nã chØ biÕt r»ng nã ®ang lµm g× víi lÖnh hiÖn t¹i vµ t¹i ®©u nã cã lÖnh kÕ tiÕp. C++ lµ mét ng«n ng÷ bËc cao, nã cho phÐp b¹n viÕt mét c©u lÖnh bËc cao nh: area = (base*height)/2.0; // Compute area of triangle Ch¬ng tr×nh dÞch dÞch lÖnh nµy vµo mét chuçi c¸c chØ dÉn (lÖnh) cña m¸y. C¸c kiÓu lÖnh nµy ®îc gäi lµ mét assignment statement. Nã ®îc sö dông ®Ó tÝnh vµ chøa c¸c gi¸ trÞ cña mét biÓu thøc sè häc. B¹n còng cã thÓ dïng control statement (lÖnh ®iÒu khiÓn) ®Ó ®iÒu khiÓn thø tù cña qu¸ tr×nh xö lý. C¸c lÖnh nh if vµ switch lµm cho m¸y tÝnh t¹o c¸c quyÕt ®Þnh d¬n gi¶n. C¸c lÖnh cã thÓ ®îc lÆp l¹i b»ng c¸ch dïng vßng lÆp nh while vµ for. C¸c nhãm cña c¸c lÖnh cã thÓ n»m trong c¸c hµm. V× vËy b¹n chØ cÇn viÕt mét hµm víi môc ®Ých chung ®Ó vÏ h×nh ch÷ nhËt vµ sau ®ã cã thÓ sö dông l¹i hµm ®ã nh÷ng n¬i mµ b¹n muèn vÏ h×nh ch÷ nhËt. C+ + cung cÊp mét bé phong phó c¸c hµm tiªu chuÈn (standard function) nh÷ng hµm mµ thùc hiÖn c¸c chøc n¨ng th«ng thêng nh t×m kiÕm (searching), ph©n lo¹i (sorting), nhËp vµo (input), vµ ®a ra (output). Mét bé c¸c hµm quan hÖ cã thÓ ®îc nhãm víi nhau ®Ó t¹o ra c¸c modul, vµ c¸c modul ®îc nèi víi nhau t¹o thµnh c¸c ch¬ng tr×nh. Mét trong nh÷ng môc tiªu chÝnh cña ng«n nh÷ C++ lµ tæ chøc c¸c lÖnh hîp thµnh c¸c phÇn ®Ó cã thÓ sö dông l¹i ®îc. Cuèi cïng, b¹n cã thÓ viÕt mét ch¬ng tr×nh nhanh h¬n nÕu b¹n “mîn” hÇu hÕt c¸c m· cña b¹n ë mét n¬i nµo ®ã kh¸c. Nhãm c¸c modul cã kh¶ n¨ng dïng l¹i cã thÓ kÕt hîp vµo trong mét th viÖn. VÝ dô, nÕu b¹n cÇn mét bé s¾p xÕp th«ng thêng, b¹n cã thÓ dïng c¸c hµm chøc n¨ng qsort tõ th viÖn vµ liªn kÕt nã víi ch¬ng tr×nh cña b¹n. Mét m¸y tÝnh chia thÕ giíi thµnh d÷ liÖu vµ c¸c lÖnh. Trong c¶ mét thêi gian dµi, c¸c ng«n ng÷ bËc cao nh C vÉn gi÷ nguyªn c¸ch ph©n chia nµy. Trong ng«n ng÷ C, b¹n cã thÓ ®Þnh nghÜa d÷ liÖu hoÆc viÕt c¸c lÖnh nhng kh«ng thÓ kÕt hîp c¶ hai. Mét sù c¶i tiÕn chÝnh trong C++ lµ ý tëng kÕt hîp d÷ liÖu vµ lÖnh l¹i víi nhau trong mét cÊu tróc gäi lµ líp (class) hoÆc ®èi tîng (object). LËp tr×nh híng ®èi tîng cho phÐp nhãm d÷ liÖu víi c¸c lÖnh thao t¸c trªn d÷ liÖu ®ã. Kh¸i niÖm nµy ®îc n©ng lªn mét bíc n÷a trong C++: nã cho phÐp ta nhËn ®îc c¸c class míi tõ nh÷ng c¸i ®· tån t¹i. §Æc ®iÓm cuèi nµy lµ mét tÝnh n¨ng rÊt m¹nh. Nã cho phÐp b¹n x©y dùng c¸c class phøc t¹p tõ nh÷ng class ®¬n gi¶n h¬n, nhá h¬n. Nã còng cho phÐp b¹n ®Þnh nghÜa mét class tr×u tîng (abstract), c¬ b¶n vµ sau ®ã t¹o ra (derive) c¸c class chi tiÕt h¬n tõ c¸c class ban ®Çu. VÝ
  4. dô, mét class tr×u tîng vÒ h×nh d¹ng cã thÓ ®îc dïng ®Ó ®Þnh nghÜa c¸c h×nh d¹ng nh: h×nh ch÷ nhËt, tam gi¸c, h×nh trßn. Tæ chøc (organization) lµ mét mÊu chèt ®Ó viÕt c¸c ch¬ng tr×nh hoµn h¶o. Nh trong cuèn s¸ch nµy, b¹n biÕt r»ng b¶ng néi dung ë ®»ng tríc, b¶ng môc lôc ë ®»ng sau, nã lµ mét c¸ch mµ c¸c quyÓn s¸ch ®îc tæ chøc. Tæ chøc lµm cho quyÓn s¸ch nµy sö dông ®îc dÔ h¬n. Ng«n ng÷ C++ cho phÐp b¹n tæ chøc c¸c ch¬ng tr×nh cña m×nh dïng có ph¸p (syntax) ®¬n gi¶n mµ hiÖu qu¶. Cuèn s¸ch nµy sÏ ®i s©u vµo có ph¸p cña C++ vµ híng dÉn b¹n ®Þnh kiÓu c¸c quy t¾c ®Ó t¹o c¸c ch¬ng tr×nh tin cËy vµ dÔ ®äc. B»ng c¸ch kÕt hîp mét có ph¸p hiÖu qu¶ víi kiÓu (style) lËp tr×nh tèt b¹n cã thÓ t¹o nh÷ng ch¬ng tr×nh m¹nh thùc hÖn c¸c phÐp to¸n phøc t¹p. C¸ch häc ng«n ng÷ C++ ChØ cã duy nhÊt mét c¸ch häc viÕt ch¬ng tr×nh lµ ph¶i viÕt c¸c ch- ¬ng tr×nh. B¹n sÏ häc ®îc rÊt nhiÒu b»ng c¸ch viÕt vµ gì rèi (debugging) c¸c ch¬ng tr×nh h¬n lµ khi mµ b¹n ®· ®äc song cuèn s¸ch nµy (than you ever will by reading this book). Cuèn s¸ch nµy bao gåm nhiÒu bµi tËp vÒ lËp tr×nh, vµ b¹n cè g¾ng lµm ®îc cµng nhiÒu trong sè chóng cµng tèt. Khi lµm c¸c bµi tËp b¹n ph¶i lu«n nghÜ ®Õn kiÓu ch¬ng tr×nh hoµn h¶o nhÊt, ph¶i lu«n lu«n chó thÝch (comment) c¸c ch¬ng tr×nh cña b¹n, thËm chÝ c¶ khi b¹n ®ang lµm bµi tËp ®ã cho riªng m×nh. Sù chó thÝch gióp b¹n tæ chøc c¸c ý tëng cña m×nh, vµ chó thÝch c¸c ch¬ng tr×nh cña b¹n lµ mét c¸ch luyÖnn tËp t«t nhÊt khi b¹n ®i vµo thùc tÕ (“real world”). B¹n h·y ®õng nghÜ r»ng, “T«i chØ viÕt nh÷ng ch¬ng tr×nh nµy cho riªng m×nh, v× vËy t«i kh«ng cÇn chó thÝch chóng.” Tríc tiªn, nh÷ng m· mµ b¹n thÊy rÊt râ rµng khi viÕt, nã cã thÓ thêng rÊt rèi vµ khã hiÓu khi b¹n xem l¹i mét tuÇn sau ®ã. ViÕt c¸c c©u chó thÝch, nã cßn gióp b¹n tæ chøc c¸c ý tëng cña m×nh (Nõu b¹n cã thÓ viÕt ra mét ý tëng b»ng tiÕng Anh, th× b¹n míi chØ hoµn thµnh mét nöa c«ng viÖc viÕt nã b»ng C++) Cuèi cïng, c¸c ch¬ng tr×nh cã xu híng xa h¬n lµ chóng ta mong ®îi. Mét lÇn t«i viÕt mét ch¬ng tr×nh ®îc thiÕt kÕ chØ lµm viÖc duy nhÊt trªn mét m¸y tÝnh t¹i Caltech. Ch¬ng tr×nh phô thuéc vµo hÖ thèng rÊt cao. Bëi v× t«i lµ ngêi duy nhÊt sÏ dïng ch¬ng tr×nh, ch¬ng tr×nh sÏ in ra mét th«ng b¸o theo sau nÕu t«i cã mét dßng lÖnh sai: ?LSTUIT User is a twit Vµi n¨m sau ®ã t«i lµ mét sinh viªn t¹i trêng ®¹i häc Syracuse. Ngêi th ký t¹i trêng Computer Science cÇn mét ch¬ng tr×nh t¬ng tù nh ch¬ng tr×nh danh s¸ch cña t«i ë Caltech, v× vËy t«i söa ch¬ng tr×nh cña t«i cho c« ta. ThËt kh«ng may, t«i ®· quªn c¸i th«ng b¸o lçi nhá bÐ buån cêi ®ã cña t«i.
  5. Tëng tîng r»ng nã sÏ khñng khiÕp nh thÕ nµo khi t«i bíc vµo v¨n phßng cña Computer Science vµ bÞ hái bëi ngêi th ký trëng. Ngêi ®µn bµ nµy cã nhiÒu quyÒn lùc ®Õn møc mµ bµ ta cã thÓ lµm cho trëng khoa ph¶i kÝnh nÓ. C« ta nh×n t«i vµ nãi, “Ngêi sö dông lµ ®Çn, h¶? (User is a twit, huh?)” RÊt may m¾n lµ c« ta cã tÝnh hµi híc, hoÆc ngµy nay t«i kh«ng ë ®©y n÷a. R¶i r¾c suèt cuèn s¸ch nµy lµ c¸c ch¬ng tr×nh bÞ “®øt qu·ng” (“broken”), vµ bá thêi gian ®Ó t×m ra t¹i sao chóng kh«ng lµm viÖc. Th«ng thêng nh÷ng vÊn ®Ò nµy rÊt ®¬n gi¶n nh dÊu chÊm phÈy kh«ng ®óng chç, hoÆc dïng = thay cho ==. Nh÷ng ch¬ng tr×nh nµy gióp b¹n häc c¸ch t×m c¸c lçi ë c¸c ch¬ng tr×nh nhá, tõ ®ã b¹n lµm t¬ng tù ë c¸c ch¬ng tr×nh lín, vµ b¹n sÏ t¹o c¸c lçi, ®îc luyÖn tËp ®Ó t×m chóng.
  6. Ch¬ng 2 C¸c m¸y tÝnh lµ c¸c c«ng cô mµ cã thÓ chøa, tæ chøc vµ xö lý mét l- îng lín th«ng tin. Tuy nhiªn chóng kh«ng thÓ lµm ®îc bÊt cø c¸i g× khi mµ ai ®ã cha ®a cho chóng nh÷ng lÖnh chi tiÕt. Th«ng tin víi c¸c m¸y tÝnh kh«ng dÔ dµng. Nã yªu cÇu c¸c lÖnh chÝnh x¸c vµ chi tiÕt. Cuéc sèng cã dÔ dµng h¬n kh«ng nÕu chóng ta cã thÓ viÕt ch¬ng tr×nh b»ng tiÕng Anh? TiÕp theo chóng ta yªu cÇu m¸y tÝnh, “Thªm vµo tÊt c¶ c¸c kiÓm tra vµ c¸c deposit cña t«i vµ nãi víi t«i toµn bé,” vµ m¸y sÏ c©n b»ng (balancce) c¸c kiÓm tra cña chóng ta (checkbook). Nhng tiªng Anh lµ mét ng«n ng÷ rÊt h¹n chÕ nÕu b¹n ph¶i viÕt c¸c c©u lÖnh chÝnh x¸c. Ng«n ng÷ hoµn toµn kh«ng râ nghÜa vµ kh«ng chÝnh x¸c. Grace Hopper, mét bµ næi tiÕng vÒ tÝnh to¸n (computing), mét lÇn b×nh luËn vÒ c¸c chØ dÉn ë hép dÇu géi ®Çu: Wash (géi) Rinse (géi qua) Repeat (lÆp l¹i) Bµ ta cè g¾ng theo sù chØ dÉn, nhng ®· ®ïng hÕt hép dÇu (Wash-rinse-repeat. Wash-rinse-repeat. Wash-rinse-repeat....). TÊt nhiªn chóng ta sÏ cè g¾ng viÕt b»ng tiÕng Anh râ rµng. Chóng ta ph¶i rÊt cÈn thËn vµ ch¾c ch¾n ®Ó ®¸nh vÇn râ rµng mäi thø vµ ch¾c ch¾n tÝnh ®Õn c¸c lÖnh (chØ dÉn) cho mäi trêng hîp x¶y ra. NÕu chóng ta lµm viÖc cËt lùc, chóng ta cã thÓ viÕt c¸c lÖnh tiÕng Anh chÝnh x¸c, ®óng kh«ng? ChÝnh v× vËy, cã mét nhãm ngêi tËp trung thêi gian cè g¾ng viÕt tiÕng Anh chÝnh x¸c. Hä ®îc gäi lµ chÝnh phñ, vµ c¸c v¨n b¶n hä viÕt ®- îc gäi lµ quy ®Þnh cña chÝnh phñ. Mét c¸ch ®¸ng tiÕc, trong sù cè g¾ng ®Ó lµm cho c¸c quy ®Þnh chÝnh x¸c, chÝnh phñ ®· lµm cho c¸c v¨n b¶n hÇu hÕt rÊt khã ®äc. NÕu b¹n ®· tõng ®äc quyÓn híng dÉn kÌm theo víi biÓu thuÕ cña b¹n, th× b¹n sÏ thÊy ®îc tiÕng Anh chÝnh x¸c sÏ nh thÕ nµo. ThËm chÝ, ngay c¶ víi nh÷ng phô tõ kh«ng cÇn thiÕt mµ chÝnh phñ thªm vµo th× c¸c vÊn ®Ò cã thÓ x¶y ra. Mét vµi n¨m tríc ®©y, California th«ng qua ®iÒu luËt yªu cÇu tÊt c¶ nh÷ng ngêi ®i xe m¸y ph¶i ®eo mò b¶o hiÓm. Ngay sau ®ã ®iÒu luËt nµy cã hiÖu lùc, mét c¶nh s¸t dõng mét ngêi kh«ng ®eo mò b¶o hiÓm l¹i, ngêi ®µn «ng ®Ò nghÞ c¶nh s¸t xem kü h¬n ®iÒu luËt. §iÒu luËt cã hai ®iÓm: 1) Ngêi ®i xe m¸y ph¶i cã mò b¶o hiÓm ®îc x¸c nhËn lµ chèng ®îc va ch¹m vµ 2) Nã ph¶i ®îc thÝt mét c¸ch ch¾c ch¾n. Ngêi c¶nh s¸t kh«ng thÓ ph¹t anh ta khi mµ anh ta cã mang mò vµ thÝt ch¾c ch¾n vµo ®Çu gèi.
  7. V× nh÷ng vÊn ®Ò h¹n chÕ ®ã cña tiÕng Anh, nªn nã kh«ng thÓ trë thµnh mét ng«n ng÷ m¸y tÝnh ®îc. VËy b©y giê chóng ta sÏ trao ®æi th«ng tin víi m¸y tÝnh nh thÕ nµo? C¸c m¸y tÝnh ®Çu tiªn trÞ gi¸ hµng triÖu dollar, trong khi cïng thêi gian ®ã th× l¬ng cña mét ngêi lËp tr×nh thµnh th¹o (good) lµ 15,000 dollar mét n¨m. C¸c nhµ lËp tr×nh b¾t buéc ph¶i viÕt ch¬ng tr×nh b»ng mét ng«n ng÷ mµ tÊt c¶ c¸c lÖnh ®îc chuyÓn thµnh chuçi c¸c con sè, gäi lµ ng«n ng÷ m¸y. Ng«n ng÷ nµy cã thÓ ®a trùc tiÕp vµo trong m¸y tÝnh. Mét kiÓu ch¬ng tr×nh ng«n ng÷ m¸y cã d¹ng nh sau: 1010 1111 0011 0111 0111 0110 … vµ tiÕp tôc nh vËy cho hµng tr¨m lÖnh. Trong khi m¸y “nghÜ” víi c¸c con sè mµ con ngêi kh«ng thÓ. §Ó lËp tr×nh víi c¸c m¸y tÝnh cæ nµy, c¸c kü s phÇn mÒm ®· ph¶i viÕt ra nh÷ng ch¬ng tr×nh cña hä, sö dông mét ng«n ng÷ ®¬n gi¶n, mét ng«n ng÷ mµ mçi tõ sÏ ®Æc trng (stand for) cho mét lÖnh ®¬n. Nã ®îc gäi lµ ng«n ng÷ assembly, bëi v× nh÷ng ngêi lËp tr×nh ph¶i dÞch b»ng tay, hoÆc tæ hîp (assemble) mçi dßng ra m· m¸y. Mét kiÓu ch¬ng tr×nh ng«n ng÷ assembly cã thÓ gièng nh sau: Program Translation MOV A,47 1010 1111 ADD A,B 0011 0111 HALT 0111 0110 … vµ tiÕp tôc nh vËy cho hµng tr¨n lÖnh. Qu¸ tr×nh nµy ®îc minh ho¹ b»ng h×nh 2.1. Assembl Assembly Machine y (translation) Language language Program MOV A,47 1010 1111 MOV A,47 1010 1111 ADD A,B 0011 0111 ADD A,B 0011 0111 HALT 0111 0110 HALT 0111 0110 … … H×nh 2-1.
  8. Qu¸ tr×nh dÞch lµ mét nhiÖm vô buån tÎ vµ ch¸n ng¾t, nã ®ßi hái ph¶i kiªn tr×. Mét kü s phÇn mÒm ®· xÐt thÊy ®©y lµ c«ng viÖc hoµn chØnh cho mét m¸y tÝnh, v× vËy anh ta viÕt mét ch¬ng tr×nh thùc hiÖn c«ng viÖc nµy mét c¸ch tù ®éng, nã ®îc gäi lµ assambler. Anh ta tr×nh bµy s¸ng t¹o míi nµy lªn «ng chñ vµ ngay lËp tøc bÞ ca cÈm “Anh d¸m nghÜ ngay c¶ viÖc sö dông mét chiÕc m¸y ®¾t nh vËy cho mét nhiÖm vô thuéc v¨n phßng?” §a ra trÞ gi¸ thêi gian mét tiÕng cña m¸y tÝnh ®Ó ®æi l¹i trÞ gi¸ thêi gian mét tiÕng cña ngêi lËp tr×nh, ®iÒu nµy kh«ng ph¶i lµ mét quan ®iÓm kh«ng cã lý. May thay, thêi gian qua ®i th× gi¸ trÞ cña ngêi lËp tr×nh ®îc t¨ng lªn vµ gi¸ trÞ cña m¸y tÝnh gi¶m ®i. V× vËy nã sÏ mang l¹i hiÖu qu¶ h¬n khi c¸c nhµ lËp tr×nh viÕt c¸c ch¬ng tr×nh b»ng ng«n ng÷ assembly vµ sö dông mét ch¬ng tr×nh gäi lµ assembler ®Ó dÞch ch¬ng tr×nh ®ã ra ng«n ng÷ m¸y. Ng«n ng÷ assembly tæ chøc ch¬ng tr×nh theo mét c¸ch mµ c¸c ngêi lËp tr×nh dÔ hiÓu h¬n. Tuy nhiªn, m¸y sÏ khã kh¨n h¬n khi sö dông ch- ¬ng tr×nh nµy. Ch¬ng tr×nh ph¶i ®îc dÞch tríc khi m¸y cã thÓ thùc hiÖn chóng. §©y lµ sù khëi ®Çu cho mét xu híng. C¸c ng«n ng÷ lËp tr×nh ngµy cµng trë lªn thuËn tiÖn h¬n cho nh÷ng ngêi lËp tr×nh sö dông vµ nã còng b¾t ®Çu yªu cÇu ngµy cµng nhiÒu thêi gian cña m¸y tÝnh ®Ó dÞch chóng ra d¹ng mµ c¸c m¸y tÝnh cã thÓ sö dông. Qua hµng n¨m c¸c ng«n ng÷ bËc cao ®· ®îc ph¸t minh ra. Nh÷ng ng«n ng÷ nµy cè g¾ng ®Ó cho nh÷ng ngêi lËp tr×nh viÕt ra nh÷ng ch- ¬ng tr×nh mµ hä dÔ dµng hiÓu ®îc vµ nã còng ®ñ râ rµng vµ ®¬n gi¶n ®Ó c¸c m¸y tÝnh cã thÓ hiÓu. C¸c ng«n ng÷ bËc cao ban ®Çu ®îc thiÕt kÕ ®Ó xö lý (handle) c¸c kiÓu ®Æc trng cña c¸c øng dông. FORTRAN ®îc thiÕt kÕ dïng cho kü thuËt, COBOL, ®Ó viÕt c¸c b¸o c¸o th¬ng m¹i, vµ PASCAL dïng cho sinh viªn. (Sè lín trong nh÷ng ng«n ng÷ nµy ph¸t triÓn lín h¬n lµ khi nã ®îc sö dông ban ®Çu. Nh cã ®ån ®¹i r»ng Nicklaus Wirth ®· nãi, “NÕu t«i biÕt r»ng PASCAL trë lªn thµnh c«ng nh vËy, th× t«i ®· cÈn thËn h¬n khi thiÕt kÕ chóng.”) Sau ®ã, Brian Kemighan vµ Dennis Ritchie ph¸t triÓn ng«n ng÷ C vµ Bjarne Stroustrup chuyÓn nã thµnh C++. C¸c ch¬ng tr×nh tõ kh¸i niÖm ®Õn thùc hiÖn C¸c ch¬ng tr×nh C++ ®îc viÕt b»ng ng«n ng÷ bËc cao sö dông c¸c ch÷ c¸i, c¸c ch÷ sè, vµ c¸c biÓu tîng kh¸c mµ b¹n thÊy trªn bµn phÝm. Trªn thùc tÕ m¸y tÝnh thùc hiÖn mét ng«n ng÷ bËc rÊt thÊp gäi lµ macbine code (mét chuçi c¸c con sè). V× vËy, tríc khi mét ch¬ng tr×nh cã thÓ ®îc sö dông, nã ph¶i qua mét vµi sù biÕn ®æi. C¸c ch¬ng tr×nh ®îc xuÊt ph¸t nh lµ mét ý tëng trong ®Çu cña nhµ lËp tr×nh. Anh ta viÕt nh÷ng ý tëng cña m×nh b»ng mét tr×nh so¹n th¶o (text editor) trong mét file gäi lµ file nguån (sourcefile) hoÆc m· nguån (source code). File nµy ®îc biÕn ®æi b»ng mét tr×nh biªn dÞch
  9. (compiler) ra mét file ®èi tîng (objectfile). TiÕp theo mét ch¬ng tr×nh gäi lµ tr×nh liªn kÕt (linker) ®a c¸c file ®èi tîng nµy, kÕt hîp nã víi c¸c thñ tôc ®îc ®Þnh nghÜa tríc tõ th viÖn tiªu chuÈn (standard library), vµ t¹o mét ch¬ng tr×nh cã thÓ thùc hiÖn ®îc (mét bé c¸c lÖnh cña ng«n ng÷ m¸y). Trong c¸c phÇn tiÕp theo, b¹n sÏ thÊy ®îc nh÷ng d¹ng kh¸c nhau lµm viÖc víi nhau ®Ó t¹o mét ch¬ng tr×nh cuèi cïng. H×nh 2-2 ®a ra nh÷ng bíc mµ b¾t buéc ph¶i thùc hiÖn ®Ó chuyÓn ®æi mét ch¬ng tr×nh viÕt b»ng ng«n ng÷ bËc cao ra mét ch¬ng tr×nh mµ cã thÓ thùc hiÖn ®îc. M· bËc cao Tr× biªn nh dÞch Ch­¬ tr× ng nh ng«n ng÷ assembly Assembler Th­ viÖn M· ® t­îng èi Tr× liªn nh kÕt Ch­¬ tr× cã ng nh kh¶ n¨ng thùc hiÖn H×nh 2-2. Sù chuyÓn ®æi cña mét ng«n ng÷ bËc cao ra ch¬ng tr×nh Wrappers RÊt may m¾n lµ b¹n kh«ng ph¶i ch¹y b¶n th©n ch¬ng tr×nh biªn dÞch, assembler, tr×nh liªn kÕt. HÇu hÕt c¸c tr×nh biªn dÞch C++ dïng
  10. c¸c ch¬ng tr×nh “wrapper”, ch¬ng tr×nh mµ x¸c ®Þnh nh÷ng c«ng cô nµo cÇn thiÕt ®Ó ch¹y nèi tiÕp nhau. Mét sè hÖ thèng lËp tr×nh thËm chÝ cßn ®i xa h¬n vµ cung cÊp cho nh÷ng ngêi lËp tr×nh mét m«i trêng ph¸t triÓn khÐp kÝn (IDE- integrated development environment). IDE bao gåm mét tr×nh so¹n th¶o, tr×nh biªn dÞch, tr×nh liªn kÕt qu¶n lý project, tr×nh gì rèi and more in one convenient package. C¶ Borland vµ Microsoft cïng cung cÊp c¸c IDE víi c¸c tr×nh biªn dÞch cña hä. T¹o mét ch¬ng tr×nh thùc sù Tríc khi b¹n thùc sù b¾t ®Çu t¹o c¸c ch¬ng tr×nh cña m×nh, b¹n cÇn thiÕt ph¶i biÕt c¸c c«ng cô lËp tr×nh c¬ b¶n. PhÇn nµy sÏ gióp b¹n tõng bíc thùc hiÖn gâ vµo, biªn dÞch, vµ ch¹y mét ch¬ng tr×nh ®¬n gi¶n. Nã tr×nh bµy c¸ch sö dông hai kiÓu tr×nh biªn dÞch kh¸c nhau. KiÓu thø nhÊt lµ ®éc lËp (standalone) hoÆc tr×nh biªn dÞch gâ dßng lÖnh (command-line compiler). KiÓu tr×nh biªn dÞch nµy ®îc khÐp kÝn trong mét chÕ ®é xö lý theo l« (batch mode) tõ dßng lÖnh. Nãi mét c¸ch kh¸c, b¹n gâ mét lÖnh vµ tr×nh biªn dÞch chuyÓn tõ m· nguån cña b¹n thµnh mét ch¬ng tr×nh cã thÓ thùc hiÖn ®îc. Mét kiÓu tr×nh biªn dÞch kh¸c ®- îc chøa trong mét IDE. HÇu hÕt c¸c hÖ thèng UNIX dïng c¸c tr×nh biªn dÞch gâ dßng lÖnh. Mét vµi tr×nh biªn dÞch kiÓu IDE s½n cã cho UNIX, nhng nã rÊt Ýt. MÆt kh¸c, hÇu hÕt c¸c tr×nh biªn dÞch sö dông víi MS-Dos vµ Windows chøa mét m«i trêng ph¸t triÓn khÐp kÝn. For command-line die-hards, these compilers do contain command-line compilers as well. T¹o mét ch¬ng tr×nh dïng mét tr×nh biªn dÞch dßng lÖnh Trong phÇn nµy b¹n sÏ xem xÐt kü tõng bíc mét qu¸ tr×nh cÇn thiÕt ®Ó t¹o mét ch¬ng tr×nh dïng mét tr×nh biªn dÞch dßng lÖnh. ChØ dÉn ®îc ®a ra cho sö dông mét mét tr×nh biªn dÞch UNIX chung, tr×nh biªn dÞch Free Software Foundation's g++, Turbo-C++, Borland C++, vµ Microsoft Visual C++. Tuy nhiªn, nÕu b¹n ®ang sö dông mét ch¬ng tr×nh dÞch Borland hoÆc Microsoft b¹n cã thÓ muèn nh¶y ®Õn ®o¹n dïng IDE However, if you are using a Borland or Microsoft compiler, you might want to skip ahead to the section on using the IDE. Bíc 1: Nã rÊt dÔ dµng qu¶n lý nÕu b¹n t¹o mét th môc riªng cho mçi ch¬ng tr×nh mµ b¹n ®ang lµm viÖc. Trong trêng hîp nµy b¹n sÏ t¹o mét th môc hello ®Ó chøa ch¬ng tr×nh hello cña b¹n. Trong UNIX:
  11. % mkdir hello % cd hello Trong MS-DOS: C: MKDIR HELLO C: CD HELLO Bíc 2: t¹o ch¬ng tr×nh Mét ch¬ng tr×nh khëi ®Çu nh mét file v¨n b¶n. VÝ dô 2-1 lµ ch¬ng tr×nh hello d¹ng nguån #include int main() { cout
  12. information on how to get their software.) Among their offerings is a C++ compiler called g++. §Ó dÞch mét ch¬ng tr×nh dïng tr×nh biªn dÞch g++, dïng dßng lÖnh sau: % g++ -g -Wall -ohello hello.cc Thªm vµo thay ®æi -Wall bËt lªn tÊt c¶ c¸c c¶nh b¸o. Borland's Turbo C++ in MS-DOS H·ng quèc tÕ Borland t¹o mét tr×nh biªn dÞch low-cost MA-DOS C+ + gäi lµ Turbo-C++. Tr×nh biªn dÞch nµy rÊt lý tëng ®Ó häc. Dßng lÖnh cho Turbo-C++ lµ: C:> tcc -ml -v -N -P -w -ehello hello.cpp Th«ng sè –ml yªu cÇu Turbo-C++ ®Ó dïng m« h×nh bé nhí réng. (M¸y PC nµy cã rÊt nhiÒu m« h×nh bé nhí kh¸c nhau cã thÓ ®îc dïng khi t¹o c¸c ch¬ng tr×nh. Cuèn s¸ch nµy sÏ kh«ng nãi vÒ nh÷ng bé nhí nµy. Thay v× thÕ, chóng ta cã quan ®iÓm, “Sö dông m« h×nh bé nhí réng vµ kh«ng ph¶i lo nghÜ g× cho ®Õn khi b¹n trë thµnh chuyªn gia lËp tr×nh.”) Thay ®æi –v nãi víi Turbo-C ®a th«ng tin gì rèi vµo ch¬ng tr×nh. C¶nh b¸o ®îc bËt lªn víi –w, kiÓm tra ng¨n xÕp b»ng –N. Trªn thùc tÕ tr×nh biªn dÞch sÏ dÞch c¶ C vµ C++.. We force a C++ compile using the -P switch. Cuèi cïng, -ehello nãi víi Turbo-C++ ®Ó t¹o mét ch¬ng tr×nh cã tªn lµ hello, vµ hello.ccp lµ tªn cña file nguån. Xem sæ tay tham kh¶o Turbo-C++ ®Ó cã danh s¸ch hoµn chØnh c¸c lùa chän. Borland C++ in MS-DOS and Window Cïng víi Turbo-C++, h·ng quèc tÕ Borland còng t¹o mét tr×nh biªn dÞch chuyªn gia hoµn h¶o cho MS-DOS/Windows gäi lµ Borland C++. Dßng lÖnh cña nã lµ: C:> bcc -ml -v -N -P -w -ehello hello.cpp C¸c lùa chän dßng lÖnh trong Turbo-C++ vµ Borland C++ lµ gièng nhau. Microsoft Visual C++ Microsoft Visual C++ lµ mét tr×nh biªn dÞch kh¸c cho MS- DOS/Windows. Nã kh«ng m¹nh vµ hoµn h¶o nh lµ b¶n t¬ng øng Borland cña nã. Nhng nã sÏ dÞch hÇu hÕt c¸c ch¬ng tr×nh trong cuèn s¸ch nµy (Version 1.5 fails to handle templates and exceptions.) . §Ó dÞch, dïng dßng lÖnh sau: C:> cl /AL /Zi /Wl hello.cpp Chän /AL yªu cÇu m¸y tÝnh dïng m« h×nh bé nhí réng. Gì rèi ®îc bËt lªn víi lùa chän /Zi vµ c¶nh b¸o víi lùa chän /W1. Bíc 4: thùc hiÖn ch¬ng tr×nh B©y giê, khi b¹n ch¹y ch¬ng tr×nh, vÝ dô nh: hello
  13. T¹i dÊu nh¾c cña UNIX hoÆc MS-DOS, dßng th«ng b¸o sau xuÊt hiÖn trªn mµn h×nh: Hello World T¹o mét ch¬ng tr×nh dïng mét m«i trêng tæ hîp khÐp kÝn C¸c méi trêng tæ hîp khÐp kÝn provide a one-stop shop when it comes to programming. Chóng cung cÊp mét tr×nh biªn dÞch, tr×nh so¹n th¶o, tr×nh gì rèi vµ kÕt hîp chóng trong mét khèi ng¨n l¾p cho nhµ lËp tr×nh. Since development environments tend to change, the particular version you use may require slightly different keystrokes. Bíc 1: Nã rÊt dÔ dµng qu¶n lý nÕu b¹n t¹o mét th môc riªng cho mçi ch¬ng tr×nh mµ b¹n ®ang lµm viÖc. Trong trêng hîp nµy b¹n sÏ t¹o mét th môc HELLO ®Ó chøa ch¬ng tr×nh hello cña b¹n. Trong MS-DOS C: MKDIR HELLO C: CD HELLO Bíc 2: gâ, dÞch vµ ch¹y ch¬ng tr×nh cña b¹n Mçi IDE kh¸c nhau mét chót, v× vËy chóng ta xÐt ®Õn c¸c lÖnh riªng biÖt cho mçi lo¹i: Turbo-C++ 1. khëi ®éng Turbo-C IDE víi dßng lÖnh: C: TC 2. Dïng c¸c lÖnh Options/Compiler/Code Generation ®Ó lÊy ra hép héi tho¹i Code Generation, nh trªn h×nh 2-3. §æi m« h×nh nhí (model memory) vÒ d¹ng réng. 3. Dïng c¸c lÖnh Option/Compiler Entry/Exit ®Ó bËt kiÓm tra ng¨n xÕp, nh trong h×nh 2-4.
  14. H×nh 2-3. Hép héi tho¹i Code Generation H×nh 2-4. Hép héi tho¹i Entry/Exit Code Generation 4. Sö dông lÖnh Option/Compiler/Messages/Display ®Ó hiÖn ra hép héi tho¹i Compiler Messages nh ë h×nh 2-5. Chän All ®Ó hiÖn lªn tÊt c¶ c¸c c¶nh b¸o. 5. Sö dông lÖnh Option/Save ®Ó nghi tÊt c¶ c¸c lùa chän b¹n ®· dïng. H×nh 2-5. Hép héi tho¹i Conpiler Messages
  15. 6. Dïng hép héi tho¹i Open Project File ®Ó chän mét file project. Trong trêng hîp nµy, file project cña b¹n cã tªn lµ HELLO.PRJ. Mµn h×nh nªn cã d¹ng gièng nh h×nh 2-6 khi b¹n kÕt thóc. H×nh 2-6. Hép héi tho¹i Open Project File 7. NhÊn phÝm Insert ®Ó céng mét file vµo project. File mµ b¹n muèn céng lµ HELLO.CCP nh trªn h×nh 2-7. H×nh 2-7. Hép héi tho¹i Add to Project List 8. NhÊn ESC ®Ó tho¸t ra kho¶i vßng “céng file”. 9. NhÊn phÝm mòi lªn ®Ó nhÈy qua mét dßng. Dßng víi hello.cpp b©y giê ®îc s¸ng lªn nh h×nh 2-8.
  16. H×nh 2-8. "Hello" project 10. NhÊn Return ®Ó so¹n th¶o file nµy. 11. Gâ vµo nh÷ng m· sau: # include int main() { cout
  17. 13. Sau khi ch¬n tr×nh ch¹y, ®iÒu khiÓn quay vÒ IDE. §iÒu nµy cã nghÜa lµ b¹n kh«ng thÓ xem kÕt qu¶ ch¬ng tr×nh cña m×nh. §Ó xem nã b¹n ph¶i chuyÓn vÒ mµn h×nh ngêi sö dông b»ng c¸ch sö dông lÖnh Windows/User. NhÊn mét phÝm bÊt kú nã sÏ tr¶ b¹n vÒ mµn h×nh IDE. H×nh 2-10 hiÓn thÞ kÕt qu¶ ®a ra cña ch¬ng tr×nh. 14. Khi kÕt thóc, b¹n cã thÓ ghi ch¬ng tr×nh cña m×nh víi lÖnh File/Save. 15. §Ó tho¸t khái IDE, dïng lÖnh File/Quit. H×nh 2-10. User screen Borland C++ 1. T¹o mét th môc HELLO ®Ó chøa c¸c file cho ch¬ng tr×nh hello cña chóng ta. B¹n cã thÓ t¹o th môc b»ng c¸ch sö dông ch¬ng tr×nh qu¶n lý file cña Windows hoÆc gâ dßng lÖnh sau t¹i dÊu nh¾c cña MS-DOS: mkdir\HELLO 2. Tõ Windows, nh¸y kÐp vµo biÓu tîng Borland C++ ®Ó khëi ®éng IDE. Ch¬ng tr×nh b¾t ®Çu ®îc thùc hiÖn vµ hiÓn thÞ mét kh«ng gian lµm viÖc trèng nh trong h×nh 2-11. 3. Chon môc Project/New Project ®Ó t¹o mét project cho ch¬ng tr×nh cña chóng ta. §iÒn vµo « trèng "Project Pathand Name:" víi c:\hello\hello.ide. … 4. NhÊn nót Advanced ®Ó hiÓn thÞ héi tho¹i Advanced Options. Xo¸ c¸c môc .rc vµ .def nh hiÓn thÞ trong h×nh 2-13. 5. NhÊn nót OK ®Ó quay vÒ héi tho¹i New Target. 6. NhÊn Alt-F10 ®Ó hiÓn thÞ menu phô nh trong h×nh 2-14.
  18. 7. Chän Edit Node Attributes ®Ó hiÓn thÞ héi tho¹i nh trong h×nh 2- 15. Trong « trèng Style Sheet, chän môc "Debug Info and Diagnostics." NhÊn OK ®Ó trë l¹i cöa sæ chÝnh. H×nh 2-11. Mµn h×nh chÝnh cña Borland C++ H×nh 2-12. Hép héi tho¹i New Target
  19. H×nh 2-13. Hép héi tho¹i Advenced Options H×nh 2-14. Menu phô Target Options
  20. H×nh 2-15. Hép héi tho¹i Node Attributes 8. Vµo phÇn héi tho¹i Project Optiãn b»ng c¸ch chän môc Options/Project Options. NhÈy xuèng môc Compiler vµ nhÊn lªn dÊu "+" ®Ó më réng c¸c môc chän. Quay vÒ phÇn chän kiÓm tra trµn « nhí nh trong h×nh 2-16. NhÊn OK ®Ó ghi c¸c lùa chän nµy. 9. Chän OK ®Ó quay vÒ cöa sæ chÝnh. NhÊn phÝm mòi tªn xuèng ®Ó chän môc hello[.cpp] trong project (xem trong h×nh 2-17). 10. NhÊn Return ®Ó b¾t ®Çu so¹n th¶o file hello.cpp. Gâ c¸c m· díi ®©y: # include int main() { cout
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2