Xem mẫu
- Ng «n ng ÷ lËp tr×nh FORTRAN 90
Phan V¨n T©n
- 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.
- • 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,...
- 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
- ! 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
- 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
- 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ã.
- • 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)
- 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ý.
- 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ã.
- 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 ®Ó lu
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,
nhng 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 $
- B¶ng m· ASCII
- B¶ng m· ASCII
- 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
- 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
- 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.
- • §è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.
- 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
- 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
- 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