Đăng ký Đăng nhập
Trang chủ Giáo án - Bài giảng Giáo án điện tử Lập trình bằng turbo pascal...

Tài liệu Lập trình bằng turbo pascal

.PDF
274
29
94

Mô tả:

LËp tr×nh b»ng Turbo Pascal L¬I NOI ®ÇU Lμ mét ng«n ng÷ lËp tr×nh cã có ph¸p chÆt chÏ, ®¬n gi¶n vμ dÔ hiÓu, Pascal ®−îc gi¶ng d¹y cho sinh viªn tin häc ngay n¨m häc ®Çu tiªn. Nã lμ ng«n ng÷ c¬ së ®Ó giíi thiÖu cho sinh viªn lμm quen víi kÜ thuËt x©y dùng ch−¬ng tr×nh. Ngoμi ra, nã cßn ®−îc dïng ®Ó tr×nh bμy nhiÒu chuyªn ®Ò kh¸c n÷a cña tin häc trong nh÷ng n¨m häc tiÕp theo. N¾m v÷ng c¸c thμnh phÇn c¬ b¶n, hiÓu râ c¸c yÕu tè có ph¸p cña ng«n ng÷ lËp tr×nh Pascal, lμ rÊt quan träng. Nh−ng vËn dông nã ®Ó x©y dùng ®−îc c¸c ch−¬ng tr×nh míi lμ ®iÒu quan träng nhÊt. Qua kinh nghiÖm nhiÒu lÇn gi¶ng d¹y ng«n ng÷ Pascal cho c¸c ®èi t−îng sinh viªn kh¸c nhau, cã thÓ nhËn thÊy r»ng sinh viªn lóng tóng nhÊt ë kh©u vËn dông x©y dùng ch−¬ng tr×nh cô thÓ, kh«ng biÕt lμm thÕ nμo, b¾t ®Çu tõ ®©u. Gi¸o tr×nh nμy ®Æt träng t©m vμo tr×nh bμy kÜ thuËt x©y dùng ch−¬ng tr×nh song song víi viÖc giíi thiÖu ng«n ng÷ lËp tr×nh Pascal. C¸c vÝ dô øng dông tæng hîp ë cuèi ch−¬ng ®−îc chän läc ®Ó minh ho¹ nh÷ng vÊn ®Ò lÝ thuyÕt tr×nh bμy trong ch−¬ng ®ã. Nh÷ng vÝ dô øng dông nμy cã liªn quan chÆt chÏ víi nhau, ®−îc ph¸t triÓn hoμn thiÖn dÇn mét c¸ch cã hÖ thèng ®Ó sinh viªn hiÓu râ c¸c b−íc x©y dùng ch−¬ng tr×nh, tõ th« s¬, ®¬n gi¶n ®Õn hoμn thiÖn, hiÖu qña h¬n. V× ®©y lμ hÖ thèng l¹i c¸c bμi gi¶ng lÇn ®Çu tiªn nªn ch¾c ch¾n cßn nhiÒu thiÕu sãt. RÊt mong sù ®ãng gãp ý kiÕn cña c¸c thÇy, c« ®ång nghiÖp còng nh− cña c¸c b¹n sinh viªn lμ ®èi t−îng phôc vô cña gi¸o tr×nh nμy. T¸c gi¶ NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi i LËp tr×nh b»ng Turbo Pascal N¤I DUNG L¬I NOI ®ÇU i Ch−¬ng 1 - Giíi thiÖu chung 1 1. C¸c kh¸i niÖm c¬ b¶n 1.1 Më ®Çu. 1.2 C¸c kÝ tù. 1.3 C¸c tõ kho¸. 1.4 Tªn - Identifier 1.5 Tªn chuÈn 1.6 C©u lÖnh 2. Ph¸t triÓn mét ch−¬ng tr×nh Pascal 2.1 CÊu tróc mét ch−¬ng tr×nh Turbo Pascal. 2.2 C¸c b−íc x©y dùng ch−¬ng tr×nh. 3. M«i tr−êng ph¸t triÓn tÝch hîp Turbo Pascal. 3.1 C¸c c«ng cô ph¸t triÓn. 3.2 C¸c chøc n¨ng vμ c¸ch dïng. 3.3 C¸c b−íc x©y dùng mét ch−¬ng tr×nh trong m«i tr−êng Turbo Pascal 1 1 2 3 3 4 4 5 5 6 7 7 8 11 C©u hái vμ bμI tËp 12 Ch−¬ng 2 - C¸c kiÓu d÷ liÖu chuÈn, c¸c hμm chuÈn 14 1. C¸c kiÓu d÷ liÖu chuÈn. 1.1 Kh¸i niÖm kiÓu d÷ liÖu 1.2 Ph©n lo¹i c¸c kiÓu d÷ liÖu trong TurboPascal. 1.3 C¸c kiÓu ®¬n gi¶n chuÈn 2. C¸c hμm chuÈn. 2.1 B¶ng c¸c hμm chuÈn. 2.2 Sö dông. 14 14 14 16 18 19 20 C©u hái vμ bμi tËp 20 Ch−¬ng 3 - C¸c khai b¸o vμ c©u lÖnh ®¬n gi¶n 21 1. Khai b¸o h»ng vμ biÕn 1.1 Khai b¸o h»ng 1.2 Khai b¸o biÕn 2. BiÓu thøc trong ng«n ng÷ Pascal. 2.1 Biªñ thøc lμ g×. 2.2 B¶ng thø tù −u tiªn 2.3 ViÕt ®óng biÓu thøc 3. C¸c c©u lÖnh ®¬n gi¶n 3.1 LÖnh g¸n 3.2 LÖnh in ra mμn h×nh kh«ng kÌm ®Þnh d¹ng. 3.3 Quy c¸ch mÆc ®Þnh in ra c¸c kiÓu d÷ liÖu. 3.4 LÖnh in ra cã kÌm quy c¸ch 21 21 22 23 23 24 25 25 26 26 27 28 NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi ii LËp tr×nh b»ng Turbo Pascal 3.5 LÖnh in ra m¸y in 3.6 LÖnh nhËp d÷ liÖu tõ bμn phÝm. 4. Mét sè hμm, thñ tôc tr×nh bμy mμn h×nh. 29 30 32 C©u hái vμ bμi tËp 32 Ch−¬ng 4- C¸c cÊu tróc ®iÒu khiÓn 35 1. C©u lÖnh ghÐp 2. C©u lÖnh IF. 2.1 Có ph¸p vμ c«ng dông. 2.2 C¸c vÝ dô minh ho¹. 2.3 If lång nhau hay d·y if 2.4 AND hay IF lång nhau 3. C©u lÖnh CASE. 3.1 Có ph¸p vμ t¸c dông. 3.2 VÝ dô minh ho¹ 3.3 Chó ý 3.4 C¸c lçi th−êng gÆp. 4. C©u lÖnh FOR. 4.1 Có ph¸p vμ t¸c dông 4.2 VÝ dô minh ho¹ 5. C©u lÖnh Repeat. 5.1 Có ph¸p vμ t¸c dông 5.2 VÝ dô minh ho¹ 6. C©u lÖnh While. 6.1 Có ph¸p vμ c«ng dông. 6.2 VÝ dô minh ho¹ 7. X©y dùng cÊu tróc lÆp. 7.1 §iÒu khiÓn vßng lÆp b»ng gi¸ trÞ canh chõng. 7.2 §iÒu khiÓn vßng lÆp b»ng cê b¸o 8. C¸c lÖnh kÕt thóc sím vßng lÆp hoÆc ch−¬ng tr×nh. 8.1 LÖnh nh¶y kh«ng ®iÒu kiÖn - goto 8.2 LÖnh chÊm døt sím vßng lÆp. 8.3 LÖnh tho¸t khái ch−¬ng tr×nh con. 8.4 LÖnh dõng ch−¬ng tr×nh bÊt th−êng. 35 35 36 37 38 39 40 40 41 42 42 43 43 44 45 45 46 48 48 49 50 50 51 51 51 52 53 53 C©u hái vμ bμi tËp 53 Ch−¬ng 5 - §Þnh nghÜa C¸c kiÓu d÷ liÖu ®¬n gi¶n 56 1. Khai b¸o kiÓu d÷ liÖu míi. 1.1 Có ph¸p chung. 1.2 VÝ dô 2. KiÓu liÖt kª. 2.1 §Þnh nghÜa vμ có ph¸p 2.2 TÝnh chÊt vμ c¸c phÐp to¸n. 2.3 VÝ dô minh ho¹ 3. KiÓu ®o¹n con. 3.1 §Þnh nghÜa vμ có ph¸p. 3.2 VÝ dô minh ho¹. 4. KiÓu tËp hîp. 56 56 56 57 57 58 60 60 60 62 62 NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi iii LËp tr×nh b»ng Turbo Pascal 4.1 §Þnh nghÜa vμ có ph¸p. 4.2 C¸c phÐp to¸n trªn tËp hîp 4.3 VÝ dô minh ho¹ 62 63 64 Ch−¬ng 6 - KiÓu m¶ng 66 1. M¶ng mét chiÒu 1.1 §Þnh nghÜa vμ có ph¸p. 1.2 C¸c tÝnh chÊt. 1.3 T¹i sao nªn khai b¸o kiÓu. 1.4 VÝ dô minh ho¹. 2. M¶ng nhiÒu chiÒu. 2.1 §Þnh nghÜa có ph¸p vμ cÊu tróc 2.2 VÝ dô minh ho¹. 3. T×m kiÕm trªn m¶ng. 3.1 T×m kiÕm tuÇn tù. 3.2 T×m kiÕm nhÞ ph©n. 4. Mét vμi c¸ch s¾p xÕp m¶ng. 4.1 Ph−¬ng ph¸p ®æi chç trùc tiÕp. 4.2 Ph−¬ng ph¸p chÌn trùc tiÕp. 4.3 Ph−¬ng ph¸p chän trùc tiÕp. 66 66 67 68 68 69 69 70 71 71 72 73 73 75 77 C©u hái vμ bμi tËp 79 Ch−¬ng 7 - KiÓu x©u kÝ tù 81 1. Có ph¸p vμ cÊu tróc. 1.1 Có ph¸p. 1.2 CÊu tróc kiÓu x©u kÝ tù - Truy cËp trùc tiÕp tõng thμnh phÇn. 2. Thao t¸c víi x©u kÝ tù 2.1 C¸c phÐp to¸n. 2.2 C¸c thñ tôc vμ hμm trªn x©u kÝ tù. 81 81 82 84 84 84 C©u hái vμ bμi tËp 86 Ch−¬ng 8 - KiÓu b¶n ghi 88 1. §Þnh nghÜa vμ khai b¸o 1.1 §Þnh nghÜa. 1.2 Khai b¸o kiÓu b¶n ghi. 2. Sö dông. 2.1 Truy cËp tõng thμnh phÇn. 2.2 C¸c phÐp to¸n víi toμn bé b¶n ghi. 2.3 §äc vμo, viÕt ra víi mét biÕn kiÓu b¶n ghi. 2.4 C©u lÖnh With. 3. B¶n ghi cã cÊu tróc thay ®æi 3.1 §Þnh nghÜa vμ có ph¸p 3.2 Sö dông b¶n ghi cã cÊu tróc thay ®æi. 88 88 88 90 90 90 91 92 93 93 94 Ch−¬ng 9 - KiÓu tÖp 98 1. C¸c kh¸i niÖm vμ ®Þnh nghÜa 1.1 Môc ®Ých sö dông tÖp. 1.2 TÖp ®Þnh kiÓu. 98 98 98 NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi iv LËp tr×nh b»ng Turbo Pascal 1.3 TÖp truy cËp tuÇn tù. 2. ViÕt ra tÖp, ®äc vμo tõ tÖp 2.1 Më tÖp ®Ó viÕt ra. 2.2 ViÕt d÷ liÖu ra tÖp. 2.3 Më tÖp ®Ó ®äc vμo. 2.4 §äc d÷ liÖu vμo tõ tÖp. 2.5 TÖp truy cËp trùc tiÕp. 3. C¸c thao t¸c kh¸c 3.1 Mét sè hμm vμ thñ tôc víi tÖp. 3.2 BÉy lçi khi më tÖp. 4. TÖp v¨n b¶n. 4.1 §Þnh nghÜa vμ cÊu tróc. 4.2 ViÕt ra tÖp v¨n b¶n 4.3 §äc vμo tõ mét tÖp v¨n b¶n. 4.4 C¸c hμm, thñ tôc chuÈn kh¸c cho tÖp v¨n b¶n 4.5 C¸c thiÕt bÞ vμo ra chuÈn 5. TÖp kh«ng ®Þnh kiÓu. 5.1 §Þnh nghÜa vμ cÊu tróc. 5.2 C¸c hμm, thñ tôc kh¸c. 99 100 100 101 102 102 103 104 104 105 107 107 108 108 109 111 112 112 112 C©u hái vμ bμi tËp 114 Ch−¬ng 10 - Ch−¬ng tr×nh con 115 1. Ch−¬ng tr×nh con - Hμm vμ thñ tôc 1.1 T¹i sao cÇn sö dông ch−¬ng tr×nh con. 1.2 Khai b¸o ch−¬ng tr×nh con. 1.3 X©y dùng ch−¬ng tr×nh con 1.4 Lêi gäi ch−¬ng tr×nh con. 1.5 VÝ dô minh ho¹. 2. Hμm hay thñ tôc, tham biÕn hay tham trÞ. 2.1 Ph©n biÖt hμm víi thñ tôc. 2.2 Ph©n biÖt tham biÕn vμ tham trÞ. 2.3 Mét vμi l−u ý khi x©y dùng ch−¬ng tr×nh con 2.4 Khai b¸o tr−íc - Forward. 3. Ch−¬ng tr×nh con lång nhau. 3.1 BiÕn toμn côc, biÕn côc bé, tÇm t¸c dông 3.2 Minh ho¹ 115 115 115 117 117 118 120 120 121 122 124 125 125 126 C©u hái vμ bμi tËp 128 Ch−ong 11 - ThiÕt kÕ ch−¬ng tr×nh 129 1. Ph−¬ng ph¸p x©y dùng ch−¬ng tr×nh 1.1 Kh¸i niÖm C«ng nghÖ phÇn mÒm. 1.2 Chu k× ph¸t triÓn phÇn mÒm. 1.3 VÝ dô minh ho¹ 1.4 LËp tr×nh m« ®un - Modula programming 1.5 Thñ tôc ho¸ - Procedural abstraction 2. ThiÕt kÕ chi tiÕt dÇn tõng b−íc. 2.1 S¬ ®å cÊu tróc ch−¬ng tr×nh - structure chart 2.2 VÝ dô. 129 129 129 130 131 133 133 133 134 NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi v LËp tr×nh b»ng Turbo Pascal 3. TÝnh ®Ö quy vμ thuËt gi¶i ®Ö quy. 3.1 TÝnh ®Ö quy 3.2 ThuËt gi¶i ®Ö quy. 3.3 ThiÕt kÕ gi¶i thuËt ®Ö quy. 4. Mét sè vÝ dô vÒ thuËt gi¶i ®Ö quy. 4.1 Bμi to¸n th¸p Hμ néi. 4.2 Bμi to¸n vÕt mùc. 4.3 T×m kiÕm nhÞ ph©n 4.4 S¾p xÕp kiÓu ph©n ®o¹n hay s¾p xÕp nhanh - Quick Sort. 5. Tù x©y dùng th− viÖn ch−¬ng tr×nh con - Units 5.1 Sö dông l¹i c¸c ch−¬ng tr×nh con 5.2 CÊu tróc cña mét unit. 5.3 Biªn dÞch vμ sö dông. 5.4 VÝ dô minh ho¹. 5.5 So s¸nh viÖc dïng Unit víi chÌn trùc tiÕp tÖp m· nguån 5.6 C¸c unit chuÈn cña Turbo Pascal 6. Giíi thiÖu Unit CRT. 6.1 C¸c biÕn 6.2 C¸c hμm, thñ tôc 6.3 Mμu s¾c vμ chÕ ®é mμn h×nh v¨n b¶n. 6.4 Xö lÝ gâ phÝm. 6.5 C¸c thñ tôc kh¸c 7. VÝ dô øng dông - Lμm b¶ng chän. 7.1 C¸c b−íc x©y dùng b¶ng chän. 7.2 Ph©n tÝch thiÕt kÕ chi tiÕt dÇn tõng b−íc. 7.3 Ch−¬ng tr×nh chi tiÕt. 7.4 ChuyÓn thμnh Unit b¶ng chän. 8. Mét ch−¬ng tr×nh øng dông. 8.1 Ph©n tÝch thiÕt kÕ 8.2 TriÓn khai chi tiÕt ch−¬ng tr×nh. 138 138 139 140 141 141 142 144 145 147 147 147 149 149 150 150 151 151 152 153 156 156 157 157 158 162 165 167 167 170 C©u hái vμ bμi tËp 174 Ch−¬ng 12 - Con trá vμ cÊu tróc d÷ liÖu ®éng 176 1. Con trá 1.1 BiÕn tÜnh vμ biÕn ®éng. 1.2 §Þnh nghÜa vμ khai b¸o. 1.3 C¸c phÐp to¸n ®èi víi con trá. 2. BiÕn ®éng. 2.1 CÊp ph¸t vïng nhí vμ truy cËp biÕn ®éng. 2.2 Gi¶i phãng biÕn ®éng, thu håi vïng nhí 3. Con trá kh«ng ®Þnh kiÓu - Pointer 3.1 §Þnh nghÜa 176 176 177 178 179 179 180 180 180 3.2 øng dông 4. Vïng ng¨n xÕp vμ vïng Heap. 4.1 Kh¸i niÖm 4.2 Gi¶i to¶ heap 4.3 VÝ dô minh ho¹ - m¶ng cì lín. 181 182 182 183 183 NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi vi LËp tr×nh b»ng Turbo Pascal C©u hái vμ bμi tËp 184 Ch−¬ng 13 s¸ch & danh s¸ch mãc nèi Danh 187 1. Danh s¸ch b»ng m¶ng. 1.1 M« h×nh danh s¸ch. 1.2 Danh s¸ch biÓu diÔn b»ng cÊu tróc m¶ng. 1.3 C¸c phÐp to¸n ®èi víi danh s¸ch m¶ng. 1.4 C¸c −u, nh−îc ®iÓm. 1.5 VÝ dô minh ho¹ 2. Danh s¸ch kiÓu ng¨n xÕp - Stack. 2.1 §Þnh nghÝa danh s¸ch kiÓu ng¨n xÕp. 2.2 BiÓu diÔn danh s¸ch kiÓu ng¨n xÕp. 2.3 C¸c phÐp to¸n ®èi víi kiÓu ng¨n xÕp. 3. Danh s¸ch kiÓu hμng ®îi - Queue. 3.1 §Þnh nghÜa danh s¸ch kiÓu hμng ®îi. 3.2 BiÓu diÔn danh s¸ch kiÓu hμng ®îi b»ng m¶ng. 3.2 C¸c phÐp to¸n. 4. Danh s¸ch nèi ®¬n. 4.1 M« t¶. 4.2 CÊu tróc mãc nèi. 4.3 C¸c phÐp to¸n. 5. Danh s¸ch nèi kÐp 5.1 CÊu tróc danh s¸ch nèi kÐp. 5.2 C¸c phÐp to¸n víi danh s¸ch nèi kÐp. 6. VÝ dô øng dông cña danh s¸ch mãc nèi. 6.1 C¶i tiÕn ch−¬ng tr×nh qu¶n lÝ hå s¬. 6.2 Ph©n tÝch thiÕt kÕ. 6.3 TriÓn khai chi tiÕt. 187 187 188 188 189 190 193 193 194 194 195 195 196 196 198 198 198 200 202 202 203 205 205 205 207 C©u hái vμ bμi tËp 213 Ch−¬ng 14 - Då ho¹ 215 1. C¸c kh¸i niÖm c¬ b¶n 1.1 Hai chÕ ®é hiÓn thÞ mμn h×nh 1.2 Khëi t¹o vμ ®ãng chÕ ®é ®å ho¹ 1.3 Mét ch−¬ng tr×nh ®å ho¹ ®¬n gi¶n 1.4 Mμu s¾c, kiÓu nÐt vÏ, kiÓu t« nÒn. 2. C¸c thñ tôc ®å ho¹ th−êng dïng. 2.1 Di chuyÓn, vÏ mét ®iÓm, mét ®o¹n th¼ng. 2.2 C¸c thñ tôc vÏ h×nh. 2.3 Tû lÖ biÓu kiÕn. 2.4 ViÕt ch÷ ra mμn h×nh ®å ho¹ 3. C¸c thñ tôc vÒ m«i tr−êng ®å ho¹ 3.1 C¸c thñ tôc thiÕt lËp mμu. 3.2 C¸c thñ tôc vÒ mÉu t«, mÉu nÐt vÏ 3.3 ViewPort. 4. VÏ ®å thÞ mét hμm sè 4.1 Ph©n tÝch thiÕt kÕ. 215 215 216 218 218 219 219 220 221 222 224 224 225 229 230 231 NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi vii LËp tr×nh b»ng Turbo Pascal 4.2 Ch−¬ng tr×nh chi tiÕt. 4.3 ChuyÓn thμnh ch−¬ng tr×nh con. 5. Lμm ho¹t h×nh. 5.1 Di chuyÓn h×nh vÏ trªn nÒn tr¬n 5.2 Di chuyÓn h×nh vÏ trªn nÒn h×nh ¶nh tÜnh. 5.3 Sö dông phÐp lËt trang mμn h×nh. 232 234 235 235 236 240 C©u hái vμ bμi tËp 242 Ch−¬ng 15 - Th©m nhËp hÖ thèng vμ HÖ ®iÒu hμnh DOS 244 1. Gäi thùc hiÖn c¸c chøc n¨ng ROM-BIOS vμ DOS. 1.1 C¸c thanh ghi cña 8086 vμ ®Þa chØ trong bé nhí 1.2 C¸c ng¾t - interrupt 1.3 Th©m nhËp trùc tiÕp qua thanh ghi vμ ng¾t 1.4 C¸c vÝ dô minh ho¹. 1.5 Sö dông c¸c hμm, thñ tôc cña unit DOS 2. §iÒu khiÓn chuét 2.1 To¹ ®é chuét 2.2 Ng¾t ®iÒu khiÓn chuét $33 2.3 VÝ dô minh ho¹. 2.4 Th− viÖn c¸c thñ tôc thao t¸c chuét. 244 244 245 246 247 250 251 251 252 253 255 2.5 øng dông vμo b¶ng chän. 3. Th©m nhËp trùc tiÕp vμo bé nhí vμ cæng 3.1 Th©m nhËp trùc tiÕp bé nhí. 3.2 Th©m nhËp cæng. 4. Ch−¬ng tr×nh th−êng tró 4.1 Kh¸i niÖm 4.2 C¸ch x©y dùng mét ch−¬ng tr×nh th−êng tró 4.3 VÝ dô minh ho¹. 256 257 257 259 260 260 261 261 C©u hái vμ bμi tËp 265 NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi viii LËp tr×nh b»ng Turbo Pascal Ch−¬ng 1 Giíi thiÖu chung Pascal lμ mét ng«n ng÷ lËp tr×nh cho m¸y tÝnh, do Niklaus Wirth, gi¶ng viªn tr−êng §¹i häc KÜ thuËt Zurich, Thuþ sÜ x©y dùng nªn vμo n¨m 1970 víi môc ®Ých ®Ó gi¶ng d¹y. Lμ ng«n ng÷ lËp tr×nh cÊu tróc, trong s¸ng, dÔ hiÓu, Pascal ®· v−ît ra khái nhμ tr−êng, ph¸t triÓn thμnh mét ng«n ng÷ m¹nh, cã thÓ dïng ®Ó ph¸t triÓn ch−¬ng tr×nh chuyªn nghiÖp. N. Wirth ®· ®−îc gi¶i Turing do c«ng lao s¸ng t¹o vμ phæ biÕn ng«n ng÷ Pascal. HiÖn nay ng«n ng÷ lËp tr×nh Pascal cã nhiÒu biÕn thÓ do c¸c c«ng ty kh¸c nhau bæ xung hoμn thiÖn thªm: TURBO PASCAL cña Borland, QUICK PASCAL cña Microsoft, ANSI PASCAL ... Nãi riªng Turbo Pascal còng ®· ®−îc c¶i tiÕn hoμn thiÖn qua nhiÒu phiªn b¶n, tõ b¶n 1.0 ban ®Çu cho ®Õn b¶n 5.5 n¨m 1989, b¶n 6.0 n¨m 1990, b¶n 7.0 n¨m 1992. 1. C¸c kh¸i niÖm c¬ b¶n 1.1 Më ®Çu. Pascal lμ mét ng«n ng÷ lËp tr×nh cÊp cao, nghÜa lμ gÇn víi ng«n ng÷ cña con ng−êi. Kh¸i niÖm cÊp cao, cÊp thÊp cña mét ng«n ng÷ lËp tr×nh m¸y tÝnh ®Ó nãi nã gÇn h¬n víi ng«n ng÷ con ng−êi hay víi ng«n ng÷ cña m¸y tÝnh chø kh«ng ph¶i ®Ó nãi vÒ kh¶ n¨ng. T−¬ng tù nh− ng«n ng÷ th«ng th−êng, Pascal còng sö dông c¸c kÝ tù ®Ó t¹o nªn c¸c tõ, dïng c¸c "tõ" vμ c¸c yÕu tè c¬ b¶n kh¸c ®Ó t¹o thμnh c¸c "c©u" cã ý nghÜa x¸c ®Þnh. C¸c "c©u" ®−îc phèi hîp thμnh mét "v¨n b¶n" hoμn chØnh gäi lμ v¨n b¶n ch−¬ng tr×nh nh»m ra lÖnh cho m¸y tÝnh thùc hiÖn mét sè c«ng viÖc xö lÝ th«ng tin nμo ®ã. §Ó minh ho¹ ta xÐt mét v¨n b¶n ch−¬ng tr×nh Pascal sau ®©y Program HinhTron; Var BanKinh,ChuVi,DienTich: real; NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi 1 LËp tr×nh b»ng Turbo Pascal Begin Write(' Cho ban kinh = '); Read(BanKinh); If BanKinh > 0 then begin ChuVi:= 2* pi * BanKinh ; DienTich:= pi * BanKinh * BanKinh ; Write(' Chu vi la = ' , ChuVi ); Write(' Dien tich la = ' , DienTich); End Else Write(' Ban kinh am, khong hop le !'); End. Cã thÓ "dÞch" v¨n b¶n ch−¬ng tr×nh cho m¸y tÝnh trªn thμnh ng«n ng÷ th«ng th−êng nh− sau. Ch−¬ng tr×nh H×nh Trßn; C¸c biÕn: B¸n KÝnh, Chu Vi, DiÖn TÝch: lμ sè thùc; B¾t ®Çu ViÕt ra mμn h×nh: Cho B¸n KÝnh = §äc tõ bμn phÝm: B¸n KÝnh. NÕu B¸n KÝnh > 0 Th× B¾t ®Çu ChuVi = 2 x π x B¸n KÝnh. DiÖnTÝch = π x B¸n KÝnh x B¸n KÝnh. ViÕt ra: Chu vi lμ = gi¸ trÞ ChuVi (tÝnh ®−îc ë trªn). ViÕt ra: DiÖn tÝch lμ = gi¸ trÞ DiÖnTÝch (tÝnh ®−îc ë trªn). KÕt thóc. Tr¸i l¹i ViÕt: B¸n KÝnh ©m, Kh«ng hîp lÖ ! KÕt thóc. 1.2 C¸c kÝ tù. Turbo Pascal sö dông c¸c kÝ tù sau ®©y trong b¶ng m· ASCII: - C¸c ch÷ c¸i th−êng vμ hoa: a .. z, A .. Z. - 10 ch÷ sè: 0 .. 9. - DÊu nèi d−íi: _ - C¸c dÊu phÐp to¸n: + - * / = <> - Mét sè kÝ hiÖu ®Æc biÖt: . , ; ! ? : ' " ( ) { } [ ] % @ & # $ ^. ý nghÜa cña nh÷ng kÝ hiÖu nμy ®−îc quy ®Þnh riªng, kh¸c víi c¸ch dïng th«ng th−êng. NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi 2 LËp tr×nh b»ng Turbo Pascal 1.3 C¸c tõ kho¸. Nh×n l¹i ch−¬ng tr×nh vμ b¶n "dÞch" trong vÝ dô trªn ta thÊy c¸c tõ Program, Var, Real, Begin, If, Then, Else, End lμ nh÷ng thμnh phÇn hÕt søc quan träng. Chóng phèi hîp víi nhau ®Ó t¹o nªn phÇn khung cña c¸c c©u lÖnh. §ã lμ c¸c tõ kho¸. C¸c tõ khãa lμ c¸c ®¬n vÞ tõ vùng c¬ së cña mét ng«n ng÷ lËp tr×nh nãi chung. Kh¸c víi ng«n ng÷ th«ng th−êng, mét tõ cã thÓ nhiÒu nghÜa, mét ý cã thÓ viÕt theo nhiÒu c¸ch, mçi tõ kho¸ trong mét ng«n ng÷ lËp tr×nh cã mét ý nghÜa x¸c ®Þnh chÝnh x¸c, nh÷ng c©u lÖnh ®−îc x©y dùng theo nh÷ng quy t¾c hÕt søc chÆt chÏ. D−íi d©y liÖt kª nh÷ng tõ kho¸ cña Turbo Pascal. Y nghÜa vμ c¸ch sö dông chóng ta sÏ lμm quen dÇn sau nμy. And Asm Array Begin Case Const Constructor Destructor Div Do Downto Else End File For Function Goto If Implementation In Inline Interface Label Mod Nil Not Object Of Or Packed Procedure Program Record Repeat Set Shl Shr String Then To Type Unit Until Uses Var While With Xor Víi c¸c tõ khãa, Pascal kh«ng ph©n biÖt ch÷ in hoa hay ch÷ th−êng. Trong v¨n b¶n ch−¬ng tr×nh Pascal ta cã thÓ tuú ý viÕt mét tõ khãa b»ng c¸c ch÷ c¸i d¹ng in th−êng hay in hoa hoÆc xen kÏ c¶ hai d¹ng. 1.4 Tªn - Identifier Nh×n l¹i ch−¬ng tr×nh trong vÝ dô ë trªn, ngoμi c¸c tõ kho¸ ta thÊy cßn cã c¸c thμnh phÇn kh¸c nh− BanKinh, ChuVi, DienTich. Chóng lμ tªn cña c¸c ®èi t−îng mμ ta xö lÝ trong ch−¬ng tr×nh. Quy ®Þnh ®Æt tªn trong Pascal nh− sau: - Tªn lμ x©u kÝ tù gåm ch÷ c¸i , ch÷ sè, dÊu nèi d−íi ( _ ). - Tªn kh«ng ®−îc chøa dÊu c¸ch; - Tªn kh«ng ®−îc b¾t ®Çu b»ng sè; - Tªn cã thÓ dμi tuú ý nh−ng chØ cã 63 kÝ tù ®Çu tiªn lμ cã ý nghÜa; - Tªn kh«ng ®−îc trïng víi tõ kho¸; Nªn ®Æt tªn ph¶n ¸nh ®óng néi dung cña ®èi t−îng, gîi nhí. Tr¸nh kiÓu ®Æt tªn kh«ng mang l¹i th«ng tin g× bæ Ých, vÝ dô: prog01, baitap02 ... NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi 3 LËp tr×nh b»ng Turbo Pascal Gièng nh− ®èi víi c¸c tõ khãa, trong v¨n b¶n ch−¬ng tr×nh Pascal, c¸c tªn còng ®−îc viÕt b»ng c¸c ch÷ c¸i d¹ng in th−êng hay in hoa, kh«ng ph©n biÖt. BanKinh hay bankinh ®Òu chØ lμ mét tªn. Ta cã thÓ chän mét phong c¸ch viÕt thÝch hîp. §Ó t¸ch c¸c ©m tiÕt cho dÔ ®äc cã thÓ dïng dÊu nèi d−íi ( _ ) hoÆc viÕt hoa ch÷ c¸i ®Çu tiªn cña mçi ©m tiÕt, vÝ dô: giai_pt_bac_hai, dinh_thuc, HeSo, BanKinh , DienTich... Trong tμi liÖu nμy sÏ dïng c¸ch viÕt hoa ch÷ c¸i ®Çu cña mçi ©m tiÕt. Kh¸i niÖn tªn (identifier - ID) ë ®©y chÝnh x¸c vμ chÆt chÏ h¬n kh¸i niÖm tªn gäi th«ng th−êng (name). Tªn ph¶i ®¶m b¶o ®óng quy ®Þnh, kh«ng trïng lÆp, t−¬ng øng mét-mét gi÷a tªn vμ ®èi t−îng g¾n víi nã. 1.5 Tªn chuÈn Tªn chuÈn lμ tªn mμ Pascal ®· sö dông, cã mét ý nghÜa hoμn toμn x¸c ®Þnh trong m«i tr−êng Pascal. Trong vÝ dô trªn c¸c thμnh phÇn Read, Write lμ c¸c tªn chuÈn. §ã lμ tªn cña hai thñ tôc cã s½n trong Turbo Pascal. Tªn chuÈn kh¸c tõ kho¸ ë chç, cã thÓ dïng l¹i tªn nμy vμo viÖc kh¸c, ®Þnh nghÜa l¹i víi nghÜa míi kh¸c ®i, do ng−êi dïng quy ®Þnh. Tuy nhiªn kh«ng nªn lμm thÕ v× mäi thay ®æi kh¸c lÖ th−êng, ®Òu dÔ ®−a ®Õn nhÇm lÉn. C¸c tªn chuÈn bao gåm - C¸c kiÓu d÷ liÖu: boolean, char, integer, real, byte, text...; - C¸c h»ng kiÓu l« gic: false, true ; - C¸c hμm, thñ tôc chuÈn ®· lμm s½n: chr, odd, abs, sqr, sqrt, exp, ln .. arctan, cos, sin, .. eof, eoln, read, readln, write, writeln.. 1.6 C©u lÖnh Sö dông c¸c tõ kho¸ cña ng«n ng÷ Pascal, c¸c tªn ®èi t−îng, c¸c dÊu phÐp to¸n vμ c¸c kÝ hiÖu ®Æc biÖt kh¸c, ng−êi lËp tr×nh viÕt c¸c c©u lÖnh. C©u lÖnh lμ mét chØ thÞ cho m¸y tÝnh thùc hiÖn mét thao t¸c tÝnh to¸n, xö lÝ nμo ®ã. VÝ dô, DienTich:= pi * BanKinh * BanKinh ; lμ mét c©u lÖnh yªu cÇu m¸y tÝnh b×nh ph−¬ng b¸n kÝnh nh©n víi sè π råi g¸n cho diÖn tÝch h×nh trßn. Cã thÓ viÕt nhiÒu c©u lÖnh trªn mét dßng. Ph¶i dïng dÊu chÊm phÈy “ ; ” ®Ó ng¨n c¸ch hai c©u lÖnh dï lμ trªn cïng mét dßng hay trªn hai dßng kh¸c nhau. Mét v¨n b¶n ch−¬ng tr×nh lμ mét tËp hîp c¸c c©u lÖnh, ®iÒu khiÓn m¸y tÝnh hoμn thμnh mét c«ng viÖc nhÊt ®Þnh nμo ®ã. C¸c c©u lÖnh nμy ®−îc viÕt tu©n theo mét quy ®Þnh hÕt søc chÆt chÏ vμ chÝnh x¸c. Mçi ng«n ng÷ lËp tr×nh NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi 4 LËp tr×nh b»ng Turbo Pascal 2. Ph¸t triÓn mét ch−¬ng tr×nh Pascal 2.1 CÊu tróc mét ch−¬ng tr×nh Turbo Pascal. §Ó cho dÔ hiÓu tõ ®©y ta quy −íc khi tr×nh bμy c¸c thμnh phÇn có ph¸p cña Pascal ta sÏ dïng c¸ch nhÊn m¹nh b»ng ch÷ in nghiªng ®Ó chØ nh÷ng phÇn mμ ng−êi lËp tr×nh cÇn ®iÒn vμo tuú theo tõng tr−êng hîp cô thÓ. Nh÷ng tõ kho¸, tªn chuÈn... cña ng«n ng÷ Pascal lμ phÇn khung ph¶i gi÷ nguyªn kh«ng ®−îc thay ®æi sÏ ®−îc thÓ hiÖn b»ng kiÓu ch÷ ®øng ®Ëm h¬n. 2.1.1 C¸c thμnh phÇn VÒ cÊu tróc, mét ch−¬ng tr×nh Pascal gåm 3 phÇn: phÇn tªn, phÇn khai b¸o, phÇn th©n. Program tªn ch−¬ng tr×nh ; Uses danh s¸ch c¸c unit ; Const c¸c khai b¸o h»ng ; Type c¸c khai b¸o kiÓu ; Var c¸c khai b¸o biÕn ; Procedure .... ; Function .... ; PhÇn tªn PhÇn khai b¸o PhÇn c¸c ch−¬ng tr×nh con. BEGIN c¸c c©u lÖnh cña ch−¬ng tr×nh; PhÇn th©n END . PhÇn tªn cã thÓ kh«ng cã. PhÇn khai b¸o ph¶i theo ®óng tr×nh tù c¸c môc: uses, const, type, var,v.v. Cã thÓ lÆp l¹i c¸c tõ kho¸ ë trªn nhiÒu lÇn, trªn nhiÒu dßng nÕu nh− cã nhiÒu néi dung. PhÇn khai b¸o cã thÓ kh«ng cã. PhÇn th©n ch−¬ng tr×nh b¾t buéc ph¶i cã ! L−u ý r»ng v¨n b¶n ch−¬ng tr×nh kÕt thóc víi tõ kho¸ END kÌm dÊu chÊm “.” PhÇn khai b¸o cã thÓ ph©n chia chi tiÕt h¬n. Víi c¸c ch−¬ng tr×nh lín, sau khai b¸o danh s¸ch c¸c th− viÖn hμm, thñ tôc lμm s½n (c¸c unit), khai b¸o c¸c h»ng, c¸c kiÓu d÷ liÖu, c¸c biÕn sÏ lμ phÇn dμnh cho c¸c ch−¬ng tr×nh con. NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi 5 LËp tr×nh b»ng Turbo Pascal ë ®©y cã khai b¸o nguyªn mÉu (tøc lμ tªn, danh s¸ch tham sè, kiÓu kÕt qu¶ tr¶ vÒ) cña mçi ch−¬ng tr×nh con kÌm triÓn khai chi tiÕt cña chóng. Ta sÏ t×m hiÓu kÜ h¬n sau nμy trong ch−¬ng "Ch−¬ng tr×nh con". 2.1.2 Chó thÝch trong ch−¬ng tr×nh Pascal. Trong v¨n b¶n ch−¬ng tr×nh th−êng xen lÉn c¸c lêi chó thÝch nh»m môc ®Ých cung cÊp c¸c th«ng tin bæ xung hoÆc gi¶i thÝch ý nghÜa, néi dung c©u lÖnh cho ng−êi ®äc dÔ hiÓu h¬n. Tr×nh biªn dÞch hoμn toμn bá qua c¸c chó thÝch. Có ph¸p ng«n ng÷ Pascal quy ®Þnh ®o¹n lêi chó thÝch ph¶i ®Æt gi÷a cÆp dÊu ngoÆc nhän “{ , }” hoÆc cÆp dÊu ngoÆc ®¬n kÌm dÊu sao “(* , *)”. §o¹n chó thÝch cã thÓ trªn mét dßng hay nhiÒu dßng. VÝ dô: .. .. { nghiÖm thø nhÊt } x1:= ( -b + sqrt (b*b – 4*a*c)) / (2*a); .. .. hoÆc .. .. (* nghiÖm thø nhÊt *) x1:= ( -b + sqrt (b*b – 4*a*c)) / (2*a); 2.1.3 VÝ dô mét ch−¬ng tr×nh Pascal Ch−¬ng tr×nh Pascal ®¬n gi¶n sau ®©y sÏ lμm s¹ch mμn h×nh vμ in ra dßng ch÷ "Xin Chμo B¹n !" t¹i gãc trªn tr¸i cña mμn h×nh. program ChaoMung; uses crt; Begin Clrscr; Write(' Xin Chao Ban ! '); Readln; End. 2.2 C¸c b−íc x©y dùng ch−¬ng tr×nh. X©y dùng ch−¬ng tr×nh gi¶i quyÕt mét bμi to¸n cô thÓ cÇn tr¶i qua c¸c b−íc nh− sau: x¸c ®Þnh râ yªu cÇu cña bμi to¸n cÇn ph¶i lμm g×; ph©n tÝch néi dung; thiÕt kÕ thuËt gi¶i; triÓn khai viÕt ch−¬ng tr×nh vμ ch¹y thö kiÓm tra. ë ®©y ta chØ tr×nh bμy nh÷ng c«ng viÖc c¬ b¶n nhÊt cña hai b−íc cuèi cïng lμ viÕt ch−¬ng tr×nh vμ ch¹y thö. 2.2.1 ViÕt v¨n b¶n ch−¬ng tr×nh. Sau khi ®· cã thuËt gi¶i, cã thÓ triÓn khai viÕt v¨n b¶n ch−¬ng tr×nh. V¨n b¶n ch−¬ng tr×nh lμ mét tÖp v¨n b¶n, nghÜa lμ gåm c¸c kÝ tù trong b¶ng NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi 6 LËp tr×nh b»ng Turbo Pascal 2.2.2 Biªn dÞch vμ liªn kÕt. TÖp v¨n b¶n ch−¬ng tr×nh gåm c¸c c©u lÖnh gÇn víi ng«n ng÷ th«ng th−êng, dÔ hiÓu víi con ng−êi, nh−ng kh«ng ph¶i lμ ng«n ng÷ cña m¸y tÝnh. §Ó m¸y tÝnh hiÓu vμ thùc thi ®−îc c¸c c©u lÖnh cÇn ph¶i biªn dÞch ch−¬ng tr×nh tõ tÖp m· nguån Pascal thμnh tÖp m· m¸y. Trong qu¸ tr×nh biªn dÞch cã thÓ m¸y sÏ ph¸t hiÖn ra c¸c lçi có ph¸p syntax error. Ta cÇn söa ch÷a ®Ó ®¶m b¶o ch−¬ng tr×nh hÕt lçi có ph¸p, ®−îc biªn dÞch thμnh c«ng vμ liªn kÕt thμnh tÖp thi hμnh ®−îc. 2.2.3 Ch¹y thö vμ söa lçi Gièng nh− mét bμi v¨n gåm toμn nh÷ng c©u ®óng ng÷ ph¸p nh−ng v« lý, kh«ng thÓ hiÓu ®−îc, mét ch−¬ng tr×nh ®· ®óng có ph¸p cã thÓ vÉn ch−a ch¹y th«ng ®−îc. M¸y dõng khi ch−¬ng tr×nh thùc hiÖn nöa chõng. Lóc nμy lμ lçi khi ch¹y ch−¬ng tr×nh - run time error. Ngay khi ch−¬ng tr×nh ®· ch¹y th«ng còng vÉn cã thÓ cho kÕt qu¶ sai. §©y lμ lçi néi dung thuËt gi¶i. CÇn ph¶i söa l¹i thuËt gi¶i ®Ó ®¶m b¶o ch−¬ng tr×nh cho kÕt qu¶ ®óng nh− mong muèn. Mét bμi to¸n th−êng cã nhiÒu tr−êng hîp kh¸c nhau. VÝ dô, ch−¬ng tr×nh gi¶i ph−¬ng tr×nh bËc hai sÏ cã ba tr−êng hîp kh¸c nhau øng víi gi¸ trÞ cña biÖt thøc (Delta) lμ ©m, d−¬ng hay b»ng kh«ng. Ch−¬ng tr×nh ®· ch¹y ®óng víi tr−êng hîp nμy cã thÓ vÉn ch−a ®óng hoÆc thËm chÝ kh«ng ch¹y th«ng ®−îc cho tr−êng hîp kh¸c. CÇn ch¹y thö ch−¬ng tr×nh víi nhiÒu bé d÷ liÖu ®Çu vμo kh¸c nhau ®Ó kiÓm tra tÝnh ®óng ®¾n cña ch−¬ng tr×nh trong mäi tr−êng hîp cã thÓ x¶y ra. 3. M«i tr−êng ph¸t triÓn tÝch hîp Turbo Pascal. 3.1 C¸c c«ng cô ph¸t triÓn. Nh− ®· tr×nh bμy ë trªn, viÖc triÓn khai mét ch−¬ng tr×nh Pascal cÇn tiÕn hμnh nhiÒu b−íc, tõ so¹n th¶o v¨n b¶n ch−¬ng tr×nh cho ®Õn biªn dÞch, liªn kÕt, ch¹y thö vμ söa lçi. Mçi b−íc nh− vËy ®Òu cÇn cã mét c«ng cô hç trî t−¬ng øng. §Ó so¹n th¶o v¨n b¶n ch−¬ng tr×nh cÇn dïng mét bé so¹n th¶o – Editor. §Ó biªn dÞch ch−¬ng tr×nh cÇn cã tr×nh biªn dÞch – Compiler. §Ó liªn kÕt c¸c ®o¹n m· sau biªn dÞch thμnh ch−¬ng tr×nh cÇn dïng tr×nh liªn kÕt – Linker. Tr×nh hç trî ph¸t hiÖn vμ söa lçi gäi lμ Debuger. Turbo Pascal ®· kÕt hîp tÊt c¶ c¸c c«ng cô cÇn thiÕt thμnh mét tæng thÓ hoμn chØnh, cho phÐp dÔ dμng thùc hiÖn mçi b−íc vμ chuyÓn tiÕp gi÷a c¸c b−íc. §ã lμ m«i tr−êng NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi 7 LËp tr×nh b»ng Turbo Pascal ph¸t triÓn tÝch hîp (IDE - Integrated Development Environment) cña Turbo Pascal. Bé phÇn mÒm Turbo Pascal gåm nhiÒu tÖp. D−íi ®©y lμ mét sè tÖp chÝnh. - Turbo.exe: so¹n th¶o, biªn dÞch, liªn kÕt, söa lçi, trî gióp.v.v. §©y lμ tÖp chÝnh t¹o nªn m«i tr−êng ph¸t triÓn tÝch hîp cña Turbo Pascal. - Turbo.tpl : (Turbo Pascal Library) th− viÖn chuÈn phôc vô cho turbo.exe. - Graph.tpu: (Turbo Pascal Units) th− viÖn ch−¬ng tr×nh vÒ ®å ho¹ - *.CHR : c¸c ph«ng ch÷ trong chÕ ®é ®å ho¹ - *.BGI : (Borland Graphics Interfaces) c¸c tr×nh ®iÒu khiÓn mμn h×nh ®å ho¹ cña Borland. 3.2 C¸c chøc n¨ng vµ c¸ch dïng. §Ó më m«i tr−êng ph¸t triÓn Turbo Pascal cÇn ph¶i cho ch¹y tÖp Turbo.exe. Sau nhiÒu lÇn c¶i tiÕn, phiªn b¶n phæ biÕn hiÖn nay lμ Turbo Pascal 7.0. PhÇn tr×nh bμy d−íi ®©y lμ c¨n cø trªn phiªn b¶n nμy. 3.2.1 Mμn h×nh lμm viÖc Sau khi khëi ®éng sÏ hiÖn ra mμn h×nh ®Ó b¾t ®Çu viÖc so¹n th¶o, biªn dÞch, ch¹y thö vμ söa lçi ch−¬ng tr×nh. Trªn ®Ønh mμn h×nh lμ thanh chän chÝnh. D−íi ®¸y mμn h×nh lμ dßng nh¾c lÖnh. ë gi÷a lμ vïng lμm viÖc. Thanh chän chÝnh File Edit Search Run Compile Debug Tools Options Window Help Vïng lμm viÖc F1 Help F2 Save F3 Open Alt+F9 Compile F9 Make Alt+F10 ... Dßng nh¾c lÖnh Mçi môc tªn trªn thanh chän chÝnh cho phÐp më ra mét b¶ng chän bu«ng xuèng. Mçi b¶ng chän bu«ng xuèng chøa nhiÒu môc chän thùc hiÖn c¸c c«ng viÖc kh¸c nhau. Tªn c¸c b¶ng chän, môc chän ph¶n ¸nh kh¸ chÝnh x¸c néi dung c«ng viÖc mμ nã thùc hiÖn. NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi 8 LËp tr×nh b»ng Turbo Pascal Gâ Alt + ch÷ c¸i ®−îc lμm næi bËt ®Ó më c¸c b¶ng chän bu«ng xuèng t−¬ng øng. VÝ dô, gâ Alt + F ®Ó më b¶ng chän File, gâ Alt + E ®Ó më b¶ng chän Edit, gâ Alt + S ®Ó më b¶ng chän Search, v.v. Còng cã thÓ dïng c¸c phÝm mòi tªn sang ph¶i, sang tr¸i ®Ó di chuyÓn trªn thanh chän chÝnh vμ gâ Enter ®Ó më b¶ng chän bu«ng xuèng t¹i vÞ trÝ ®ã. Dßng nh¾c lÖnh gåm nhiÒu cÆp phÝm gâ t¾t - tªn lÖnh cho biÕt c¸ch thùc hiÖn nhanh c¸c lÖnh hay dïng. CÆp F1 Help nghÜa lμ gâ phÝm F1 ®Ó më phÇn trî gióp, cÆp Alt+F9 Compile nghÜa lμ gâ tæ hîp phÝm Alt - F9 ®Ó thùc hiÖn biªn dÞch,v.v.. 3.2.2 C¸c b¶ng chän Sau ®©y lμ néi dung cña c¸c b¶ng chän vμ chøc n¨ng cña c¸c môc chän chøa trong ®ã. Y nghÜa cña c¸c môc chän sÏ ®−îc t×m hiÓu kÜ h¬n khi gÆp vÊn ®Ò cã liªn quan. - B¶ng chän File. B¶ng chän File tËp hîp c¸c thao t¸c víi tÖp v¨n b¶n ch−ong tr×nh. New Open ... Save F3 F2 Save as ... Save all ____________ Change dir ... Print Printer setup... DOS shell Exit Alt+X ____________ .... Më cöa sæ so¹n th¶o míi Më tÖp ®· cã trªn ®Üa ®Ó söa ch÷a, viÕt tiÕp Ghi l−u tÖp ch−¬ng tr×nh ®ang so¹n th¶o lªn ®Üa víi tªn cò Ghi l−u tÖp ch−¬ng tr×nh ®ang so¹n th¶o lªn ®Üa víi tªn kh¸c Ghi l−u tÊt c¶ c¸c tÖp ®ang më trong c¸c cöa sæ so¹n th¶o ChuyÓn sang lμm viÖc ë th− môc kh¸c. In v¨n b¶n ch−¬ng tr×nh ra m¸y in ThiÕt ®Æt c¸c tham sè cho thao t¸c in T¹m vÒ DOS, Tho¸t h¼n khái m«i tr−êng Turbo Pascal trë vÒ DOS. L−u ý r»ng ë bªn ph¶i, c¹nh mét sè tªn môc chän hay dïng cã ghi kÌm c¸c phÝm gâ t¾t øng víi môc chän ®ã. - B¶ng chän Edit. B¶ng chän nμy cã nhiÒu chøc n¨ng hç trî cho viÖc so¹n th¶o v¨n b¶n ch−¬ng tr×nh nh− sao chÐp, c¾t d¸n. Tr−íc khi thùc hiÖn sao chÐp, c¾t d¸n, v.v. cÇn ®¸nh dÊu khèi v¨n b¶n b»ng c¸ch nhÊn tæ hîp phÝm Shift + c¸c phÝm mòi tªn lªn, xuèng, sang ph¶i, sang tr¸i. NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi 9 LËp tr×nh b»ng Turbo Pascal Undo Alt+ BkSp Ho·n viÖc võa nhì lμm. Redo LÆp l¹i viÖc võa lμm. ___________ Cut Shift + Del C¾t bá vμ chÐp vμo vïng ®Öm Copy Ctrl + Ins Sao vμo vïng ®Öm Paste Shift + ins D¸n (tõ vïng ®Öm) vμo vÞ trÝ tõ chç con ch¹y Clear Ctrl + Del Xo¸ ®o¹n ®· ®· ®¸nh dÊu. ____________ Show clipboard HiÓn thÞ vïng ®Öm. - B¶ng chän Run B¶ng chän Run gåm nhiÒu chøc n¨ng ®Ó cho thùc hiÖn ch−¬ng tr×nh trong c¸c chÕ ®é kh¸c nhau. Cã thÓ theo dâi ho¹t ®éng cña ch−¬ng tr×nh tõng chÆng mét, thËm chÝ tõng b−íc mét, qua tõng c©u lÖnh. Gâ Enter ®Ó sang b−íc tiÕp theo. Run Ctrl + F9 Step over F8 Trace into F7 Go to cursor F4 Program reset .... DÞch vμ ch¹y thö. Thùc hiÖn tõng b−íc, tõng c©u lÖnh cña ch−¬ng tr×nh. Lêi gäi ch−¬ng tr×nh con coi lμ mét b−íc. Thùc hiÖn tõng b−íc, tõng c©u lÖnh, kÓ c¶ vμo trong ch−¬ng tr×nh con Thùc hiÖn ch−¬ng tr×nh cho ®Õn dßng lÖnh cã con ch¹y Trë l¹i chÕ ®é ch¹y b×nh th−êng. - B¶ng chän Compile B¶ng chän nμy cho phÐp thiÕt lËp c¸c lùa chän kh¸c nhau khi biªn dÞch vμ liªn kÕt ch−¬ng tr×nh. Theo mÆc ®Þnh, sÏ biªn dÞch v¨n b¶n ch−¬ng tr×nh trong cöa sæ so¹n th¶o ®ang lμm viÖc. §ã lμ tÖp m· nguån, cã ®u«i *.PAS . TÖp kÕt qu¶ sau biªn dÞch vμ liªn kÕt lμ tÖp thi hμnh - executable, cã tªn trïng víi tªn tÖp m· nguån nh−ng cã ®u«i *.EXE. Víi ch−¬ng tr×nh lín, cã thÓ nhiÒu tÖp m· nguån. Trong ®ã chØ cã mét tÖp lμ tÖp chÝnh – Primary File. C¸c tÖp kh¸c lμ tÖp phô kÌm theo, bæ xung cho tÖp chÝnh. Lùa chän Primary File cho phÐp thiÕt lËp tªn tÖp m· nguån chÝnh. Dï ta ®ang so¹n th¶o mét tÖp kh¸c, tÖp m· nguån chÝnh thËm chÝ cã thÓ kh«ng ®−îc më, viÖc biªn dÞch vÉn b¾t ®Çu tõ Primary File. Compile Make Build Alt + F9 F9 DÞch tÖp v¨n b¶n ch−¬ng tr×nh ®ang cã. DÞch vμ liªn kÕt NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi 10 LËp tr×nh b»ng Turbo Pascal ____________ Destination Memory Primary file ... Clear primary file ____________ Infomation Th− môc ®Ó ghi tÖp kÕt qu¶. Ghi tÖp *.exe nhËn ®−îc vμo bé nhí hay vμo ®Üa Memory / Disk ThiÕt lËp tÖp m· nguån chÝnh. Bá thiÕt lËp tÖp m· nguån chÝnh. - B¶ng chän Windows B¶ng chän Window ®Ó thao t¸c víi c¸c cöa sæ kh¸c nhau ®ang ®−îc më. L−u ý r»ng, t¹i mét thêi ®iÓm cã thÓ ®ang më nhiÒu cöa sæ nh−ng chØ cã mét cöa sæ ®ang lμm viÖc – Active Window. Cã thÓ lùa chän cho phÐp cöa sæ ®ang lμm viÖc ®Ì lªn trªn, che khuÊt c¸c cöa sæ cßn l¹i – Cascade, hay n»m bªn c¹nh c¸c cöa sæ kh¸c, kh«ng che khuÊt nhau, gièng nh− l¸t g¹ch nÒn nhμ – Tile. Cã thÓ h×nh dung c¸c cöa sæ ®· ®−îc më ra xÕp thμnh d·y cã tr×nh tù tr−íc sau theo thêi ®iÓm ®−îc më. Di chuyÓn Next, Previous lμ ®èi víi d·y theo tr×nh tù nãi trªn. Tile Cascade Close all Refresh display _____________ Size/Move Ctrl + F5 Zoom F5 Next F6 Previous Shift + F6 Close Alt + F3 _____________ List ... 3.3 XÕp c¸c cöa sæ c¹nh nhau XÕp c¸c cöa sæ ®Ì lªn nhau §ãng mäi cöa sæ ®ang më Lμm t−¬i l¹i mμn h×nh Co gi·n tõng chiÒu / Di chuyÓn Phãng to, thu nhá ChuyÓn sang lμm viÖc ë cöa sæ tiÕp theo Lïi vÒ cöa sæ liÒn ngay tr−íc §ãng cöa sæ hiÖn hμnh HiÖn danh s¸ch tªn c¸c cöa sæ ®ang më (®Ó chän). Chän c¸i nμo th× cöa sæ ®ã thμnh cöa sæ lμm viÖc. C¸c b−íc x©y dùng mét ch−¬ng tr×nh trong m«i tr−êng Turbo Pascal - Khëi ®éng Turbo Pascal. - Më tÖp ®Ó so¹n th¶o v¨n b¶n ch−¬ng tr×nh: më b¶ng chän File , chän New ®Ó më tÖp míi, hoÆc Open (F3) ®Ó më tÖp ®· cã trªn ®Üa. -So¹n th¶o v¨n b¶n ch−¬ng tr×nh. Theo mÆc ®Þnh mμn h×nh so¹n th¶o cña Turbo Pascal sÏ cã ch÷ mμu vμng trªn nÒn xanh d−¬ng. Phiªn b¶n Turbo NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi 11 LËp tr×nh b»ng Turbo Pascal Pascal 7.0 cßn hç trî cho ng−êi lËp tr×nh qua viÖc hiÓn thÞ c¸c tõ kho¸ b»ng ch÷ mμu tr¾ng. - Ghi l−u vμo ®Üa. LÇn ®Çu tÖp ch−a cã tªn, khung cöa sæ so¹n th¶o t¹m ®−îc ®Æt tªn lμ NoName00.pas. Ph¶i më b¶ng chän File, chän Save as ... vμ ®Æt tªn cho tÖp ch−¬ng tr×nh. Tªp sÏ ®−îc ghi l¹i víi tªn ®· chän vμ ®u«i .pas theo mÆc ®Þnh. - DÞch vμ söa lçi có ph¸p (Alt + F9 hoÆc F9). NÕu cã lçi có ph¸p sÏ xuÊt hiÖn mét th«ng b¸o lçi mμu ®á. VÞ trÝ cã lçi th−êng ë ngay tr−íc con ch¹y ®ang nhÊp nh¸y trªn mμn h×nh. NÕu dÞch thμnh c«ng, mét tÖp ch¹y ®−îc (cã ®u«i .exe) cã tªn trïng víi tªn tÖp v¨n b¶n ch−¬ng tr×nh sÏ ®−îc t¹o ra. DÞch vμ ch¹y ch−¬ng tr×nh (Ctrl + F9). NÕu ®· hÕt lçi có ph¸p, dÞch thμnh c«ng, th× m¸y sÏ t¹m tho¸t khái m«i tr−êng tÝch hîp cña Turbo Pascal, trë vÒ DOS vμ cho thùc hiÖn tÖp *.exe v−μ t¹o ra. - Xem kÕt qu¶ (Alt + F5). NÕu ch−¬ng tr×nh ch¹y th«ng, nghÜa lμ kh«ng bÞ dõng gi÷a chõng do lçi khi ch¹y ch−¬ng tr×nh - run time error, th× khi kÕt thóc thùc hiÖn ch−¬ng tr×nh m¸y sÏ lËp tøc trë l¹i ngay m«i tr−êng ph¸t triÓn cña Turbo Pascal. Ta kh«ng kÞp xem c¸c kÕt qu¶ mμ ch−¬ng tr×nh ®· hiÓn thÞ ra mμn h×nh DOS. Gâ Alt + F5 ®Ó cho hiÖn l¹i mμn h×nh nμy. Còng v× lÝ do nμy mμ nhiÒu ng−êi thªm c©u lÖnh Readln vμo cuèi ch−¬ng tr×nh ®Ó chê gâ phÝm Enter, cã thêi gian ®Ó xem kÕt qu¶. B©y giê ®· cã thÓ sö dông m«i tr−êng ph¸t triÓn cña Turbo Pascal ®Ó so¹n th¶o v¨n b¶n ch−¬ng tr×nh, dÞch vμ ch¹y thö ch−¬ng tr×nh ®¬n gi¶n ®· nªu trong tiÕt tr−íc. C©u hái vμ bμI tËp 1. Tõ kho¸ lμ g×, tõ kho¸ kh¸c tªn chuÈn ë chç nμo. 2. T×m trong c¸c tõ sau ®©y ®©u lμ tõ kho¸, tªn chuÈn, tªn ®óng vμ kh«ng ®óng quy ®Þnh cña Turbo Pascal: End XYZ123 123ABC Tong So Prog#2 Write X=Y Read 'MaxSize' Tyle "Delta" TimThay? 3. a) Nªu c¸ch chÌn thªm chó thÝch vμo mét ch−¬ng tr×nh Pascal. b) C¸c chó thÝch dïng ®Ó lμm g×. c) ViÕt ®o¹n chó thÝch nh− sau cã ®óng kh«ng ? { Ch−¬ng tr×nh gi¶i ph−¬ng tr×nh bËc hai {gi¶ thiÕt a <> 0}, t¸c gi¶ NguyÔn V¨n A}. 4. Khung cÊu tróc cña mét ch−¬ng tr×nh Pascal gåm cã mÊy phÇn. PhÇn nμo b¾t buéc ph¶i cã. H·y viÕt mét ch−¬ng tr×nh Pascal ng¾n nhÊt cã thÓ. NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi 12
- Xem thêm -

Tài liệu liên quan

thumb
Văn hóa anh mỹ...
200
20326
147