intTypePromotion=3

Bài giảng Tin học ứng dụng trong Hóa học - TS. Mai Xuân Trường

Chia sẻ: Kiếp Này Bình Yên | Ngày: | Loại File: PDF | Số trang:105

0
61
lượt xem
6
download

Bài giảng Tin học ứng dụng trong Hóa học - TS. Mai Xuân Trường

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

Để phục vụ công tác giảng dạy và học tập tin học ứng dụng trong hóa học, tác giả đã biên soạn bài giảng "Tin học ứng dụng trong hoá học". Bài giảng này chủ yếu cung cấp những khái niệm cơ bản nhất của các ngôn ngữ lập trình để người học có thể lập trình những chương trình đơn giản hay có thể sử dụng các chương trình nguồn mở đã có. Mời các bạn cùng tham khảo.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Tin học ứng dụng trong Hóa học - TS. Mai Xuân Trường

  1. ®¹I häc th¸i nguyªn tr−êng ®¹I häc s− ph¹m Khoa Ho¸ häc TS Mai Xu©n Tr−êng DĐ : 0912.739.257 CQ : 0280.3856.853 NR 0280.3759.402 Bµi gi¶ng Tin häc øng dông trong ho¸ häc (2 tÝn chØ) (TÀI LIỆU LƯU HÀNH NỘI BỘ) Th¸i nguyªn, 2011
  2. TS Mai Xu©n Tr−êng - Tr−êng §¹i häc S− ph¹m - §¹i häc Th¸i Nguyªn Më ®Çu Tin häc trong hãa häc (chemometric) hay ho¸ tin (computational chemistry) lµ danh tõ dïng ®Ó chØ mét lÜnh vùc khoa häc kÕt hîp to¸n häc - mµ chñ yÕu lµ ph−¬ng ph¸p tÝnh - víi m¸y tÝnh ®Ó gi¶i c¸c bµi to¸n ho¸ häc. Ho¸ tin bao giê còng ®−îc cÊu thµnh bëi ba yÕu tè: thuËt to¸n (algorithm), ®o¹n ch−¬ng tr×nh m¸y tÝnh (computer code) vµ néi dung ho¸ häc. Tin häc øng dông trong hãa häc cã thÓ hiÓu lµ c¸c ph−¬ng ph¸p tÝnh to¸n trªn m¸y tÝnh ®Ó gi¶i c¸c bµi to¸n ho¸ häc vµ kh«ng cã tÝnh ®Æc thï ®Çy ®ñ. Tøc lµ cã thÓ cã nh÷ng ph−¬ng ph¸p chØ dïng ®Ó gi¶i c¸c bµi to¸n ho¸ häc, th−êng lµ nh÷ng ph−¬ng ph¸p tæ hîp cÊu thµnh bµi to¸n lín nh− ho¸ l−îng tö (quantum chemistry), m« pháng ®éng lùc ph©n tö l−îng tö (quantum molecular dynamics simulation), vµ cã nh÷ng ph−¬ng ph¸p kh«ng chØ ®−îc dïng trong ho¸ häc mµ cßn dïng trong c¸c lÜnh vùc kh¸c. C¸c ph−¬ng ph¸p nµy, ®Æc biÖt lµ trong viÖc khai th¸c d÷ liÖu (datamining), th−êng lµ nh÷ng ph−¬ng ph¸p ®¬n, kh«ng qu¸ phøc t¹p vµ xuÊt ph¸t tõ nh÷ng bµi to¸n c¬ b¶n trong to¸n häc vÒ ph−¬ng ph¸p tÝnh nh−: ph−¬ng ph¸p håi quy phi tuyÕn, gi¶i hÖ ph−¬ng tr×nh vi ph©n, läc Kalman (Kalman filter), m¹ng n¬ron, ... Nh÷ng n¨m gÇn ®©y, sù ph¸t triÓn c¸c ng«n ng÷ lËp tr×nh, thuËt to¸n, c¸c bµi to¸n ho¸ häc, c¸c phÇn mÒm tÝnh to¸n øng dông trong ho¸ häc vµ sè l−îng ng−êi sö dông ngµy cµng nhiÒu. §Ó phôc vô c«ng t¸c gi¶ng d¹y vµ häc tËp tin häc øng dông trong hãa häc, chóng t«i ®· biªn so¹n bµi gi¶ng "Tin häc øng dông trong ho¸ häc". HiÖn nay cã rÊt nhiÒu thuËt to¸n, phÇn mÒm còng nh− c¸c bµi to¸n ho¸ tin øng dông ®· ®−îc t¶i lªn m¹ng INTERNET, b¹n cã thÓ t×m thÊy trªn m¹ng c¸c thuËt to¸n d−íi d¹ng m· nguån më cho hÇu hÕt c¸c bµi to¸n øng dông trong ho¸ häc th× viÖc thay ®æi c¸ch häc thùc lµ rÊt cÊp thiÕt. Tuy nhiªn ®Ó cã thÓ hiÓu ®−îc c¸c ch−¬ng tr×nh ®ã ta cÇn ph¶i hiÓu c¸c kh¸i niÖm c¬ b¶n cña tin häc dïng trong ho¸ häc nh− c¸c häc thuËt to¸n, nh÷ng lÖnh rÊt c¬ b¶n cña ng«n ng÷ lËp tr×nh ®ã. V× vËy gi¸o tr×nh nµy chñ yÕu cung cÊp nh÷ng kh¸i niÖm c¬ b¶n nhÊt cña c¸c ng«n ng÷ lËp tr×nh ®Ó ng−êi häc cã thÓ lËp tr×nh nh÷ng ch−¬ng tr×nh ®¬n gi¶n hay cã thÓ sö dông c¸c ch−¬ng tr×nh nguån më ®· cã. 1
  3. TS Mai Xu©n Tr−êng - Tr−êng §¹i häc S− ph¹m - §¹i häc Th¸i Nguyªn Ch−¬ng 1 : më ®Çu 1.1. c¸c kh¸i niÖm c¬ b¶n 1.1.1. Th«ng tin Mäi yÕu tè cã thÓ mang l¹i sù hiÓu biÕt ®Òu ®−îc gäi lµ th«ng tin. Th«ng tin ®−îc thÓ hiÖn d−íi nhiÒu d¹ng thøc kh¸c nhau. Th«ng tin vÒ mét ®èi t−îng chÝnh lµ c¸c d÷ kiÖn vÒ ®èi t−îng ®ã, cµng nhiÒu th«ng tin th× ®é bÊt ®Þnh cña ®èi t−îng cµng gi¶m xuèng. 1.1.2. §¬n vÞ ®o th«ng tin §¬n vÞ ®o th«ng tin trong m¸y tÝnh ®−îc gäi lµ bÝt. 1 bÝt mang l−îng th«ng tin t−¬ng øng víi 1 trong 2 kh¶ n¨ng cã thÓ x¶y ra: 1 (t−¬ng øng víi cã ®iÖn hay bãng ®Ìn s¸ng) hoÆc 0 (t−¬ng øng víi kh«ng cã ®iÖn (bãng ®iÖn t¾t) ). 1 byte = 8 bÝt 1KB = 1024 byte 1MB = 1024KB 1GB = 1024MB 1.1.3. Xö lý th«ng tin b»ng m¸y tÝnh ®iÖn tö Th«ng tin vµo Qu¸ tr×nh xö lý KÕt qu¶ Quy t¾c theo ®ã qu¸ tr×nh xö lý ®−îc thùc hiÖn (do con ng−êi ®Æt ra) M¸y tÝnh sÏ kh«ng lµm g× nÕu kh«ng cã t¸c ®éng cña con ng−êi. Ng−êi sö dông ph¶i nhËp sè liÖu, bÊm c¸c phÝm thùc hiÖn phÐp to¸n còng nh− yªu cÇu hiÓn thÞ kÕt qu¶ hoÆc l−u tr÷ kÕt qu¶. 1.2. CÊu tróc hÖ xö lý th«ng tin tù ®éng ThiÕt bÞ vµo CPU ThiÕt bÞ ra Bé nhí ROM Bµn phÝm Bé nhí RAM Mµn h×nh Chuét Bé xö lý trung t©m M¸y in æ ®Üa Bé sè häc logic M¸y Scan Bé ®iÒu khiÓn æ ®Üa 2
  4. TS Mai Xu©n Tr−êng - Tr−êng §¹i häc S− ph¹m - §¹i häc Th¸i Nguyªn C¸c thiÕt vµo vµ c¸c thiÕt ra gäi lµ c¸c thiÕt bÞ ngo¹i vi, tïy theo yªu cÇu mµ ta cã thÓ thªm, bít c¸c thiÕt bÞ ngo¹i vi cho phï hîp. M¸y tÝnh ho¹t ®éng dùa trªn nguyªn lý c¬ b¶n Von Neumann. C¸c lÖnh vµ d÷ liÖu cïng ®−îc l−u tr÷ trong bé nhí ®−îc t¹o bëi c¸c tõ ®Þa chØ dùa trªn 2 yÕu tè then chèt : + §iÒu khiÓn b»ng ch−¬ng tr×nh: M¸y tÝnh ho¹t ®éng theo sù chØ dÉn, ®iÒu khiÓn cña ch−¬ng tr×nh ®−îc l−u tr÷ trong bé nhí cña nã. C¸c b−íc t¸c ®éng ®−îc tiÕn hµnh theo c¸c c©u lÖnh cña ch−¬ng tr×nh. Ch−¬ng tr×nh chØ dÉn cho m¸y tÝnh biÕt ph¶i lµm g× vµ ph¶i lµm nh− thÕ nµo. + Truy xuÊt theo ®Þa chØ: D÷ liÖu theo nghÜa réng (d÷ liÖu vµo, kÕt qu¶ trung gian, kÕt qu¶ cuèi cïng, ch−¬ng tr×nh, d÷ liÖu ra, . . ) ®−îc l−u tr÷ trong RAM t¹i mét vïng nhí ®−îc ®Þnh vÞ b»ng c¸c sè thø tù ®−îc gäi lµ ®Þa chØ. D÷ liÖu ®−îc chØ ®Þnh vµ ®−îc truy cËp (®äc hay ghi) theo ®Þa chØ « nhí chøa chóng. 1.3. phÇn mÒm Trong tin häc, thuËt ng÷ phÇn mÒm ®−îc dïng ®Ó nãi vÒ c¸c ch−¬ng tr×nh dïng ®Ó ®iÒu khiÓn ho¹t ®éng cña m¸y tÝnh, xö lý d÷ liÖu phôc vô cho mét øng dông cô thÓ trong ho¹t ®éng kinh tÕ, s¶n xuÊt, kinh doanh, . . . VÝ dô: c¸c ch−¬ng tr×nh n¹p s½n trong ROM, c¸c ch−¬ng tr×nh phÇn mÒm do ng−êi lËp tr×nh viÕt. NÕu ta ®−a ra khái m¸y t×nh toµn bé c¸c ch−¬ng tr×nh n¹p s½n trong nã, kÓ c¶ c¸c ch−¬ng tr×nh ghi s½n trong ROM th× nh÷ng g× cßn l¹i ®−îc gäi lµ phÇn cøng cña m¸y tÝnh. Nh− vËy, thuËt ng÷ phÇn cøng ®−îc dïng ®Ó chØ linh kiÖn, chi tiÕt, thiÕt bÞ l¾p r¸p thµnh m¸y tÝnh. C¸c chuyªn gia phÇn cøng tËp trung vµo viÖc thu nhá kÝch th−íc, khèi l−îng c¸c linh kiÖn ®iÖn tö, c¬ khÝ, bé nhí nh»m lµm gi¶m n¨ng l−îng tiªu hao cho m¸y tÝnh, t¨ng kh¶ n¨ng l−u tr÷ vµ vËn tèc tÝnh to¸n. C¸c chuyªn gia phÇn mÒm tËp trung vµo viÖc x©y dùng ho¹t ®éng chÝnh x¸c, khoa häc vµ tiÖn lîi trªn c¬ së phÇn khai th¸c tèi ®a kh¶ n¨ng cña m¸y tÝnh phôc vô cho lîi Ých cña con ng−êi. Sù phèi hîp chÆt chÏ gi÷a hai lÜnh vùc phÇn cøng vµ phÇn mÒm lµ ®éng lùc thóc ®Èy sù ph¸t triÓn cña tin häc 3
  5. TS Mai Xu©n Tr−êng - Tr−êng §¹i häc S− ph¹m - §¹i häc Th¸i Nguyªn Ch−¬ng 2 : mét sè ng«n ng÷ lËp tr×nh 2.1. Më ®Çu C¸c ng«n ng÷ lËp tr×nh lµ ph−¬ng tiÖn giao tiÕp gi÷a ng−êi vµ m¸y tÝnh. Nh− ta ®· biÕt, muèn yªu cÇu m¸y tÝnh gi¶i mét bµi to¸n nµo ®ã, vÝ dô tÝnh gi¸ trÞ cña biÓu thøc a = (b + c).(d + e) hoÆc a = b + c.d + e chóng ta ph¶i viÕt mét ch−¬ng tr×nh quy ®Þnh thËt râ trËt tù thùc hiÖn c¸c thao t¸c ®Ó ®−îc kÕt qu¶ mong muèn. Nh− vËy ch−¬ng tr×nh m¸y tÝnh chÝnh lµ mét thuËt gi¶i ®−îc viÕt d−íi d¹ng mét quy ®Þnh b»ng mét ng«n ng÷. Ng«n ng÷ dïng ®Ó viÕt ch−¬ng tr×nh m¸y tÝnh ®−îc gäi lµ ng«n ng÷ lËp tr×nh. VÝ dô: §Ó tÝnh biÓu thøc a = (b + c).(d + e) th× qu¸ tr×nh thùc hiÖn viÖc tÝnh to¸n b»ng ch−¬ng tr×nh m¸y tÝnh nh− sau: B−íc 1. §äc gi¸ trÞ b ë b¶ng 1. B−íc 2: §äc gi¸ trÞ c ë b¶ng 2, céng b víi c. B−íc 3: Ghi gi¸ trÞ tæng (b + c) vµo b¶ng 5. B−íc 4: §äc gi¸ trÞ d ë b¶ng 3. B−íc 5: §äc gi¸ trÞ e ë b¶ng 4, céng d víi e. B−íc 6: Ghi gi¸ trÞ tæng (d + e) ra b¶ng 6. B−íc 7: lÊy gi¸ trÞ ë b¶ng 5 nh©n víi gi¸ trÞ ë b¶ng 6. B−íc 8: ghi gi¸ trÞ tÝch (b + c).(d + e) ra b¶ng 7 vµ g¸n cho gi¸ trÞ a. B−íc 9: ViÕt gi¸ trÞ a ë b¶ng 7. B−íc 10. Dõng ch−¬ng tr×nh. C¸c b¶ng 3, 4, 6, 7 cã thÓ dïng l¹i b¶ng 1, 2 b»ng c¸ch xãa ®i (ghi ®Ì lªn) sau khi ®· dïng xong. ThuËt gi¶i (c¸c b−íc) ë trªn chØ ®Ó con ng−êi thùc hiÖn, muèn cho m¸y tÝnh cã thÓ “hiÓu” vµ thùc hiÖn ®−îc ®óng ý ®å cña chóng ta cÇn ph¶i diÔn ®¹t thuËt gi¶i ®· cho d−íi mét d¹ng quy ®Þnh nµo ®ã. Mét trong sè c¸c d¹ng quy ®Þnh ®ã lµ hîp ng÷. Hîp ng÷ bao gåm tªn c¸c c©u lÖnh vµ c¸c quy t¾c viÕt c¸c c©u lÖnh ®Ó m¸y tÝnh hiÓu ®−îc. Tªn c¸c cÊu lÖnh th−êng ®−îc viÕt d−íi d¹ng tiÕng anh nh−: READ, WRITE, INPUT, ADD, PRINT, . . . 4
  6. TS Mai Xu©n Tr−êng - Tr−êng §¹i häc S− ph¹m - §¹i häc Th¸i Nguyªn Ngoµi ra nh− ta ®· biÕt, khi n¹p ch−¬ng tr×nh vµo bé nhí chóng ta ph¶i dµnh chç l−u tr÷ c¸c gi¸ trÞ cña sè liÖu. VÝ dô trªn lµ c¸c gi¸ trÞ: a, b, c, d, e. INPUT b (nhËp gi¸ trÞ b tõ bµn phÝm, ghi vµo « nhí 1) INPUT c (nhËp gi¸ trÞ c tõ bµn phÝm, ghi vµo « nhí 2) INPUT d (nhËp gi¸ trÞ d tõ bµn phÝm, ghi vµo « nhí 3) INPUT e (nhËp gi¸ trÞ e tõ bµn phÝm, ghi vµo « nhí 4) LOAD b (®äc b ë vµo « nhí 1) ADD c (céng c ë « nhí 2 vµo « nhí 1, kÕt qu¶ gi÷ ë « nhí 1) MOVE a (ghi kÕt qu¶ « nhí 1vµo « nhí 5) LOAD d (®äc d ë « nhí 3) ADD e (céng e ë « nhí 4 vµo « nhí 3, kÕt qu¶ gi÷ ë « nhí 3) MULT a (nh©n kÕt qu¶ « nhí 3 víi « nhí 5, kÕt qu¶ gi÷ ë « nhí 3) MOVE a (ghi kÕt qu¶ tõ « nhí 3 vµo « nhí 5) PRINT a (In « nhí 5 ra mµn h×nh hoÆc m¸y in) HALT (Dõng ch−¬ng tr×nh) Ch−¬ng tr×nh nµy ph¶i sö dông c¸c « nhí (b¶ng) ®Ó l−u gi÷ sè liÖu, cô thÓ lµ: 1 (« nhí dµnh cho a) 2 (« nhí dµnh cho b) 3 (« nhí dµnh cho c) 4 (« nhí dµnh cho d) 5 (« nhí dµnh cho e) Ch−¬ng tr×nh hîp ng÷ trªn nhËn c¸c gi¸ trÞ b, c, d, e do ng−êi sö dông nhËp tõ bµn phÝm cña m¸y tÝnh råi tÝnh vµ hiÓn thÞ gi¸ trÞ cña biÓu thøc ra mµn h×nh. Ng«n ng÷ m¸y: Sau khi n¹p ch−¬ng tr×nh hîp ng÷ trªn vµo m¸y tÝnh, trong m¸y sÏ diÔn ra hai qu¸ tr×nh sau ®©y: + DÞch ch−¬ng tr×nh hîp ng÷ sang mét ch−¬ng tr×nh viÕt b»ng ng«n ng÷ m¸y. + Thùc hiÖn ch−¬ng tr×nh ®· dÞch. 5
  7. TS Mai Xu©n Tr−êng - Tr−êng §¹i häc S− ph¹m - §¹i häc Th¸i Nguyªn T¹i sao l¹i ph¶i dÞch: V× m¸y tÝnh ®−îc thiÕt kÕ vµ lµm viÖc trªn c¬ së cña hÖ nhÞ ph©n. Ch−¬ng tr×nh viÕt b»ng ng«n ng÷ m¸y chØ chøa c¸c ký hiÖu 0 (®Ìn t¾t) vµ 1 (®Ìn s¸ng). ViÖc dÞch tõ ch−¬ng tr×nh hîp ng÷ sang ng«n ng÷ m¸y còng ®−îc c¸c nhµ thiÕt kÕ m¸y tÝnh chuÈn bÞ tr−íc vµ n¹p s½n trong m¸y. Khi dÞch, mçi c©u lÖnh cña hîp ng÷ sÏ ®−îc chuyÓn sang d¹ng ®Æc biÖt gäi lµ m· m¸y hay m· nhÞ ph©n. VÝ dô c©u lÖnh LOAD (®äc) sÏ ®−îc chuyÓn thµnh 0000, c©u lÖnh ADD (céng) sÏ ®−îc chuyÓn thµnh 0001. C¸c « nhí dµnh cho c¸c biÕn a, b, c, d, e sÏ ®−îc g¸n ®Þa chØ cña tõ øng víi chóng. VÝ dô biÕn a sÏ chiÕm vïng nhí b¾t ®Çu b»ng ®Þa chØ 00100000, biÕn b chiÕm ®Þa chØ 00100010, … Khi ®ã dßng c©u lÖnh hîp ng÷: LOAD a sÏ ®−îc dÞch thµnh: 0000 00100000. C¸c ng«n ng÷ lËp tr×nh bËc cao Cã thÓ viÕt trùc tiÕp ch−¬ng tr×nh b»ng ng«n ng÷ m¸y ®−îc kh«ng? Cã thÓ. Tuy nhiªn, nh− ta ®· thÊy viÖc lµm nµy rÊt vÊt v¶ vµ dÔ sinh lçi. C¸c nhµ lËp tr×nh dùa trªn nguyªn lý m¸y tÝnh ®−îc ®iÒu khiÓn b»ng ch−¬ng tr×nh ®Ó s¸ng t¹o ra c¸c ng«n ng÷ lËp tr×nh gÇn víi ng«n ng÷ tù nghiªn, phï hîp víi t©m lý vµ t− duy cña ng−êi lËp tr×nh ®Ó diÔn ®¹t c¸c thuËt to¸n ®−îc trong s¸ng vµ tù nhiªn. ViÖc ®Æt ra hîp ng÷ lµ mét cè g¾ng b−íc ®Çu gióp cho nh÷ng ng−êi lËp ch−¬ng tr×nh ®−îc thuËn tiÖn h¬n. C¸c c©u lÖnh cña hîp ng÷ ®−îc g¸n tªn kh¸ gÇn víi ng«n ng÷ tù nhiªn, viÖc dµnh vïng nhí cho c¸c biÕn ®−îc thùc hiÖn th«ng qua tªn biÕn. VËn dông t− t−ëng dÞch tõ ng«n ng÷ nµy sang ng«n ng÷ kh¸c, c¸c nhµ tin häc ®· s¸ng t¹o ra nh÷ng ng«n ng÷ lËp kh¸c nhau thuËn tiÖn h¬n n÷a víi c¸c −u ®iÓm sau: + C¸c c©u lÖnh cña ng«n ng÷ lËp tr×nh gÇn víi ng«n ng÷ tù nghiªn. + Tïy theo lÜnh vùc øng dông mµ c¸c ng«n ng÷ lËp tr×nh míi nµy cung cÊp c¸c ph−¬ng tiÖn trî gióp ®Ó gi¶i c¸c bµi to¸n khoa häc, kü thuËt hoÆc qu¶n lý. Ng−êi ta gäi c¸c ng«n ng÷ nãi trªn lµ c¸c ng«n ng÷ lËp tr×nh bËc cao ®Ó ph©n biÖt víi c¸c ng«n ng÷ lËp tr×nh bËc thÊp lµ hîp ng÷ vµ ng«n ng÷ m¸y. 6
  8. TS Mai Xu©n Tr−êng - Tr−êng §¹i häc S− ph¹m - §¹i häc Th¸i Nguyªn Qu¸ tr×nh gi¶i c¸c bµi to¸n nhê sù gióp ®ì cña m¸y tÝnh bao gåm c¸c giai ®o¹n sau: Giai ®äan 1: T×m hiÓu bµi to¸n bao gåm viÖc x¸c ®Þnh gi¶ thiÕt, c¸c yªu cÇu cÇn ph¶i thùc hiÖn, môc ®Ých cÇn ph¶i ®¹t. Giai ®o¹n 2: X¸c ®Þnh thuËt gi¶i ®Ó gi¶i bµi to¸n ®· cho. Giai ®o¹n 3: LËp tr×nh: sö dông mét ng«n ng÷ bËc cao ®Ó diÔn ®¹t thuËt gi¶i. Giai ®o¹n 4: Sö dông mét hÖ trî gióp, th«ng qua viÖc bÊm c¸c phÝm thÝch hîp trªn bµn phÝm ®Ó nhËp ch−¬ng tr×nh vµo m¸y tÝnh. Giai ®o¹n 5: Yªu cÇu m¸y dÞch ch−¬ng tr×nh ®· n¹p sang ng«n ng÷ bËc thÊp (ng«n ng÷ m¸y). Giai ®o¹n 6: Yªu cÇu m¸y thùc hiÖn ch−¬ng tr×nh ®· dÞch. NÕu t¹i mét giai ®o¹n nµo ®ã ta ph¸t hiÖn ra sai sãt th× cÇn quay l¹i giai ®o¹n tr−íc ®ã ®Ó söa lçi råi thùc hiÖn l¹i mét sè giai ®o¹n cÇn thiÕt cho tíi khi thu ®−îc kÕt qu¶ mong muèn. Ch−¬ng tr×nh dÞch Trong c¸c ng«n ng÷ bËc thÊp th× ng«n ng÷ m¸y cã bËc thÊp nhÊt. CÇn nhí lµ m¸y tÝnh chØ lµm viÖc víi ng«n ng÷ m¸y. ViÖc dÞch mét ch−¬ng tr×nh viÕt b»ng ng«n ng÷ bËc cao sang ng«n ng÷ m¸y do mét ch−¬ng tr×nh ®Æc biÖt ®¶m nhËn gäi lµ ch−¬ng tr×nh dÞch. Ch−¬ng tr×nh dÞch thùc hiÖn chøc n¨ng sau ®©y: + DuyÖt ch−¬ng tr×nh nguån ®Ó ph¸t hiÖn vµ th«ng b¸o c¸c lèi có ph¸p tøc lµ nh÷ng lçi do ng−êi lËp tr×nh viÕt sai. + Trong tr−êng hîp ch−¬ng tr×nh dÞch kh«ng ph¸t hiÖn thÊy lçi trong ch−¬ng tr×nh nguån nã sÏ dÞch ch−¬ng tr×nh nguån thµnh ch−¬ng tr×nh viÕt trªn ng«n ng÷ m¸y gäi lµ ch−¬ng tr×nh ®Ých. 2.2. Ng«n ng÷ BAssic Ng«n ng÷ BASIC (Beginers All purpose Symbolic Instruction ®o¹n ch−¬ng tr×nh - th«ng dÞch) do Kemeny vµ Kuzt s¸ng lËp ra vµo n¨m 1965. §−îc dïng nh− lµ mét ng«n ng÷ khëi ®Çu cho viÖc lËp tr×nh. HiÖn ®−îc cµi ®Æt vµ phæ 7
  9. TS Mai Xu©n Tr−êng - Tr−êng §¹i häc S− ph¹m - §¹i häc Th¸i Nguyªn biÕn nhÊt trªn m¸y tÝnh IBM vµ t−¬ng thÝch. Xu h−íng hiÖn nay lµ cÊu tróc hãa ng«n ng÷ nµy vµ tiÕp cËn dÇn víi PASCAL. Mét tiªu chuÈn míi ®· ®−îc t¸c gi¶ so¹n ra víi tªn TRUE BASIC. 2.3. Ng«n ng÷ PASCAL Do tÝnh t−êng minh vÒ cÊu tróc nªn PASCAL rÊt thÝch hîp cho viÖc gi¶ng d¹y c¬ së lËp tr×nh, ®Æc biÖt ®èi víi nh÷ng ng−êi kh«ng chuyªn tin. B¹n ®äc cã thÓ ®äc rÊt nhiÒu gi¸o tr×nh kh¸c nhau vÒ PASCAL c¬ b¶n (vÝ dô Qu¸ch TuÊn Ngäc Ng«n ng÷ lËp tr×nh PASCAL). T− liÖu §äc thªm Ng«n ng÷ PASCAL lµ ng«n ng÷ lËp tr×nh bËc cao do gi¸o s− Niklaus Wirth (tr−êng ®¹i häc kü thuËt Zurich - Thôy SÜ) s¸ng lËp vµ c«ng bè vµo ®Çu nh÷ng n¨m 1970, tªn PASCAL ®Ó kû niÖm nhµ to¸n häc ng−êi Ph¸p Blaisse PASCAL ë thÕ ký 17. Lóc ®Çu, PASCAL ®−îc s¸ng t¸c víi môc ®Ých lµm ng«n ng÷ cho m¸y tÝnh ®Ó d¹y häc cho sinh viªn ë c¸c tr−êng ®¹i häc: nã gióp cho sinh viªn còng nh− ng−êi míi häc lËp tr×nh cã ®−îc thãi quen viÕt mét ch−¬ng tr×nh cã cÊu tróc s¸ng sña, râ rµng, dÔ hiÓu vµ dÔ ®äc cho c¶ mäi ng−êi kh¸c. Tr−íc khi cã PASCAL, c¸c sinh viªn ®Òu ®−îc häc ng«n ng÷ lËp tr×nh FORTRAN, mét ng«n ng÷ l©u ®êi nhÊt vµ lµ ng«n ng÷ kh«ng cã cÊu tróc. Gi¸o s− Wirth thÊy r»ng cã thÓ tr¸nh ®−îc rÊt nhiÒu lçi khi lËp tr×nh víi mét ng«n ng÷ cÊu tróc khèi vµ cã sù kiÓm tra kü l−ìng sù t−¬ng thÝch gi÷a c¸c d÷ liÖu. PASCAL lµ mét ng«n ng÷ cã ®Þnh kiÓu m¹nh mÏ, cã nghÜa lµ mäi biÕn vµ h»ng cña mét kiÓu d÷ liÖu kh«ng thÓ tù do ®em trén lÉn víi c¸c biÕn vµ h»ng cña mét kiÓu d÷ liÖu kh¸c. VÝ dô c¶ hai vÕ phÐp g¸n ph¶i lµ cïng mét kiÓu, ngo¹i trõ tr−êng hîp vÕ tr¸i lµ mét biÕn sè thùc (real) cßn vÕ ph¶i cã thÓ lµ sè nguyªn (integer). ViÖc ®Þnh kiÓu mét c¸ch chÆt chÏ nh− vËy b¾t buéc ng−êi lËp tr×nh lu«n lu«n ph¶i cã c¸c biÓu thøc t−¬ng thÝch nhau vÒ kiÓu d÷ liÖu. PASCAL lµ mét ng«n ng÷ cã cÊu tróc. Mét ng«n ng÷ cã cÊu tróc khèi lµ ng«n ng÷ mµ ta cã thÓ t¸ch c¸c th«ng tin d÷ liÖu (biÕn, h»ng, . . .) vµ c¸c lÖnh cÇn dïng cho mét nhiÖm vô x¸c ®Þnh thµnh nh÷ng khèi riªng, t¸ch ra khái phÇn cßn l¹i cña ch−¬ng tr×nh ®Ó ng−êi lËp tr×nh cã thÓ gi¶i quyÕt dÇn tõng phÇn mét, tõng khèi mét thËm trÝ cã thÓ cho nhiÒu ng−êi cïng tham gia lËp tr×nh, mçi ng−êi phô tr¸ch mét vµi khèi. Th«ng th−êng c¸c khèi øng víi c¸c nhiÖm vô cô thÓ vµ x¸c ®Þnh, ®−îc thùc hiÖn b»ng c¸c ch−¬ng tr×nh con víi c¸c biÕn ®Þa ph−¬ng lµ c¸c biÕn t¹m thêi cña ch−¬ng tr×nh con ®ã. B»ng c¸ch nµy ta cã thÓ viÕt c¸c ch−¬ng tr×nh con sao cho c¸c sù kiÖn x¶y ra trong ®ã kh«ng lµm ¶nh h−ëng tíi c¸c phÇn kh¸c cña ch−¬ng tr×nh n»m ngoµi ch−¬ng tr×nh con. Cã thÓ nãi tÝnh cÊu tróc cña ch−¬ng tr×nh PASCAL ®−îc thÓ hiÖn trªn 3 mÆt. + CÊu tróc vÒ mÆt d÷ liÖu: tõ c¸c d÷ liÖu ®· cã (kiÓu ®¬n gi¶n hoÆc d÷ liÖu cÊu tróc) ta cã thÓ x©y dùng c¸c cÊu tróc d÷ liÖu phøc t¹p h¬n. + CÊu tróc vÒ mÆt lÖnh: Tõ c¸c lÖnh ®· cã (lÖnh ®¬n gi¶n hoÆc lÖnh cã cÊu tróc) ta cã thÓ nhãm chóng l¹i víi nhau vµ ®Æt gi÷a hai tõ khãa BEGIN vµ END thµnh c©u lÖnh phøc t¹p h¬n, gäi lµ lÖnh hîp thµnh hay lÖnh ghÐp. 8
  10. TS Mai Xu©n Tr−êng - Tr−êng §¹i häc S− ph¹m - §¹i häc Th¸i Nguyªn + CÊu tróc vÒ mÆt ch−¬ng tr×nh: Mét ch−¬ng tr×nh cã thÓ chia thµnh c¸c modun ch−¬ng tr×nh ®éc lËp (ch−¬ng tr×nh con). Bé ch÷ viÕt cña PASCAL Ng«n ng÷ PASCAl ®−îc x©y dùng víi bé ch÷ viÕt sau: Bé 26 ch÷ c¸i la tinh: 26 ch÷ c¸i in hoa A, B, C, . . . ,Z 26 ch÷ c¸i th−êng a, b, c, . . . , z Ký tù g¹ch nèi ”_”. C¸c ch÷ sè thËp ph©n: 0, 1, 2, . . ., 9 C¸c ký hiÖu to¸n häc th«ng th−êng +, -, *, /, =, , (), … C¸c ký hiÖu ®Æc biÖt nh− c¸c dÊu chÊm c©u vµ c¸c dÊu kh¸c: .,; :[]?%\⏐!&#$’ DÊu c¸ch (Space) ®−îc dïng ®Ó ng¨n c¸ch c¸c tõ. V× khi viÕt nã kh«ng hiÖn ra ch÷ g× nªn ®Ó tiÖn nhËn biÕt trong mét sè tr−êng hîp nh− cÇn ®Õm sè dÊu c¸ch, trong tµi liÖu th−êng dïng dÊu . Tõ vùng cña PASCAL gåm mét sè tõ riªng PASCAL ®−îc gäi lµ tõ khãa (key word). C¸c tõ khãa nµy ng−êi sö dông ph¶i dïng ®óng víi có ph¸p, kh«ng ®−îc dïng nã vµo viÖc kh¸c hoÆc ®Æt tªn míi trïng víi c¸c tõ khãa. §ã lµ c¸c tõ: Tõ khãa chung: PROGRAM, BEGIN, END, PROCEDURE, FUNCTION Tõ khãa ®Ó khai b¸o: CONST, VAR, LABEL, TYPE, ARRAY, STRING, RECORD, SET, FILE, OF Tõ khãa cña lÖnh thö vµ rÏ nh¸nh: IF . . . THEN . . . ELSE. . ., CASE . . . OF. . . Tõ khãa cña lÖnh lÆp: FOR . . . TO . . DO . . . , FOR. . . DOWNTO . . . DO. . . , WHILE. . . DO. . . , REPEAT. . . UNTIL. . . Tõ khãa ®iÒu khiÓn: WITH, GO TO. Tõ khãa to¸n tö: AND, OR, NOT, IN, DIV, MOD Tõ khãa NUL: NUL C¸c tõ khãa nµy cã thÓ viÕt in hay viÕt th−êng, gi¸ trÞ vµ ý nghÜa cña c¸c tõ khãa kh«ng thay ®æi. Tªn hay ®Þnh danh (identifier) Tªn hoÆc ®Þnh danh lµ mét d·y ký tù (kh«ng cã dÊu c¸ch) ®−îc dïng ®Ó chØ tªn h»ng sè, tªn h»ng ký tù, tªn biÕn, tªn kiÓu, tªn ch−¬ng tr×nh, . . . Tªn ®−îc t¹o thµnh tõ c¸c ch÷ c¸i vµ ch÷ sè song b¾t buéc ch÷ ®Çu ph¶i lµ ch÷ c¸i. TÊt nhiªn ta ph¶i ®Æt tªn sao cho cã ý nghÜa, dÔ nhí. §Ó lµm s¸ng sña tªn, PASCAL cho phÐp dïng dÊu g¹ch d−íi "_" khi viÕt tªn. Mét sè tªn nh− tªn cña ch−¬ng tr×nh con (SIN , COS, . . . ) ®· ®−îc PASCAL ®Þnh nghÜa s½n ®−îc gäi lµ tªn chuÈn hay tªn ®· ®−îc ®Þnh nghÜa. Sù kh¸c nhau gi÷a tªn chuÈn vµ tõ khãa lµ ng−êi sö dông cã thÓ ®Þnh nghÜa l¹i tªn chuÈn, dïng tªn chuÈn vµo viÖc kh¸c nÕu muèn cßn tõ khãa th× bÞ nghiªm cÊm dïng vµo viÖc kh¸c tr¸i quy ®Þnh. Mét sè tªn chuÈn cña PASCAL: BOOLEAN, CHAR, INTEGER, REAL, BYTE, TEXT, FALSE, TRUE, MAXINT, ABS, ARCTAN, CHR, COS, SIN, EOF, EOLN, EXP, LN, ODD, ORD, ROUND, TRUNC, SQR, PRED, SUCC,DISPOSE, NEW, GET, PUT, READ, READLN, WRITE, WRITELN, RESET, REWRITE. DÊu chÊm phÈy “;” dïng ®Ó ng¨n c¸ch c¸c c©u lÖnh cña PASCAL vµ kh«ng thÓ thiÕu ®−îc. Kh«ng nªn hiÓu dÊu “;” lµ kÕt thóc cÊu lÖnh. 9
  11. TS Mai Xu©n Tr−êng - Tr−êng §¹i häc S− ph¹m - §¹i häc Th¸i Nguyªn Lêi gi¶i thÝch (Comment) cã thÓ ®Ó bÊt kú chç nµo cña ch−¬ng tr×nh cho dÔ hiÓu, dÔ ®äc h¬n mµ kh«ng lµm ¶nh h−ëng ®Õn c¸c phÇn kh¸c. Lêi gi¶i thÝch ®−îc ®Æt gi÷a hai dÊu { } hoÆc (**) : { lêi gi¶i thÝch } hoÆc gi÷a côm dÊu (* lêi gi¶i thÝch *). Do cã rÊt nhiÒu tµi liÖu vÒ PASCAL vµ còng do khu«n khæ cña gi¸o tr×nh nµy nªn chóng t«i chØ tr×nh bµy nh÷ng kh¸i niÖm c¬ b¶n nhÊt vÒ PASCAL ®Ó ng−êi ®äc cã thÓ hiÓu vµ lËp tr×nh ®−îc nh÷ng ch−¬ng tr×nh ®¬n gi¶n. 2.3.1. CÊu tróc ch−¬ng tr×nh PASCAL Mét tËp c¸c c©u lÖnh t¹o thµnh mét ch−¬ng tr×nh. LÖnh cßn ®−îc gäi lµ chØ thÞ dïng ®Ó h−íng dÉn m¸y tÝnh lµm viÖc. CÊu tróc cña mét ch−¬ng tr×nh PASCAL hîp thµnh bëi c¸c phÇn sau: ®Çu ch−¬ng tr×nh, m« t¶, th©n ch−¬ng tr×nh vµ kÕt thóc. §Çu ch−¬ng tr×nh PhÇn ®Çu cña ch−¬ng tr×nh bao gåm: PROGRAM tªn ch−¬ng tr×nh; Trong ®ã tªn ch−¬ng tr×nh kh«ng ®−îc cã dÊu c¸ch vµ c¸c ký tù ®Æc biÖt, kh«ng ®−îc dïng c¸c to¸n tö ®Ó ®Æt tªn ch−¬ng tr×nh, . . . kÕt thóc tªn ch−¬ng tr×nh lµ dÊu “;”. VÝ dô: PROGRAM GIAI_PHUONG_TRINH_BAC_2; PhÇn m« t¶ PhÇn m« t¶ cã thÓ gåm cã 5 phÇn: m« t¶ nh·n (®Þa chØ), h»ng, kiÓu, biÕn, thñ tôc vµ hµm (ch−¬ng tr×nh con). M« t¶ nh·n (®Þa chØ) Nh·n lµ mét sè nguyªn d−¬ng cã ≤ 4 ch÷ sè. M« t¶ nh·n liÖt kª tÊt c¶ c¸c nh·n sö dông trong ch−¬ng tr×nh vµ dïng ®Ó ®Þnh vÞ c¸c to¸n tö khi cÇn ®iÒu khiÓn ch−¬ng tr×nh ho¹t ®éng ngoµi quy t¾c th«ng th−êng (tõ trªn xuèng d−íi). C¸ch m« t¶ : LABEL sè nguyªn; VÝ dô: LABEL 10, 20, 123; m« t¶ 3 nh·n dïng trong khèi. 10
  12. TS Mai Xu©n Tr−êng - Tr−êng §¹i häc S− ph¹m - §¹i häc Th¸i Nguyªn X¸c ®Þnh h»ng C¸c h»ng cã gi¸ trÞ kh«ng ®æi trong suèt qu¸ tr×nh thùc hiÖn ch−¬ng tr×nh. Bëi vËy kh«ng ®−îc phÐp dïng 1 lÖnh nµo ®Ó thay ®æi gi¸ trÞ cña h»ng. C¸ch x¸c ®Þnh: CONST tªn h»ng 1 = gÝa trÞ h»ng 1; tªn h»ng 2 = gÝa trÞ h»ng 2; VÝ dô: CONST Pi = 3.141598; ch= ' gia tri tich phan'; X¸c ®Þnh kiÓu (TYPE) TYPE dïng ®Ó x¸c ®Þnh c¸c kiÓu d÷ liÖu míi so víi 4 kiÓu ®· cã cña PASCAL (Integer, Real, Char, Boolean). C¸ch x¸c ®Þnh : TYPE Tªn kiÓu 1 = ( phæ c¸c gi¸ trÞ cña kiÓu 1); Tªn kiÓu 2 = ( phæ c¸c gi¸ trÞ cña kiÓu 2); VÝ dô: TYPE city = (HANOI,TOKYO, MOSCOW, PARIS); color = (xanh, do, trang,tim,vang); Víi c¸c kiÓu nµy cã thÓ dïng c¸c hµm chuÈn ORD, PRED, SUCC. Sau khi khai b¸o kiÓu th× khi m« t¶ biÕn cÇn chØ râ biÕn nµo thuéc kiÓu ®· ®−îc m« t¶. M« t¶ biÕn Nguyªn t¾c rÊt c¬ b¶n cña PASCAL lµ trong ch−¬ng tr×nh dïng biÕn nµo ph¶i m« t¶ biÕn ®ã. Kh¸c víi mét sè ng«n ng÷ kh¸c, PASCAL kh«ng cã c¸c biÕn mÆc ®Þnh. C¸ch m« t¶: VAR tªn biÕn 1, tªn biÕn 2 ... : kiÓu 1; tªn biÕn 3, tªn biÕn 4 ... : kiÓu 2; VÝ dô: VAR m,n : integer; ch : char; x,y : real; j : boolean; h : city; chØ ra m, n, ch, x, y, j, h : lµ c¸c biÕn, trong ®ã: m, n lµ kiÓu nguyªn, x, y lµ thùc, ch lµ kÝ tù, j lµ logic vµ h lµ kiÓu city (®· ®−îc ®Þnh nghÜa trong TYPE). 11
  13. TS Mai Xu©n Tr−êng - Tr−êng §¹i häc S− ph¹m - §¹i häc Th¸i Nguyªn M¶ng §Ó cã thÓ truy nhËp th«ng tin vµ sö dông c¸c phÇn tö trong d·y sè PASCAL ®−a vµo kh¸i niÖm m¶ng. M¶ng lµ mét kiÓu biÕn (hoÆc h»ng) cã chØ sè dïng ®Ó chØ thø tù cña phÇn tö ®ã trong d·y sè. C¸ch m« t¶ m¶ng 1 chiÒu: tªn biÕn 1, tªn biÕn 2, ... : ARRAY [1..n] of kiÓu biÕn; tªn biÕn 3, tªn biÕn 4, ... : ARRAY [1..m] of kiÓu biÕn; hoÆc khai b¸o theo kiÓu (TYPE) råi sau ®ã míi khai b¸o biÕn nh− sau: TYPE Mang1 = array [1..n] of kiÓu biÕn; Mang2 = array [1..m] of kiÓu biÕn; VAR tªn biÕn 1, tªn biÕn 2,...: Mang1; tªn biÕn 3, tªn biÕn 4,... : Mang2 ; VÝ dô d·y sè d−íi ®©y : x 1 2 3 4 5 ... n y 12 3 5 10 9 ... 1 Khai b¸o biÕn x vµ y lµ biÕn sè thùc theo kiÓu m¶ng nh− sau: x,y: array[1..n] of real; hoÆc khai b¸o th«ng qua viÖc x¸c ®Þnh tr−íc mét kiÓu biÕn míi TYPE M1=array[1..10] of real; VAR X,y: M1; C¸ch thø hai phæ biÕn h¬n khi chóng ta ph¶i sö dông c¸c ch−¬ng tr×nh con cã c¸c biÕn h×nh thøc lµ c¸c m¶ng (xem phÇn sau). Trong c¸c tÝnh to¸n, c¸c phÇn tö cña m¶ng ®ãng vai trß nh− c¸c biÕn ®¬n. Ngoµi m¶ng mét chiÒu cßn cã c¸c m¶ng hai vµ ba chiÒu: C¸ch m« t¶ m¶ng 2 chiÒu: tªn biÕn 1, tªn biÕn 2, ... : ARRAY [1..n, 1..m] of kiÓu biÕn; hoÆc khai b¸o theo kiÓu (TYPE) råi sau ®ã míi khai b¸o biÕn nh− sau: 12
  14. TS Mai Xu©n Tr−êng - Tr−êng §¹i häc S− ph¹m - §¹i häc Th¸i Nguyªn TYPE Mang1=array[1..n, 1..m] of kiÓu biÕn; VAR tªn biÕn 1, tªn biÕn 2,...: Mang1; T−¬ng tù ta cã c¸ch m« t¶ m¶ng 3 chiÒu: tªn biÕn 1, tªn biÕn 2, ... : ARRAY [1..n, 1..m,1..k] of kiÓu biÕn; PhÇn th©n ch−¬ng tr×nh Th©n ch−¬ng tr×nh bao gåm c¸c to¸n tö (cßn gäi lµ c¸c c©u lÖnh hoÆc chØ thÞ) ®Ó thùc hiÖn c«ng viÖc chñ yÕu cña ch−¬ng tr×nh vµ ®−îc ®Æt sau tõ khãa: BEGIN PhÇn kÕt thóc PhÇn kÕt thóc bao gåm tËp hîp lÖnh READLN; END. Víi mét sè phiªn b¶n cña ch−¬ng tr×nh dÞch PASCAL c©u lÖnh READLN kh«ng nhÊt thiÕt ph¶i cã. 2.3.2. C¸c to¸n tö To¸n tö g¸n To¸n tö g¸n cã d¹ng tæng qu¸t : Tªn biÕn := biÓu thøc hoÆc biÕn hoÆc h»ng; Khi gÆp lÖnh nµy kÕt qu¶ tÝnh to¸n cña biÓu thøc vÕ ph¶i hoÆc gi¸ trÞ biÕn, h»ng vÕ ph¶i ®−îc g¸n cho biÕn vÕ tr¸i. VÝ dô: Sau ®©y lµ mét ®o¹n ch−¬ng tr×nh cã chøa c¸c lÖnh g¸n W1 := a*2; W2 := b*2; y := sin(W1 + W2); W1 := W1 + ln(y); W2 := W2 + y ; y := (W1 + W2)/(W1 + SQRT(W2)); To¸n tö chuyÓn (GOTO) D¹ng tæng qu¸t GOTO nh·n; D−íi t¸c ®éng cña to¸n tö nµy ch−¬ng tr×nh chuyÓn ®Õn nh·n (®· ®−îc x¸c ®Þnh b»ng LABEL). 13
  15. TS Mai Xu©n Tr−êng - Tr−êng §¹i häc S− ph¹m - §¹i häc Th¸i Nguyªn VÝ dô: LABEL 10; ......... GOTO 10; ......... 10: x2 := x1; To¸n tö xuÊt nhËp Cã hai c¸ch nhËp d÷ liÖu PASCAL. NhËp qua bµn phÝm vµ nhËp tõ tÖp d÷ liÖu. ViÖc nhËp tõ tÖp sÏ ®−îc tr×nh bµy kü trong häc phÇn dµnh cho cao häc. D−íi ®©y lµ c¸ch nhËp tõ bµn phÝm. Bao giê còng cã hai c©u lÖnh ®i kÌm. C©u lÖnh viÕt WRITE ®Ó th«ng b¸o nhu cÇu nhËp liÖu, sau ®ã lµ c©u lÖnh ®äc READ. C¸ch m« t¶: WRITE(‘Th«ng b¸o’ hoÆc biÕn); READ(biÕn); Liªn quan ®Õn con trá trªn mµn h×nh, nÕu sau khi viÕt th«ng b¸o hoÆc biÕn, nhËp d÷ liÖu, b¹n muèn con trá xuèng hµng th× m« t¶ nh− sau WRITELN(‘Th«ng b¸o’ hoÆc biÕn); READLN(biÕn); VÝ dô ®Ó nhËp ba hÖ sè cña ph−¬ng tr×nh bËc hai a,b,c ta cÇn hai c©u lÖnh sau: Write(‘ nhap a, b, c: ’ ); Read(a,b,c); NÕu sau khi nhËp d÷ liÖu, b¹n muèn con trá xuèng hµng th× viÕt Write(‘ nhap a, b, c :’ ); Readln(a,b,c); VÒ c¬ b¶n PASCAL dïng hai kiÓu viÕt: ®Þnh khu«n vµ kh«ng ®Þnh khu«n. Theo kiÓu kh«ng ®Þnh khu«n th× khi viÕt ra mµn h×nh, c¸c biÕn sÏ ®−îc bè trÝ theo kiÓu mÆc ®Þnh sè cét dµnh cho mçi biÕn hoÆc h»ng vµ c¸c biÕn thùc sÏ ®−îc viÕt d−íi d¹ng dÊu ph¶y di ®éng. 14
  16. TS Mai Xu©n Tr−êng - Tr−êng §¹i häc S− ph¹m - §¹i häc Th¸i Nguyªn VÝ dô: Write(a,b,c); sÏ cho ra mµn h×nh 1.2345678+01 3.00000000+02 -7.0001111-03 Trong tr−êng hîp ®Þnh khu«n chóng ta dïng c¸c sè sau dÊu “:” ®Ó m« t¶ sè cét trªn mµn h×nh dµnh cho viÖc viÕt biÕn hoÆc h»ng tr−íc ®ã. Riªng víi c¸c sè thËp ph©n kiÓu dÊu ph¶y cè ®Þnh cã thªm sè thø hai sau dÊu ‘”:” thø hai chØ sè sè thËp ph©n sau dÊu ph¶y. VÝ dô: Write (a:10, b:10:2, c:10:4); sÏ cho ra mµn h×nh 1.23456+01 300.00 -0.0070 §Þnh khu«n còng dïng cho c¸c biÕn nguyªn, biÕn ký tù, biÕn dßng vµ c¸c kiÓu biÕn kh¸c theo nguyªn t¾c trªn. §Þnh khu«n liªn quan chñ yÕu ®Õn c¸ch tr×nh bµy mµn h×nh sao cho ®Ñp, dÔ ®äc vµ râ rµng. Víi tÊt c¶ c¸c ®iÒu võa tr×nh bµy ë trªn chóng ta ®· cã thÓ viÕt mét ch−¬ng tr×nh PASCAL hoµn chØnh, vÝ dô ®Ó tÝnh tÝch cña hai sè a vµ b, tøc lµ S = a . b. VÝ dô: Program nhan; Var A,B,S : real; BEGIN Write(‘ nhap A va B : ‘); readln(A, B); S:=A*B; Writeln(‘ Tich S = ‘, S:10:4); Readln; END. To¸n tö ®iÒu khiÓn To¸n tö ®iÒu khiÓn cña PASCAL cã 2 vÕ: IF THEN ELSE ; NÕu ®iÒu kiÖn logic sau IF ®−îc tho¶ m·n th× thùc hiÖn c©u lÖnh 1 sau THEN. NÕu kh«ng th× thùc hiÖn c©u lÖnh 2 sau ELSE. 15
  17. TS Mai Xu©n Tr−êng - Tr−êng §¹i häc S− ph¹m - §¹i häc Th¸i Nguyªn VÝ dô: If (i=k) then a:=b else a:=d; Trong tr−êng hîp ®¬n gi¶n nhÊt ta chØ cÇn ®Õn vÕ ®Çu: IF THEN ; NÕu ®iÒu kiÖn logic sau IF tho¶ m·n th× thùc hiÖn c©u lÖnh 1 sau THEN. VÝ dô: If (i=k) then a:=b; Trong nh÷ng tr−êng hîp phøc t¹p, sau THEN vµ ELSE chóng ta cã thÓ ph¶i thùc hiÖn nhiÒu c©u lÖnh, khi ®ã ph¶i dïng c¸c to¸n tö hîp thµnh b¾t ®Çu b»ng BEGIN vµ kÕt thóc b»ng END. IF THEN BEGIN C©u lÖnh 1;. . .; C©u lÖnh n; END ELSE BEGIN C©u lÖnh 2; ...; C©u lÖnh m; END; Chó ý lµ c©u lÖnh tr−íc ELSE kh«ng cã dÊu “;”. D−íi ®©y lµ vÝ dô ®o¹n ch−¬ng tr×nh sö dông to¸n tö IF … THEN. VÝ dô 1: Gi¶i ph−¬ng tr×nh bËc hai: … If (delta>=0) then Begin x1:= (- b + sqrt(delta))/2/a; x2:= (- b - sqrt(delta))/2/a; End Else 16
  18. TS Mai Xu©n Tr−êng - Tr−êng §¹i häc S− ph¹m - §¹i häc Th¸i Nguyªn Begin AA: = -b/2/a; { phÇn thùc cña nghiÖm phøc } BB:= sqrt(-delta)/2/a; { phÇn ¶o cña nghiÖm phøc } End; … VÝ dô2: TÝnh tæng n sè nguyªn ®Çu tiªn … i:=1; sum:=0; 1: sum:=sum+i; i:=i+1; If (i
  19. TS Mai Xu©n Tr−êng - Tr−êng §¹i häc S− ph¹m - §¹i häc Th¸i Nguyªn sum2:=0; 1: if (i mod 2 =0) then sum1:=sum1+a[i] else sum2:=sum2+a[i]; i:=i+1; if i
  20. TS Mai Xu©n Tr−êng - Tr−êng §¹i häc S− ph¹m - §¹i häc Th¸i Nguyªn HiÖn nay, cã nhiÒu d¹ng FORTRAN kh¸c nhau dùa trªn FORTRAN c¬ së (Basic FORTRAN). FORTRAN chuÈn (standard FORTRAN) Tõ phiªn b¶n thø 7 trë ®i ng«n ng÷ FORTRAN ®−îc ký hiÖu lµ “Fortran” (Fortran 90). HiÖn nay ®· cã phiªn b¶n 9 (Fortran 2003) vµ phiªn b¶n 10 (Fortran 2008). ë ®©y, chóng t«i chØ giíi thiÖu nh÷ng nÐt, nh÷ng kh¸i niÖm c¬ b¶n chung nhÊt ®Ó ng−êi häc cã thÓ n¾m ®−îc c¬ së cña ng«n ng÷ vµ lËp ®−îc nh÷ng ch−¬ng tr×nh kh«ng phøc t¹p (vÒ mÆt ng«n ng÷ vµ kü thuËt lËp tr×nh mµ kh«ng ®Ò cËp ®Õn tÝnh phøc t¹p vÒ mÆt chuyªn m«n) vµ kh«ng dïng bé nhí phô. Muèn lËp ch−¬ng tr×nh b»ng ng«n ng÷ FORTRAN, ph¶i ®äc tµi liÖu h−íng dÉn ®Ó biÕt ®Æc ®iÓm, nh÷ng h¹n chÕ hay më réng cña d¹ng FORTRAN, thñ tôc ®−a dÞch vµ cho thùc hiÖn ch−¬ng tr×nh nh− thÕ nµo. Chõng nµo cµng ®i s©u vµo gi¶i quyÕt c¸c bµi to¸n thùc tiÔn ta míi cµng thÊy kiÕn thøc ®· häc lµ ch−a ®Çy ®ñ, míi thÊy cÇn bæ sung nh÷ng g×, vµ thÊy râ thªm mÆt m¹nh vµ mÆt yÕu cña tõng lo¹i ng«n ng÷. Quy m« bµi to¸n t¨ng lªn th× khã kh¨n còng gÊp béi, bÊy giê míi thÊy yªu cÇu bøc thiÕt vÒ thuËt to¸n, ng«n ng÷, cÊu tróc d÷ liÖu vµ cÊu tróc ch−¬ng tr×nh vµ míi cã h−íng ®Ó tù bæ sung thªm. 2.4.2. ChØ thÞ vµ th«ng b¸o Ch−¬ng tr×nh FORTRAN lµ mét d·y c¸c c©u lÖnh thuéc 2 lo¹i: ChØ thÞ hay th«ng b¸o. Ch−¬ng tr×nh lµ sù kÕt hîp gi÷a thuËt to¸n vµ d÷ liÖu. Nã gåm mét mÆt lµ c¸c th«ng b¸o ®Ó m« t¶ d÷ liÖu vµ mét mÆt lµ c¸c chØ thÞ ®Ó thùc hiÖn c¸c sù t¸c ®éng lªn d÷ liÖu ®ã theo mét thuËt to¸n (gi¶i thuËt) cho bµi to¸n. ChØ thÞ (Statement) lµ c¸c c©u lÖnh ®−îc thùc hiÖn vµ sÏ ®−îc ch−¬ng tr×nh dÞch biÕn thµnh d·y lÖnh m¸y trong ch−¬ng tr×nh ®Ých. ChØ thÞ cã thÓ thùc hiÖn lµ: - Vµo/ ra d÷ liÖu. - Trao ®æi th«ng tin gi÷a c¸c phÇn cña ch−¬ng tr×nh, gi÷a bé nhí trong vµ bé nhí ngoµi, - TÝnh to¸n sè häc, logic. - KiÓm tra vµ quyÕt ®Þnh lùa chän. - §iÒu khiÓn. 19

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản