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

Lập trình bằng Turbo Pascal part 1

Chia sẻ: Ashfjshd Askfaj | Ngày: | Loại File: PDF | Số trang:28

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

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...

Chủ đề:
Lưu

Nội dung Text: Lập trình bằng Turbo Pascal part 1

  1. LËp tr×nh b»ng Turbo Pascal L ¬I N OI ® Ç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
  2. LËp tr×nh b»ng Turbo Pascal N ¤I D UNG 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.1 Më ®Çu. 1 1.2 C¸c kÝ tù. 2 1.3 C¸c tõ kho¸. 3 1.4 Tªn - Identifier 3 1.5 Tªn chuÈn 4 1.6 C ©u lÖnh 4 2. Ph¸t triÓn mét ch−¬ng tr×nh Pascal 5 2.1 CÊu tróc mét ch−¬ng tr×nh Turbo Pascal. 5 2.2 C¸c b−íc x©y dùng ch−¬ng tr×nh. 6 3. M«i tr−êng ph¸t triÓn tÝch hîp Turbo Pascal. 7 3.1 C¸c c«ng cô ph¸t triÓn. 7 3.2 C¸c chøc n¨ng vμ c¸ch dïng. 8 3.3 C¸c b−íc x©y dùng mét ch−¬ng tr×nh trong m«i tr−êng Turbo Pascal 11 12 C©u hái vμ bμI tËp 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. 14 1.1 Kh¸i niÖm kiÓu d÷ liÖu 14 1.2 Ph©n lo¹i c¸c kiÓu d÷ liÖu trong TurboPascal. 14 1.3 C¸c kiÓu ®¬n gi¶n chuÈn 16 2. C¸c hμm chuÈn. 18 2.1 B¶ng c¸c hμm chuÈn. 19 2.2 Sö dông. 20 20 C©u hái vμ bμi tËp 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 21 1.1 Khai b¸o h»ng 21 1.2 Khai b¸o biÕn 22 2. BiÓu thøc trong ng«n ng÷ Pascal. 23 2.1 Biªñ thøc lμ g×. 23 2.2 B¶ng thø tù −u tiªn 24 2.3 ViÕt ®óng biÓu thøc 25 3. C¸c c©u lÖnh ®¬n gi¶n 25 3.1 LÖnh g¸n 26 3.2 LÖnh in ra mμn h×nh kh«ng kÌm ®Þnh d¹ng. 26 3.3 Quy c¸ch mÆc ®Þnh in ra c¸c kiÓu d÷ liÖu. 27 3.4 LÖnh in ra cã kÌm quy c¸ch 28 NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi ii
  3. LËp tr×nh b»ng Turbo Pascal 3.5 LÖnh in ra m¸y in 29 3.6 LÖnh nhËp d÷ liÖu tõ bμn phÝm. 30 4. Mét sè hμm, thñ tôc tr×nh bμy mμn h×nh. 32 32 C©u hái vμ bμi tËp Ch−¬ng 4- C¸c cÊu tróc ®iÒu khiÓn 35 1. C©u lÖnh ghÐp 35 2. C©u lÖnh IF. 35 2.1 Có ph¸p vμ c«ng dông. 36 2.2 C¸c vÝ dô minh ho¹. 37 2.3 If lång nhau hay d·y if 38 2.4 AND hay IF lång nhau 39 3. C©u lÖnh CASE. 40 3.1 Có ph¸p vμ t¸c dông. 40 3.2 VÝ dô minh ho¹ 41 3.3 Chó ý 42 3.4 C¸c lçi th−êng gÆp. 42 4. C©u lÖnh FOR. 43 4.1 Có ph¸p vμ t¸c dông 43 4.2 VÝ dô minh ho¹ 44 5. C©u lÖnh Repeat. 45 5.1 Có ph¸p vμ t¸c dông 45 5.2 VÝ dô minh ho¹ 46 6. C©u lÖnh While. 48 6.1 Có ph¸p vμ c«ng dông. 48 6.2 VÝ dô minh ho¹ 49 7. X©y dùng cÊu tróc lÆp. 50 7.1 §iÒu khiÓn vßng lÆp b»ng gi¸ trÞ canh chõng. 50 7.2 §iÒu khiÓn vßng lÆp b»ng cê b¸o 51 8. C¸c lÖnh kÕt thóc sím vßng lÆp hoÆc ch−¬ng tr×nh. 51 8.1 LÖnh nh¶y kh«ng ®iÒu kiÖn - goto 51 8.2 LÖnh chÊm døt sím vßng lÆp. 52 8.3 LÖnh tho¸t khái ch−¬ng tr×nh con. 53 8.4 LÖnh dõng ch−¬ng tr×nh bÊt th−êng. 53 53 C©u hái vμ bμi tËp 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. 56 1.1 Có ph¸p chung. 56 1.2 VÝ dô 56 2. KiÓu liÖt kª. 57 2.1 §Þnh nghÜa vμ có ph¸p 57 2.2 TÝnh chÊt vμ c¸c phÐp to¸n. 58 2.3 VÝ dô minh ho¹ 60 3. KiÓu ®o¹n con. 60 3.1 §Þnh nghÜa vμ có ph¸p. 60 3.2 VÝ dô minh ho¹. 62 4. KiÓu tËp hîp. 62 NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi iii
  4. LËp tr×nh b»ng Turbo Pascal 4.1 §Þnh nghÜa vμ có ph¸p. 62 4.2 C¸c phÐp to¸n trªn tËp hîp 63 4.3 VÝ dô minh ho¹ 64 Ch−¬ng 6 - KiÓu m¶ng 66 1. M¶ng mét chiÒu 66 1.1 §Þnh nghÜa vμ có ph¸p. 66 1.2 C¸c tÝnh chÊt. 67 1.3 T¹i sao nªn khai b¸o kiÓu. 68 1.4 VÝ dô minh ho¹. 68 2. M¶ng nhiÒu chiÒu. 69 2.1 §Þnh nghÜa có ph¸p vμ cÊu tróc 69 2.2 VÝ dô minh ho¹. 70 3. T×m kiÕm trªn m¶ng. 71 3.1 T×m kiÕm tuÇn tù. 71 3.2 T×m kiÕm nhÞ ph©n. 72 4. Mét vμi c¸ch s¾p xÕp m¶ng. 73 4.1 Ph−¬ng ph¸p ®æi chç trùc tiÕp. 73 4.2 Ph−¬ng ph¸p chÌn trùc tiÕp. 75 4.3 Ph−¬ng ph¸p chän trùc tiÕp. 77 79 C©u hái vμ bμi tËp Ch−¬ng 7 - KiÓu x©u kÝ tù 81 1. Có ph¸p vμ cÊu tróc. 81 1.1 Có ph¸p. 81 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. 82 2. Thao t¸c víi x©u kÝ tù 84 2.1 C¸c phÐp to¸n. 84 2.2 C¸c thñ tôc vμ hμm trªn x©u kÝ tù. 84 86 C©u hái vμ bμi tËp Ch−¬ng 8 - KiÓu b¶n ghi 88 1. §Þnh nghÜa vμ khai b¸o 88 1.1 §Þnh nghÜa. 88 1.2 Khai b¸o kiÓu b¶n ghi. 88 2. Sö dông. 90 2.1 Truy cËp tõng thμnh phÇn. 90 2.2 C¸c phÐp to¸n víi toμn bé b¶n ghi. 90 2.3 §äc vμo, viÕt ra víi mét biÕn kiÓu b¶n ghi. 91 2.4 C©u lÖnh With. 92 3. B¶n ghi cã cÊu tróc thay ®æi 93 3.1 §Þnh nghÜa vμ có ph¸p 93 3.2 Sö dông b¶n ghi cã cÊu tróc thay ®æi. 94 Ch−¬ng 9 - KiÓu tÖp 98 1. C¸c kh¸i niÖm vμ ®Þnh nghÜa 98 1.1 Môc ®Ých sö dông tÖp. 98 1.2 TÖp ®Þnh kiÓu. 98 NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi iv
  5. LËp tr×nh b»ng Turbo Pascal 1.3 TÖp truy cËp tuÇn tù. 99 2. ViÕt ra tÖp, ®äc vμo tõ tÖp 100 2.1 Më tÖp ®Ó viÕt ra. 100 2.2 ViÕt d÷ liÖu ra tÖp. 101 2.3 Më tÖp ®Ó ®äc vμo. 102 2.4 §äc d÷ liÖu vμo tõ tÖp. 102 2.5 TÖp truy cËp trùc tiÕp. 103 3. C¸c thao t¸c kh¸c 104 3.1 Mét sè hμm vμ thñ tôc víi tÖp. 104 3.2 BÉy lçi khi më tÖp. 105 4. TÖp v¨n b¶n. 107 4.1 §Þnh nghÜa vμ cÊu tróc. 107 4.2 ViÕt ra tÖp v¨n b¶n 108 4.3 §äc vμo tõ mét tÖp v¨n b¶n. 108 4.4 C¸c hμm, thñ tôc chuÈn kh¸c cho tÖp v¨n b¶n 109 4.5 C¸c thiÕt bÞ vμo ra chuÈn 111 5. TÖp kh«ng ®Þnh kiÓu. 112 5.1 §Þnh nghÜa vμ cÊu tróc. 112 5.2 C¸c hμm, thñ tôc kh¸c. 112 114 C©u hái vμ bμi tËp Ch−¬ng 10 - Ch−¬ng tr×nh con 115 1. Ch−¬ng tr×nh con - Hμm vμ thñ tôc 115 1.1 T¹i sao cÇn sö dông ch−¬ng tr×nh con. 115 1.2 Khai b¸o ch−¬ng tr×nh con. 115 1.3 X©y dùng ch−¬ng tr×nh con 117 1.4 Lêi gäi ch−¬ng tr×nh con. 117 1.5 VÝ dô minh ho¹. 118 2. Hμm hay thñ tôc, tham biÕn hay tham trÞ. 120 2.1 Ph©n biÖt hμm víi thñ tôc. 120 2.2 Ph©n biÖt tham biÕn vμ tham trÞ. 121 2.3 Mét vμi l−u ý khi x©y dùng ch−¬ng tr×nh con 122 2.4 Khai b¸o tr−íc - Forward. 124 3. Ch−¬ng tr×nh con lång nhau. 125 3.1 BiÕn toμn côc, biÕn côc bé, tÇm t¸c dông 125 3.2 Minh ho¹ 126 128 C©u hái vμ bμi tËp Ch−ong 11 - ThiÕt kÕ ch−¬ng tr×nh 129 1. Ph−¬ng ph¸p x©y dùng ch−¬ng tr×nh 129 1.1 Kh¸i niÖm C«ng nghÖ phÇn mÒm. 129 1.2 Chu k× ph¸t triÓn phÇn mÒm. 129 1.3 VÝ dô minh ho¹ 130 1.4 LËp tr×nh m« ®un - Modula programming 131 1.5 Thñ tôc ho¸ - Procedural abstraction 133 2. ThiÕt kÕ chi tiÕt dÇn tõng b−íc. 133 2.1 S¬ ®å cÊu tróc ch−¬ng tr×nh - structure chart 133 2.2 VÝ dô. 134 NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi v
  6. LËp tr×nh b»ng Turbo Pascal 3. TÝnh ®Ö quy vμ thuËt gi¶i ®Ö quy. 138 3.1 TÝnh ®Ö quy 138 3.2 ThuËt gi¶i ®Ö quy. 139 3.3 ThiÕt kÕ gi¶i thuËt ®Ö quy. 140 4. Mét sè vÝ dô vÒ thuËt gi¶i ®Ö quy. 141 4.1 Bμi to¸n th¸p Hμ néi. 141 4.2 Bμi to¸n vÕt mùc. 142 4.3 T×m kiÕm nhÞ ph©n 144 4.4 S¾p xÕp kiÓu ph©n ®o¹n hay s¾p xÕp nhanh - Quick Sort. 145 5. Tù x©y dùng th− viÖn ch−¬ng tr×nh con - Units 147 5.1 Sö dông l¹i c¸c ch−¬ng tr×nh con 147 5.2 CÊu tróc cña mét unit. 147 5.3 Biªn dÞch vμ sö dông. 149 5.4 VÝ dô minh ho¹. 149 5.5 So s¸nh viÖc dïng Unit víi chÌn trùc tiÕp tÖp m· nguån 150 5.6 C¸c unit chuÈn cña Turbo Pascal 150 6. Giíi thiÖu Unit CRT. 151 6.1 C¸c biÕn 151 6.2 C¸c hμm, thñ tôc 152 6.3 Mμu s¾c vμ chÕ ®é mμn h×nh v¨n b¶n. 153 6.4 Xö lÝ gâ phÝm. 156 6.5 C¸c thñ tôc kh¸c 156 7. VÝ dô øng dông - Lμm b¶ng chän. 157 7.1 C¸c b−íc x©y dùng b¶ng chän. 157 7.2 Ph©n tÝch thiÕt kÕ chi tiÕt dÇn tõng b−íc. 158 7.3 Ch−¬ng tr×nh chi tiÕt. 162 7.4 ChuyÓn thμnh Unit b¶ng chän. 165 8. Mét ch−¬ng tr×nh øng dông. 167 8.1 Ph©n tÝch thiÕt kÕ 167 8.2 TriÓn khai chi tiÕt ch−¬ng tr×nh. 170 174 C©u hái vμ bμi tËp Ch−¬ng 12 - Con trá vμ cÊu tróc d÷ liÖu ®éng 176 1. Con trá 176 1.1 BiÕn tÜnh vμ biÕn ®éng. 176 1.2 §Þnh nghÜa vμ khai b¸o. 177 1.3 C¸c phÐp to¸n ®èi víi con trá. 178 2. BiÕn ®éng. 179 2.1 CÊp ph¸t vïng nhí vμ truy cËp biÕn ®éng. 179 2.2 Gi¶i phãng biÕn ®éng, thu håi vïng nhí 180 3. Con trá kh«ng ®Þnh kiÓu - Pointer 180 3.1 §Þnh nghÜa 180 3.2 øng dông 181 4. Vïng ng¨n xÕp vμ vïng Heap. 182 4.1 Kh¸i niÖm 182 4.2 Gi¶i to¶ heap 183 4.3 VÝ dô minh ho¹ - m¶ng cì lín. 183 NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi vi
  7. LËp tr×nh b»ng Turbo Pascal 184 C©u hái vμ bμi tËp Ch−¬ng 13 Danh s¸ch & danh s¸ch mãc nèi 187 1. Danh s¸ch b»ng m¶ng. 187 1.1 M« h×nh danh s¸ch. 187 1.2 Danh s¸ch biÓu diÔn b»ng cÊu tróc m¶ng. 188 1.3 C¸c phÐp to¸n ®èi víi danh s¸ch m¶ng. 188 1.4 C¸c −u, nh−îc ®iÓm. 189 1.5 VÝ dô minh ho¹ 190 2. Danh s¸ch kiÓu ng¨n xÕp - Stack. 193 2.1 §Þnh nghÝa danh s¸ch kiÓu ng¨n xÕp. 193 2.2 BiÓu diÔn danh s¸ch kiÓu ng¨n xÕp. 194 2.3 C¸c phÐp to¸n ®èi víi kiÓu ng¨n xÕp. 194 3. Danh s¸ch kiÓu hμng ®îi - Queue. 195 3.1 §Þnh nghÜa danh s¸ch kiÓu hμng ®îi. 195 3.2 BiÓu diÔn danh s¸ch kiÓu hμng ®îi b»ng m¶ng. 196 3.2 C¸c phÐp to¸n. 196 4. Danh s¸ch nèi ®¬n. 198 4.1 M« t¶. 198 4.2 CÊu tróc mãc nèi. 198 4.3 C¸c phÐp to¸n. 200 5. Danh s¸ch nèi kÐp 202 5.1 CÊu tróc danh s¸ch nèi kÐp. 202 5.2 C¸c phÐp to¸n víi danh s¸ch nèi kÐp. 203 6. VÝ dô øng dông cña danh s¸ch mãc nèi. 205 6.1 C¶i tiÕn ch−¬ng tr×nh qu¶n lÝ hå s¬. 205 6.2 Ph©n tÝch thiÕt kÕ. 205 6.3 TriÓn khai chi tiÕt. 207 213 C©u hái vμ bμi tËp Ch−¬ng 14 - Då ho¹ 215 1. C¸c kh¸i niÖm c¬ b¶n 215 1.1 Hai chÕ ®é hiÓn thÞ mμn h×nh 215 1.2 Khëi t¹o vμ ®ãng chÕ ®é ®å ho¹ 216 1.3 Mét ch−¬ng tr×nh ®å ho¹ ®¬n gi¶n 218 1.4 Mμu s¾c, kiÓu nÐt vÏ, kiÓu t« nÒn. 218 2. C¸c thñ tôc ®å ho¹ th−êng dïng. 219 2.1 Di chuyÓn, vÏ mét ®iÓm, mét ®o¹n th¼ng. 219 2.2 C¸c thñ tôc vÏ h×nh. 220 2.3 Tû lÖ biÓu kiÕn. 221 2.4 ViÕt ch÷ ra mμn h×nh ®å ho¹ 222 3. C¸c thñ tôc vÒ m«i tr−êng ®å ho¹ 224 3.1 C¸c thñ tôc thiÕt lËp mμu. 224 3.2 C¸c thñ tôc vÒ mÉu t«, mÉu nÐt vÏ 225 3.3 ViewPort. 229 4. VÏ ®å thÞ mét hμm sè 230 4.1 Ph©n tÝch thiÕt kÕ. 231 NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi vii
  8. LËp tr×nh b»ng Turbo Pascal 4.2 Ch−¬ng tr×nh chi tiÕt. 232 4.3 ChuyÓn thμnh ch−¬ng tr×nh con. 234 5. Lμm ho¹t h×nh. 235 5.1 Di chuyÓn h×nh vÏ trªn nÒn tr¬n 235 5.2 Di chuyÓn h×nh vÏ trªn nÒn h×nh ¶nh tÜnh. 236 5.3 Sö dông phÐp lËt trang mμn h×nh. 240 242 C©u hái vμ bμi tËp 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. 244 1.1 C¸c thanh ghi cña 8086 vμ ®Þa chØ trong bé nhí 244 1.2 C¸c ng¾t - interrupt 245 1.3 Th©m nhËp trùc tiÕp qua thanh ghi vμ ng¾t 246 1.4 C¸c vÝ dô minh ho¹. 247 1.5 Sö dông c¸c hμm, thñ tôc cña unit DOS 250 2. §iÒu khiÓn chuét 251 2.1 To¹ ®é chuét 251 2.2 Ng¾t ®iÒu khiÓn chuét $33 252 2.3 VÝ dô minh ho¹. 253 2.4 Th− viÖn c¸c thñ tôc thao t¸c chuét. 255 2.5 øng dông vμo b¶ng chän. 256 3. Th©m nhËp trùc tiÕp vμo bé nhí vμ cæng 257 3.1 Th©m nhËp trùc tiÕp bé nhí. 257 3.2 Th©m nhËp cæng. 259 4. Ch−¬ng tr×nh th−êng tró 260 4.1 Kh¸i niÖm 260 4.2 C¸ch x©y dùng mét ch−¬ng tr×nh th−êng tró 261 4.3 VÝ dô minh ho¹. 261 265 C©u hái vμ bμi tËp NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi viii
  9. 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
  10. 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
  11. 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 End Nil Shr Asm File Not String Array For Object Then Begin Function Of To Case Goto Or Type Const If Packed Unit Constructor Implementation Procedure Until Destructor In Program Uses Div Inline Record Var Do Interface Repeat While Downto Label Set With Else Mod Shl 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
  12. 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
  13. 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. PhÇn tªn Program tªn ch−¬ng tr×nh ; Uses danh s¸ch c¸c unit ; PhÇn khai b¸o 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 .... ; PhÇn c¸c ch−¬ng tr×nh con. Function .... ; BEGIN PhÇn th©n c¸c c©u lÖnh cña ch−¬ng tr×nh; 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
  14. 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
  15. 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
  16. 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¹ : (Borland Graphics Interfaces) c¸c tr×nh ®iÒu khiÓn mμn - *.BGI 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
  17. 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 Më cöa sæ so¹n th¶o míi Open ... F3 Më tÖp ®· cã trªn ®Üa ®Ó söa ch÷a, viÕt tiÕp Save F2 Ghi l−u tÖp ch−¬ng tr×nh ®ang so¹n th¶o lªn ®Üa víi tªn cò Save as ... Ghi l−u tÖp ch−¬ng tr×nh ®ang so¹n th¶o lªn ®Üa víi tªn kh¸c Save all Ghi l−u tÊt c¶ c¸c tÖp ®ang më trong c¸c cöa sæ so¹n th¶o ____________ Change dir ... ChuyÓn sang lμm viÖc ë th− môc kh¸c. Print In v¨n b¶n ch−¬ng tr×nh ra m¸y in Printer setup... ThiÕt ®Æt c¸c tham sè cho thao t¸c in DOS shell T¹m vÒ DOS, Exit Alt+X 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
  18. 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 D¸n (tõ vïng ®Öm) vμo vÞ trÝ tõ chç con ch¹y Paste Shift + ins 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 DÞch vμ ch¹y thö. Step over F8 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. Trace into F7 Thùc hiÖn tõng b−íc, tõng c©u lÖnh, kÓ c¶ vμo trong ch−¬ng tr×nh con Go to cursor F4 Thùc hiÖn ch−¬ng tr×nh cho ®Õn dßng lÖnh cã con ch¹y Program reset 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 Alt + F9 DÞch tÖp v¨n b¶n ch−¬ng tr×nh ®ang cã. Make F9 DÞch vμ liªn kÕt Build NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi 10
  19. LËp tr×nh b»ng Turbo Pascal ____________ Destination Th− môc ®Ó ghi tÖp kÕt qu¶. Memory Ghi tÖp *.exe nhËn ®−îc vμo bé nhí hay vμo ®Üa Memory / Disk Primary file ... ThiÕt lËp tÖp m· nguån chÝnh. Clear primary file Bá thiÕt lËp tÖp m· nguån chÝnh. ____________ Infomation - 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 XÕp c¸c cöa sæ c¹nh nhau Cascade XÕp c¸c cöa sæ ®Ì lªn nhau Close all §ãng mäi cöa sæ ®ang më Refresh display Lμm t−¬i l¹i mμn h×nh _____________ Size/Move Ctrl + F5 Co gi·n tõng chiÒu / Di chuyÓn Zoom F5 Phãng to, thu nhá Next F6 ChuyÓn sang lμm viÖc ë cöa sæ tiÕp theo Previous Shift + F6 Lïi vÒ cöa sæ liÒn ngay tr−íc Close Alt + F3 §ãng cöa sæ hiÖn hμnh _____________ List ... 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. 3.3 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
  20. 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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