Xem mẫu

  1. Ng «n ng ÷ lËp tr×nh FORTRAN 90 Phan V¨n T©n
  2. Ch­¬ng  1. Nh÷ng  yÕu tè  c ¬ b¶n c ña ng «n ng ÷  FORTRAN  1.1 S¬l­îc vÒ ng«n ng÷lËp tr×nh FOTRAN • TËp hîp c¸c qui t¾c ®Æc biÖt ®Ó m∙ ho ¸ nh÷ng kiÕn thøc cho m¸y tÝnh hiÓu ®­îc gäi lµ ng «n ng ÷ lËp  tr×nh • Cã nhiÒu ng«n ng÷lËp tr×nh: FORTRAN, BASIC, Pascal, C,... • FORTRAN lµ tªn cÊu t¹o tõ FORmula TRANslation (c«ng thøc dÞch), lµ ng«n ng÷lËp tr×nh bËc cao • ý t­ëng cña FORTRAN ®­îc J ohn Backus ®Ò xuÊt vµo kho¶ng cuèi n¨m 1953, ë New York, vµ ch­¬ng tr×nh FORTRAN ®Çu tiªn ®· ®­îc ch¹y vµo th¸ng 4 n¨m 1957.
  3. • N¨m 1966 lÇn ®Çu tiªn phiªn b¶n chuÈn cña ng«n ng÷lËp tr×nh nµy ®­îc Ên hµnh: FORTRAN 66 • Phiªn b¶n chuÈn míi, Fortran 77, ®­îc Ên hµnh vµo n¨m 1978 • Phiªn b¶n chuÈn FORTRAN 90 (hoÆc Fortran 90), ra ®êi vµo th¸ng 8 n¨m 1991 • Cho ®Õn nay ®· cã c¸c phiªn b¶n míi kh¸c, nh­ FORTRAN 95, FORTRAN 2000 • FORTRAN cã nhiÒu bé biªn dÞch dßng kh¸c nhau, cã thÓ lµm viÖc trªn c¸c hÖ ®iÒu hµnh kh¸c nhau: DOS, WINDOWS, UNIX, LINUX,...
  4. 1.2 Ch¹y mét ch­¬ng tr×nh Fortran • Yªu cÇu ph¶i cã bé phÇn mÒm biªn dÞch cña FORTRAN phï hîp víi hÖ ®iÒu hµnh m¸y tÝnh vµ ®· cµi ®Æt vµo m¸y tÝnh, cã thÓ vËn hµnh b×nh th­êng • Lµm quen dÇn vµ ®i ®Õn sö dông thµnh th¹o bé biªn dÞch: C¸ch vËn hµnh, c¸ch biªn tËp lêi ch­ ¬ng tr×nh, c¸ch dÞch kiÓm tra lçi, c¸ch ch¹y ch­ ¬ng tr×nh,... • Tr­íc hÕt h·y thö lµm viÖc víi nh÷ng ch­¬ng tr×nh ®¬n gi¶n, cè g¾ng hiÓu râ ch­¬ng tr×nh ho¹t ®éng nh­ thÕ nµo
  5. ! Vi du 1. ! Loi Chao mung! CHARACTER NAME*20 PRINT*, 'Ten ban la gi?' READ*, NAME PRINT*, 'Xin chao ban ', NAME END Khi ch¹y ch­¬ng tr×nh sÏ nhËn ®­îc: Ten ban la gi? THANH Xin chao ban THANH
  6. 174.6 ( t 1981.2 )3 !VÝ dô 2: TÝnh gi¸ trÞ cña hµm A(t)= ! khi cho vµo gi¸ trÞ cña biÕn t PROGRAM VD2 ! Tinh gia tri ham A(t) INTEGER T ! gia tri bien t REAL A ! gia tri ham A(t) PRINT*,’Cho gia tri cua bien t:’ READ*, T A =174.6 * (T - 1981.2) ** 3 PRINT*,'Gia tri ham A(t) khi t=', T, ' la :', A END Khi ch¹y ch­¬ng tr×nh s Ï ®­îc: Cho gia tri cua bien t:  2000 Gia tri ham A(t) khi t=2000 la : 1.1601688E+06
  7. VÝ dô 3: Gi¶ sö b¹n cã $1000 göi tiÕt kiÖm trong ng©n hµng, víi tiÒn l·i 9% mçi n¨m. Hái sau mét n¨m sè tiÒn cña b¹n b»ng bao nhiªu? NÕu lËp tr×nh cho m¸y tÝnh ta h·y t­ëng t­îng c¸c b­ íc thùc hiÖn cña m¸y nh­ sau: 1. NhËn sè liÖu (sè tiÒn göi ban ®Çu vµ l·i suÊt) 2. TÝnh tiÒn l·i (9% cña 1000, tøc 90) 3. Céng tiÒn l·i vµo sè tiÒn gèc (90+1000, tøc 1090) 4. In (hiÓn thÞ) sè b¹n sÏ cã.
  8. • Lêi ch­¬ng tr×nh: PROGRAM TinhTien REAL TienGoc, TienLai, LaiSuat TienGoc =1000 LaiSuat =0.09 TienLai =LaiSuat * TienGoc TienGoc =TienGoc +TienLai PRINT*, ‘So tien se cã la : ', TienGoc END Ch¹y ch­¬ng tr×nh vµ chó ý r»ng b©y giê kh«ng ®ßi hái ®Çu vµo (input) tõ bµn phÝm (T¹i sao?). KÕt qu¶ sÏ lµ 1.0900000E+03 (1090)
  9. Tãm t¾t • Chư­¬ng tr×nh m¸y tÝnh lµ tËp hîp c¸c kiÕn thøc ®­îc m· ho¸ ®Ó gi¶i quyÕt mét vÊn ®Ò riªng biÖt. • LÖnh READ* cña Fortran lµ ®Ó nhËn d÷liÖu ®­ a vµo cho m¸y tÝnh. • LÖnh PRINT* cña Fortran lµ ®Ó in (hiÓn thÞ) c¸c th«ng b¸o dÉn h­íng cho ng­êi dïng vµ kÕt qu¶ tÝnh to¸n, xö lý.
  10. 1.3 CÊu tróc chung cña mét ch­¬ng tr×nh FORTRAN [PROGRAM Te nChuongTrinh] [Cac cau le nh Khai bao] [Cac cau le nh thuc hie n (than Chuong trinh)] END [PROGRAM [Te nChuongTrinh]] • Cac cau le nh Khai bao: Khai b¸o ®Ó ch­¬ng tr×nh cÊp ph¸t bé nhí, ph©n luång xö lý,... • Cac cau le nh thuc hie n: Qui t¾c vµ tr×nh tù thùc hiÖn tÝnh to¸n, xö lý ®Ó ®¹t ®­îc kÕt qu¶ • END lµ c©u lÖnh b¾t buéc ph¶i cã.
  11. C¸ch ®Æt tªn cho biÕn vµ h»ng • Ch­¬ng tr×nh FORTRAN sÏ lµm viÖc th«ng qua c¸c biÕn vµ h»ng, ®ã lµ nh÷ng vïng bé nhí ®­îc cÊp ph¸t ®Ó l­u gi÷c¸c gi¸ trÞ trong qu¸ tr×nh tÝnh to¸n, chóng ®­îc g¸n bëi Tª n g äi theo qui ­íc. • Tªn biÕn, tªn h»ng lµ mét d·y ký tù viÕt liÒn nhau, bao gåm c¸c ch÷c¸i tiÕng Anh vµ ch÷sè hoÆc dÊu g¹ch d­íi, nh­ng p h¶i b ¾t ®Çu b »ng  m é t c h÷ c ¸i, kh«ng ph©n biÖt ch÷th­êng, ch÷hoa (A, B, C,..., a, b, c) • VÝ dô: Tªn hîp lÖ Tªn kh«ng hîp lÖ DienTich Dien tich Tien2003 2003Tien AB A,B DoLa $
  12. B¶ng m· ASCII
  13. B¶ng m· ASCII
  14. 1.4 CÊu tróc c©u lÖnh • Tõ khãa: REAL, PRINT, READ,... • C©u lÖnh g¸n: VÕ Tr¸i = VÕ Ph¶i – VÕ Tr¸i: Tªn biÕn, Tªn h»ng – VÕ Ph¶i: Gi¸ trÞ, BiÓu thøc – VÝ dô: Tie nGoc = 1000 ; Tie nLai = LaiS uat * Tie nGoc • C¸c c©u lÖnh víi tõ khãa: – VÝ dô: R EAD*, T ; PR INT*, ‘S o tie n s e  cã la : ', Tie nGoc • Sö dông dÊu c¸ch (SpaceBar) trong c©u lÖnh • Lêi chó thÝch trong ch­¬ng tr×nh • Dßng nèi tiÕp
  15. G¸n nh·n cho c©u lÖnh • Trong mét ch­¬ng tr×nh, mçi c©u lÖnh cã thÓ ®­îc g¸n bëi mét nh∙n duy nhÊt lµ mét sè ng uyªn d­¬ng n»m trong kho¶ng 1..99999 • Nh·n ®­îc ghi ë ®Çu vµ trªn cïng dßng lÖnh, c¸ch néi dung c©u lÖnh bëi Ýt nhÊt mét dÊu c¸ch • Nh·n c©u lÖnh dïng ®Ó ®¸nh ®Þa chØ cña c©u lÖnh, nhê ®ã ch­¬ng tr×nh cã thÓ chuyÓn ®iÒu khiÓn ®Õn c©u lÖnh khi cÇn thiÕt • VÝ dô: 10 PRINT*,’Cho mät so nguyen duong: ‘ .... PRINT*, ‘Sai so lieu. Hay nhap lai.’ GOTO 10
  16. Qui ­íc biªn tËp ch­¬ng tr×nh: • §èi víi FORTRAN 77: – Tªn file ch­¬ng tr×nh cã phÇn më réng lµ *.FOR, *.F – Mét dßng ch­¬ng tr×nh cã tèi ®a 72 ký tù: • Cét 1-5: Dïng ®Ó ®¸nh Nh∙n c©u lÖnh (1-99999). NÕu kh«ng cã nh·n th× ®Ó trè ng • Cét 6: §¸nh dÊu dßng nèi tiÕp cña c©u lÖnh • Cét 7-72: Néi dung c©u lÖnh – Dßng chó thÝch: • BÊt kú dßng lÖnh nµo cã ký tù “C” hoÆc “c” ë cét 1 ®Òu ®­ îc xem lµ dßng chó thÝch • PhÇn dßng lÖnh n»m phÝa sau dÊu chÊm than ( ! ) còng ®­ îc hiÓu lµ lêi chó thÝch • Cã thÓ sö dông c¸c cét 73-80 trªn dßng lµm chó thÝch • Khi gÆp phÇn chó thÝch ch­¬ng tr×nh dÞch sÏ bá qua.
  17. • §èi víi FORTRAN 90: – Tªn file ch­¬ng tr×nh cã phÇn më réng lµ *.f90, *.F90 – §èi víi MicroSoft FORTRAN, mét dßng ch­¬ng tr×nh cã thÓ dµi têi 7200 ký tù, trªn ®ã cã thÓ cã nhiÒu c©u lÖnh, c¸c c©u lÖnh c¸ch nhau bëi dÊu chÊm phÈy (;) • Lêi ch­¬ng tr×nh b¾t ®Çu tõ cét 1 • NÕu kh«ng muèn ®Ò dßng lÖnh qu¸ dµi cã thÓ dïng ký tù (&) ë cuèi dßng ®Ó ng¾t dßng lÖnh xuèng dßng d­íi – Lêi chó thÝch: • BÊt kú mét dßng lÖnh hoÆc mét phÇn dßng lÖnh nµo ®ã n»m ë phÝa sau dÊu chÊm than (!) ®Òu ®­îc xem lµ lêi chó thÝch • Khi gÆp phÇn chó thÝch ch­¬ng tr×nh dÞch sÏ bá qua.
  18. Phong c¸ch lËp tr×nh • Phong c¸ch lËp tr×nh thÓ hiÖn tÝnh chÊt nghiªm tóc, t­ duy l«gic cña ng­êi lËp tr×nh • Nh÷ng ®iÒu nªn lµm: – Khi viÕt ch­¬ng tr×nh nªn sö dông c¶ ch÷th­êng, ch÷ hoa ®Ó dÔ theo dâi – Dïng lêi chó thÝch ®Ó ghi chó, gi¶i thÝch néi dung c¸c ®o¹n m· ch­¬ng tr×nh – Nªn ph©n cÊp c¸c c©u lÖnh ®Ó bè trÝ s¾p xÕp thôt, thß cho hîp lý, dÔ kiÓm so¸t – §Æt tªn c¸c biÕn sao cho mang tÝnh gîi nhí, kh«ng qu¸ dµi, còng kh«ng qu¸ ng¾n – Sö dông dÊu c¸ch mét c¸ch thÝch hîp ®Ó nh×n ch­ ¬ng tr×nh s¸ng sña, ®Ñp ®Ï h¬n
  19. 1.5 C¸c KiÓu d÷ liÖu • Mét c¸ch t­¬ng ®èi FORTRAN ®Þnh nghÜa hai kiÓu d÷liÖu c¬b¶n lµ KiÓu S è  vµ KiÓu Kh«ng   p h¶i s è : – KiÓu S è : REAL (sè thùc), INTEGER (sè nguyªn), COMPLEX (sè phøc) – KiÓu Kh«ng  p h¶i s è : CHARACTER (ký tù), LOGICAL (l«gic) • Tïy theo tõng kiÓu d÷liÖu mµ c¸c biÕn/h»ng sÏ chiÕm dung l­îng bé nhí t­¬ng øng • Dung l­îng bé nhí mµ c¸c biÕn chiÕm gi÷x¸c ®Þnh bëi sè b y te ®­îc cÊp ph¸t • 1 b y te  = 8 b it
  20. KiÓu D÷liÖu Sè byte chiÕm gi÷ MiÒn gi¸ trÞ hîp lÖ INTEGER 4 –2,147,483,648 .. 2,147,483,647 INTEGER *1 1 –128 .. 127 INTEGER *2 2 –32,768 .. 32,767 INTEGER *4 4 –2,147,483,648 .. 2,147,483,647 REAL 4 –3.4028235E+38 .. –1.1754944E–38 (6) REAL *4 4 +1.1754944E–38 to +3.4028235E+38 (6) REAL *8 8 –1.797693134862316D+308 .. –2.225073858507201D–308 +2.225073858507201D–308 .. +1.797693134862316D+308 DOUBLE PRECISION 8 COMPLEX 8 (mét cÆp hai sè thùc 4 byte) COMPLEX *4 8 COMPLEX *8 16 (mét cÆp hai sè thùc 8 byte) DOUBLE COMPLEX 16
nguon tai.lieu . vn