Beruflich Dokumente
Kultur Dokumente
PROGRAMLAMA DILLERI
Programlama dilleri iki ana blmde toplanabilir:(a)Makineye ynelmi diller ya da makine dilleri,(b)probleme ynelmi diller ve bunlara ilikin programlama sistemleri.
2. FORTRANA GR
2.1. GR
Program bir komutlar ( deyimler ) dizisidir ve herhangi bir problemin zm iin kullanlan hesap dzenini tanmdr . zmde bir bilgisayardan yararlanlacaksa , programn bilgisayar zellilerine uygun bir programlama dili ile yazlmas gerekir . Bilgisayar , programdaki komutlar aksi belirtilmedike , yazld srada yerine getirir . Gereinde program bir komutlar kmesinin belli dzende tekrarlanmasn yada duruma gre belirli dallanmalar salayacak zel komutlarda ierebilir ; bylece program ksaltmak mmkn olur . FORTRAN programlama dili olduka basittir ve normal matematik diline ok yakndr. FPRTRAN sistemi , FORTRAN dili ve FORTRAN derleyicisinden oluur .
2.2. SAYILAR
Bilimsel , mhendislik aratrmalar ve uygulamada yaplan hesaplarn ounda deiik byklkte saylarla allr . Gvenilir sonular elde edilmesi iin bu hesaplarda mmkn olduu kadar ok anlaml rakam olan saylarla allmas gerekir . Sabit kelime uzunluklu ve deiken kelime uzunluklu bilgisayarda bir saynn gsterilmesi iin bellekte sabit sayda pozisyon ayrlr . Bu sabit pozisyon saysna incelik ( prezisyon ) denir . Saylar ikiye ayrlr : tam saylar , gerel saylar . Tam saylar desimal noktas olmayan saylardr . Bunlarn byklk snrlarbilgisayar zelliklerine baldr . Gerel saylar desimal noktal ondalk saylardr . Gerel saylarn bilgisayar belleinde saklanmasndan nce bilgisayarca say dzenlenir . Dier bir deyile desimal nokta saynn sfrdan farkl en nemli rakamn soluna kaydrlr ve gerekli dzeltme 10 un sleri eklinde saynn yanna yazlr . Dzenlenmi saynn kesirli ksm mantis , desimal noktann kaydrld hane saysna s denir . Gerel saylarn byklk snrlar da bilgisayar zelliklerine baldr
Ynetim deyimleri: Programdaki deyimlerin icra srasn ynetir artsz GO Hesaplanm GO TO Atanm GO TO Aritmetik IF Mantksal IF DO CONTINUE pause STOP END Bildiri deyimleri : Derleyiciye bilgi verir DIMMENSION COMMON EQUIVALANCE IMPLICIT Tip deyimi EXTERNAL DATA Altprogram deyimleri: Alt programlar tanmlamaya ve kullanmaya yarar FUNCTON SUBROUTNE CALL RETURN ENTRY
BLOCK DATA
3.1.Giri k Deyimleri
Giri k deyimleri bilgisayarlarla d ortam arasndaki bilgi alveriini ve evre bellekte bilgi saklanmas yada evre bellekten bilgi alnmas olanan salar giri k nitesini ve ortamn , bilginin giri ortamnda yerleme ve k ortamnda yerletirilme biimini , bellekte bilgi alverii yapacak data alanlarn belirtir . Giri k deyimler ile ilgili yardmc deyiler unlardr:
READ deyimi WRITE deyimi FORMAT deyimi REWND deyim BACKSPACE deyimi ENDFILE deyimi REDREAD deyimi NAMELIST deyimi Bu deyimler aada srasyla incelenecektir
READ ( i, n, l,) liste ve dorudan ( rast gele ) eriimli disk ktnden bilgi okunmas durumunda ise READ ( i = r, n, l) liste
genel biiminde yazlr . i, r, n, l, ve liste simgelerinin anlamlar sras ile yledir : i giri k nitesi numarasn belirten bir tam say sabit , yada ktk belirtici bir tamsay sabit yada tamsay deikendir . B3700 sisteminde , i = 1,2...7 deerleri iin giri k ortam u niteleri gsterir i NTE 1- Magnetik erit nitesi 1 2- Magnetik erit nitesi 2 2- Magnetik erit nitesi 2 2- Magnetik erit nitesi 2 5- Kart okuyucusu 6- Bask makinesi 7- Kart delici r bir dorudan eriimli tutanak ( random record ) numarasdr . Bir iaretsiz tamsay deiken ya da pozitif tamsay ifade olabilir " = " yerine " ' " iareti kullanlabilir . n veri tipini ve d ortamda yerleme biimini belirten ilgili FORMAT deyimimin numarasdr . Giri deiken uzunluklu bir erit ktnden ya da bir disk ktnden olursa n yazlmayabilir . bu durumda giri bilgilerinin okunaca erit yada disk kt bir formatsz k deyimi ile oluturulmu olmaldr . Formatsz READ deyimi , giriin bir sral disk ktnden olmas durumunda READ ( i, l) liste ve giriin bir dorudan ( rast gele ) eriimli disk ktnden olmas durumunda ise READ ( i = r, L) liste eklinde yazlr. B3700 sisteminde dorudan eriimli disk ktnden veri okuma durumunda bir FILE kart kullanlmaldr . l giri k srasnda uygunluk hatas ( parity error ), yada ktk sonu ( End-of-Fle )durumu ile karlarsa yaplacak eylemi ve dallanlacak deimi belirtir ;n1 , n2 deyim numaralar olmak zere ERR = n1
END = n2 ERR = n1 , END = n2 END =n2 , ERR =n1 biimlerinde yazlr . Veri okuma srasnda , sistemin bulup dzeltemedii bir uygunluk hatas ortaya karsa kontrol n1 numaral deyime ; ktk sonu durumu ile karlarsa kontrol n2 numaral deyime dallanr . Ktk sonu durumu ile , ( a ) 1. kolonda bir geersiz karakter bulunan bir kart okuma ; ( b ) erit yada diskte yazl son kayttan daha tesini okuma abas ; ( c ) diskin yazl olmayan alanndan bir kayt okuma srasnda karlalr . READ deyiminin yazlnda l ksm bulunmayabilir . Bu durumda deyim READ ( i, n,) liste yada READ ( i = r, n,) liste biiminde yazlr . Bu deyimlerin icras uygunluk hatas ve ktn sonu durumlar ile karlaldnda icra durur Liste indissiz yada indisli deiken ve dizi isimlerinden oluur bunlar d1, d2, ... , dn eklinde aralar virglle ayrlm olarak sra ile yazlr . Listedeki deikenlere d ortamdan okunan deerler atanr. Bu nedenle listedeki deikenlerle d ortamdan okunan deerler sra , say ve mod bakmndan uyumaldr . Listedeki dizi imi indissiz yazlmsa , bu dizinin tm kolon dzeninde okunur .
WRITE ( i, n, liste genel biiminde yazlr . Deyimin yazlnda n bulunmayabilir Formatsz Write deyimi , bir erit ya da sral disk kt knda
WRITE ( i) liste ve dorudan ( rast gele ) eriimli disk kt knda ise WRITE ( i = r) liste biiminde yazlr . Buradaki i , r , n ve liste simgelerinin anlamlar ve zellikleri READ deyiminde ayrntlar ile akland gibidir .
FORMAT deyimindeki alan bildirilerinin gsterdii karakterlerin toplam , bir satr iin en ok bir kayt birimi kadar olabilir . Kayt birimi IBM kart iin 80 , daktilo kat erit iin 87 , B9247 bask makinesi iin ise 132 karakter olarak snrlandrlmtr . eitli alan bildirilerinin yazllar , giri ve k iin kullanldklarnda dntrme zellikleri ve FORMAT deyimine ilikin ayrntlar aada aklanacaktr . I tipi alan bildirisi Tamsay byklklerin giri knda kullanlr ; W alan uzunluunu gstermek zere Iw eklinde yazlr GR . Veri tamsay sabit olmaldr ve say ala iinde sadan hizalanmaldr . Saynn iareti de w iindedir . Tamsay bykl alan uzunluunu amamaldr . IKI . k listesindeki bu alan bildirisine ilikin tamsay deikeninin deeri , d ortamda belirtilen kayt ortamndaki alan iine sadan hizalanarak yazlr . Art iareti baslmaz , eksi iareti ise baslr . Tamsay byklnn deeri ( iareti ile birlikte ) w den byk bir say ise baslmaz , alan * iareti ile doldurulur . F tipi alan bildirisi Gerel saylarn giri k iin kullanlr . w alan uzunluu , d sadan itibaren desimal noktann yerini gstermek zere Fw.d eklinde yazlr . w alan uzunluu seilirken iaret ve desimal nokta iin de birer yer dnlmelidir ;bu nedenle w >= d + 2 olmaldr . Giri . veri gerel say olmal ve say alan iinde sadan hizalanmaldr . Alan bildirisinde desimal sayn yeri belirtildiinden , verilerde desimal nokta yazlmayabilir . Verideki desimal noktann yeri alan bildirisinde gsterilene gre
11
nceliklidir . Buna gre F10.0 alan bildirisi , herhangi bir ssz gerel saynn bilgisayara aktarlmas olanan salar . E tipi alan bildirisi sl gerel saylarn giri k iin kullanlr ; Ew.d eklinde yazlr . w alan uzunluunu , d bu alanda E den itibaren desimal noktann yerini belirtir . GR . Alan iinde desimal noktann yeri bildirildiinden veride desimal nokta yazlmayabilir . Verideki desimal noktann yeri alan bildirisinde gsterilene gre nceliklidir . Buna gre E10.0 alan bildirisi , herhangi bir sl gerel saynn bilgisayara aktarlabilmesi olanan salar . sl gsterim durumunda verinin alan iinde sadan hizalanmas gerekir . IKI . D ortamda w sayda yer ayrlr ; bunun iinde iaret ve desimal nokta iin birere yer ve s iin drt yer olmak zere toplam 6 yer vardr . w - d >= 6 olmaldr ; bu kurala uyulmazsa k alan * iaretleri ile doldurulur . Gerel say prezisyonu f olduuna gre , dil ortamda iaret ( pozitif ise baslmaz ) , desimal nokta ve ss belirtmek iin gerekli 6 karakterden baka , f > ( w - 6 ) ise f anlaml hane , f >= ( w 6 ) ise ( w - 6 ) anlaml hane grnecektir . Alan bildirisinde bir n lek katsays kullanldnda , bu say ile ile s ksm arasnda bir desimal dzenleme yapma olana verir . n <= 0 ise , desimal noktann solunda n anlaml basamak konulur , bunu desimal noktann solundaki ( d - n + 1 ) anlaml basamak izler . Her iki durumda da s uygun biimde ayarlanr . D tipi alan bildirisi ift incelikli gerel saylarn giri knda kullanlr ; Dw.d eklinde yazlr . w alan uzunluunu , d ise desimal noktann yerini gsterir . GR . ift incelikli gerel say sl yazlmsa s D harfi ile gsterilir . Giri verisinin yazl biimine gre Fw.d ya da Ew.d dntrmeleri gibi alr
12
IKI . ift incelikli saylarn d ortama aktarlmasnda kullanlmasnn ve ssn D simgesi ile gsterilmesisin dnda Ew.d dntrlmesi gibi alr L tipi alan bildirisi Mantksal byklklerin giri knda kullanlr ; Lw eklinde yazlr w alan uzunluunu gsterir GR . w alan uzunluu >= 1 olmaldr ; bata boluklar olabilir . Giri alanndaki ilk karakter TRUE ( doru ) iin T ve FALSE ( yanl ) iin F olmaldr . Bunlar izleyen karakter gz nne alnmaz . Giri Alannda T ya da F yoksa bu bilgisayar belleine FALSE olarak aktarlr . G tipi alan bildirisi Tamsay , gerel ift incelikli , kompleks ve mantksal byklklerin giri knda kullanlabilecek bir genel alan bildirisidir ; GW.d eklinde yazlr . w alan uzunluunu d desimal noktann yerini belirler . GR . Giri verisi I ya da L tipinde ise , Gw.dalan bildirisi Iw ya da Lw olarak alr .d ksm gz nne alnmaz ; F , E ya da D tipinde ise Fw.d , Ew.d ya da Dw.d biiminde alr . Giri deikeni kompleks ise gerek ve sanal ksmlar iin iki ayar G alan bildirisi gereklidir IKI . I yada L tipi byklerin knda Iw olarak alr gerel saylar durumunda k biimi saylarn byklne bal olarak aadaki gibi alr Deikenin bykl Edeer dntrme 0,1 <= n < 1 F( w -4).d , 4X 1 <= n < 10 F( w -4).( d - 1 ) , 4X ... ... ... ... ... ... 10( d - 2 ) <= n < 10( d - 1 ) F( w -4).1 , 4X
13
10( d - 1 ) <= n < 10( d ) F( w -4).0 , 4X dier Ew.d k deikeni kompleks trde ise , gerek ve sanal ksmlar iin iki ayr G alan bildirisi gereklidir. Gerel ve ift incelikli byklklerin knda w alan uzunluu , s desimal nokta ve iaret ( negatif ise ) iin gerekli yerleri iermelidir . ( w - d ) >= 6 art salanmazsa , k ortam * iaretleri ile doldurulur . Z tipi alan bildirisi Hekzadesimal byklklerin giri k iin kullanlr ; Zw eklinde yazlr . w alan uzunluunu belirtir GR . Veri hekzadesimal sabit olmaldr . Giri alanndaki boluklar sfr olarak yorumlanr . Veri sadan hizalanm olmaldr . Giri verisi uzunluu >w ise fazla haneler kesilerek soldan kesilerek bilgi bellee aktarlr . IKI . Hekzadesimal deer k ortamna sadan hizalanm yazlr ; kalan yerler varsa bo braklr . Deikenin uzunluu > w ise fazla haneler soldan kesilerek yazlr A tipi alan bildirisi Alfa nmerik byklklerin giri .k iin kullanlr ; Aw eklinde yazlr .w alan uzunluunu gsterir . GR . Alfa nmerik bilgi bellekte karakter formunda saklanr ; bu nedenle hesaplamalarda kullanlamaz . Bilgi giri alannda sadan hizalanm olmaldr . w < b ise , alfa nmerik byklk soldan hizalanm olarak bellekte deiken olarak saklanr ; b - w bo yer kalr . IKI . Alfa nmerik bilgi k ortamndan sadan hizalanarak yazlr . w > b deiken uzunluu ( byte cinsinden ) ise , alfa nmerik karakter dizisi k ortamna soldan hizalanarak konulur ve sadan b - w karakter kesilir .
14
H tipi k bildirisi Bir karakter dizisini giri k iin kullanlr ; wHs eklinde yazlr . w alan uzunluunu , s karakter kmesini gsterir . Ayn ilem karakter dizisinin alan uzunluunu belirtmeden 's' "s" eklinde yazarak da gerekletirilebilir . GR . w sayda karakter yerine s karakter kmesi geer ; boluk karakterleri de bunun iindedir . IKI . Bildiriden sonra gelen w sayda karakter , ya da bir giri ilemi sonucu onun yerine geirilmi karakterler d ortamda grnr . X tipi alan bildirisi Giri kta boluklar gstermek iin kullanlr ; wX eklinde yazlr . w alan uzunluunu gsterir . Girite w karakterlik yerin atlanmasn , kta ise w sayda karakterlik boluk braklmasn salanr . T tipi alan bildirisi Giri l listelerindeki verilerin ilk karakterlerinin bulunduu yeri belirlemekte kullanlr , n bu yeri gstermek zere Tn eklinde yazlr . Bask makinesi ile kta kullanldnda veri gerekte ( n - 1 ) karakter konumundan balar ; nk kaydn ilk karakteri aryo kontrol iin kullanlr . lek katsays : F , E ve D tipi alan bildirileri ile birlikte , giri kta saylar dzenlemekte kullanlr . rnein F tipi alan bildirisi ile , n lek katsays olduuna gre ,
15
nPFW.d eklinde yazlr . Bu yazlm kta kullanlmsa d ortamdaki say = bellekteki deeri X 10n olur . lek katsays pozitif ya da negatif olabilir . Dnce geneldir ; giri ve kta geerlidir . Ancak ounlukla kta kullanlr . lek katsays E tipi alan bildirisi ile kullanlrsa , girite herhangi bir etkisi olmaz ; kta mantis^n ile arplr , s n kadar azaltlr Alan bildirilerinin ve gruplarn tekrar Herhangi bir kayt iinde n sayda alan ayn tipte yazmak iin ilgili alan bildirisinin nne n saysna yazmak gerekir . n iaretsiz bir tamsaydr . Eer bir lek katsays da kullanlyorsa , bu tekrar saysnn da nnde bulunur . Alan bildiri gruplarnn tekrar ise bunu parantezler iine alarak nne n tekrar says yazmaklar salanr. Grup tekrar says belirtilmemise bu grup giri k bitinceye kadar tekrarlanr . Parantezler iine alarak gruplama dokuz dzeyde olabilir alan tekrar durumunun dnda FORMAT deyimi soldan saa doru yorumlanr . Giri k listesi bitmeden FORMAT deyiminin en sandaki paranteze gelinmise , dier bir deyile FORMAT deyimi bitmise , denetim en son rastlana sol paranteze geri dner ; giri k listesi tamamlanncaya kadar bu ilem tekrarlanr . Giri k listesi bitmesine ramen FORMAT deyiminin en sa parantezine , sonuna gelinmemi olsa bile giri k deyiminin icras tamamlanm olur . ok kaytl alan bildirileri FORMAT deyimi iindeki bir / iareti bir kaytn bitip ikinci bir kayta geildiini gsterir . Girite / iaretinsen sonraki karakterler gz nne alnmaz . kta ise / iaretine rastlandnda kayt bitirilir ve kalan k bilgileri bir sonraki kayta konulur . Girite kayt atlamak ve kta bo satr brakmak iin ardk / iaretleri kullanlabilir . Genel olarak n+1 saydaki / iareti n sayda bo satr braklmasn salar cra zamannda verilen format deyimi
16
Herhangi bir formatl giri k deyiminde numaras bulunan ilgili format deyimi A tipi alan bildirisi ile yazlr ; bylece alan bildirilerini icra zamannda veri gibi okuma mmkn olur .
17
eklinde yazlr ; yalnz magnetik erit . disk yada kat erit giri ktkleri iin tanmlanmtr . i kt balang konumunda ise , bu deyimin icrasnn hibir etkisi olmaz .
18
genel eklinde yazlr . Burada her ad bir isim listesi tantcs , her biri deiken ve dizi isimlerinden oluan bir listedir . Bir deiken ya da dizi ismi , birden ok adi ile ilikili olabilir . GR . NAMELST deyimini izleyen bir READ deyimi yazarak salanr . Veri ktnn her kaydnn ilk karakteri gz nne alnmaz ; ilk kaytn ikinci karakteri ise & iareti olmaldr . READ deyimini izleyen tantc ad , & iaretinden sonra gelir . Veri ktnde ikinci bir & iaretine rastlandnda ( bunu bir end deyimi izler ) okuma durur . KI. f yerine daha nce bildirilmi bir NAMELIST ad bulunan bir formatl k deyimi icra ederek k yaplr.
1.CALL deyimi 2.CONTINUE deyimi 3.DO deyimi 4.END deyimi 5.GO TO deyimleri 6.IF deyimleri 7.PAUSE deyimi 8.RETURN deyimi 9.STOP deyimi
-Kontrol bir subroutine alt programna aktarr, -Gerek argmanlarn ifadelerini deerlendirir, -Gerek argmanlarla yapay argmanlar belirler. Genel format:CALL ad [([arg1[,arg2][,arg3]....])] Burada ad,bir subroutine alt programnn veya bir ENTRY(giri) noktasnn adidir.Bu ad,FUNCTION,SUBROUTINE ve ENTRY deyimindeki yapma bir argmann adi olabilir. Arg, subroutine alt program tarafndan istenen gerek bir argmann adidir.Bu argman bir deiken,bir sabite,dizi eleman,dizi adi,aritmetik,lojik veya karakter ifade olabilir.Ayrca bir FUNCTION, SUBROUTINE adi olabilir veya CALL deyiminin bulunduu program biriminde bulunan ifade edilebilir bir deyimin deyim numarasnn bana (* ) gelerek bir argman oluturulabilir.Eer gerek argman yoksa parantez kullanlmaz.CALL deyimi kontrol subroutine alt programna aktarr ve CALL deyiminde bulunan gerek argmanlarn deerleri yerine yapay deikenleri getirir.
rnek:Aadaki program parasndaki ilk CONTINUE deyimi etiket amacyla ,ikinci CONTINUE deyimi ise DO dngsnn sonunu belirtmek iin kullanlmtr. IF (A-B)15,20,15 15 X=A+B**2 20 CONTINUE . . DO 40 I=1,K KN(I)=X+I 40 CONTINUE . .
21
a)m1,m2'den kk veya eit ve m3 sfrdan bykse b)m1,m2'den byk veya eit ve m3 sfrdan kkse Eer m1,m2 ve m3 arasndaki ilikilerden biri doruysa ,ilk nce DO dngs iindeki ilk deyim ifa edilir.Bu anda i'nin baslang deeri m1' dr.Her bir ardk iterasyonda i'nin deeri m3 kadar artrlr.Iterasyon says MAX(INT((m2m1+m3)/m3),0) oluncaya kadar dng devam eder. rnek:DO 5 IX=1,12,4 deyimi ile dng, (m2-m1+m3)/m3=(12-1+4)/4=15/4=3,75 INT(3,75)=3 MAX(3,0)=3 kez tekrarlanr. Eer ilk anda i'nin deeri m2'yi geerse iterasyon durur ve kontrol d1'den sonraki deyime geer.DO nun tamamlanmasndan sonra DO deikeni i'nin son degerim2'yi geer. Eer (a) ve (b)'deki ilikilerden biri doru deilse kontrol dorudan d1'den sonraki deyime geer. DO deikeni DO dngs iinde yeniden tanmlanamaz.Bununla birlikte , m1,m2 veya m3'n DO dngs iindeki deerleri ,iterasyon saysn deitirmeksizin yeniden tanmlanabilir. Doru DO deyimleri: DO 50,INT=1,5,2 DO 60X=BAS,BIT,ART DO 3,A=20,3,-3 DATA deyiminde st kapal belirtilen DO: Bir data deyimindeki st kapal belirtilen DO listesinin genel formati: (dliste,i=m1,m2[,m3])
22
Burada d liste, dizi eleman adlarnn ve st kapal belirtilen DO'larn listesidir.i,bir tamsay deiken adi olup st kapal belirtilen DO deikeni olarak adlandrlr.m1,m2 ve m3 deerlerinin her biri bir tamsay sabite veya bir tamsay sabitenin adidir.Ayrca tamsay sabite adlar veya tamsay sabitelerden oluan bir ifade olabilir.m3 seimliktir,eer kullanlmazsa 1 olarak kabul edilir ve m3'den nceki virgl kullanlmaz. st kapal belirtilen DO dngsnn tamamlanmasndan sonra DO deikeni tanmszdr ve bir DATA deyiminde ,atama deyiminde veya READ deyiminde deeri belirtilinceye kadar kullanlmaz. rnek:15 boyutlu bir matrisin oluturulmas DIMENSION A(15,15) DATA ((A(I,J),J=1,15), I=1,15)/225*0./ DATA (A(I,I),I=1,15)/15*1./ Bir Giri k deyimindeki st kapal belirtilen DO: Bir giri k deyimindeki listede st kapal belirtilen DO dngs kullanlyorsa, bu dng ile belirlenen deerler bir d ortamdan bellee veya bellekten bir d ortama aktarlacaktr. Giri/k deyimindeki st kapal belirtilen DO deyiminin genel formati: (dliste,i=m1,m2[,m3]) Burada dliste, bir giri/k listesidir. i, tamsay,gerel veya ift duyarlkl deiken adi olup DO deikeni olarak adlandrlr.m1,m2 ve m3 tamsay, gerel veya ift duyarlkl aritmetik ifadedir. m1,m2 ve m3 ifadelerinin deerleri DO deikeni i'nin tipine dntrlr.m3 seimliktir ve sfr deerini alamaz,kullanlmazsa 1 olarak kabul edilir ve m3'den nceki virgl de yazlmaz.
23
rnek: Farz edelim ki A bir deiken, B,C ve D ise tek boyutlu diziler olsun. B,C ve D'nin 20 elemanl olduunu kabul edersek, READ(UNIT=5)A,B,(C(I),I=1,4),D(4) deyimi ile ilk deer A'ya,sonraki 20 deer B'ye ,daha sonraki drt deer C'nin ilk drt deeri olarak C'ye ve son deer de D'nin 4'nc elemanna okunur veya WRITE(UNIT=9)A,B,(C(I),I=1,4),D(4) deyimi ile nce A'nin deeri,sonra B'nin 20 deeri,daha sonra C'nin ilk drt deeri ve son olarak da D'nin 4'nc degeri yazlr. Eer gerekiyorsa st kapal belirtilen DO'lar bir arada kullanlabilir.Mesela 10*20'lik bir A dizisi ile 10 boyutlu bir B dizisini gz nne alalm.A'nin her bir satiri okunduktan sonra ,B'nin bir elemann okutmak istiyorsak,aadaki deyimi kullanabiliriz: READ(UNIT=5) ((A(I,J), J=1,20), B(I), I=1,10) Benzer ekilde A'nn her bir satirini yazdktan sonra B'nin bir elemann yazdrmak iin aadaki deyimi kullanrz: WRITE(UNIT=9) ((A(I,J), J=1,20), B(I), I=1,10)
DO 15 hJ = 1,M DO 105 L = 1,M,3 ....... ...... ........... ......... ....... ...... ........... .......... 15 CONTINUE ..........................................100 CONTINUE 10 CONTINUE ...........................................105 CONTINUE doru olduu halde ...................................... yanltr. 3.DO alan iinde DO nun indisleyici parametreleri olan i , m1 , m2 ve m3 deitiren, yeniden tanmlayan bir deyim kullanlamaz.Mesela aadaki program birimindeki M = I + 1 deyimi hataldr. ........ ......... M=2 DO 5. I = M,5 M=I+1 X = A(I)*B(M) 5 CONTINUE ........ ............ 4.DO alan iinden bu alann disina atlamak mmkndr. Sapma annda DO deikeninin deeri son ald deerde kalr.Fakat DO alan iine bu alann dndan girmek mmkn deildir.nk bu durumda DO deikeninin deeri belirlenemez.
25
END deyimine numara verilebilir.Bu deyim bir program biriminin son deyimi olup, programdaki herhangi bir deyimden nce gelemez.Eer ana programda ise,ana programn ifasn durdurur, altprogramda ise RETURN deyimi gibi ilem grr. END deyimi ifa edildii anda ,altprogramdaki yapma argmanlar ile gerek argmanlar arasndaki balant kesilir.Altprogramdaki tm birimler aadakiler hari olmak zere tanmsz olur. -SAVE deyiminde tanmlanan birimler, -Etiketsiz COMMON'daki birimler, -Balangta tanmlanan birimlerden yeniden deer almam veya tanmsz olmam olanlar, -Hi olmazsa baka bir program biriminde de grnen bir altprogramdaki etiketli COMMON bloklar. Function alt programndaki END deyimi: Tm function alt programlar END deyimi ile bitmelidir.Ayrca bu altprogramlarda RETURN deyimi de bulunabilir.END deyimi fiziksel olarak altprogram n sonunu belirler. Subroutine alt programndaki END deyimi: Tm subroutine alt programlar END deyimi ile bitmelidir.Ayrca RETURN deyimleri de bulunabilir(altprogramin farkl yerlerinde).END deyimi altprogramn fiziksel olarak bittiini belirler.Eer bir subroutine alt programn ifas esnasnda END deyimine ulalrsa ,bu deyim RETURN deyimi gibi ifa edilir.
26
Assign'a bal GO TO deyimini grmeden , bir atama deyimi olan ASSIGN deyimini inceleyelim. Assign deyimi: ASSIGN deyimi tamsay bir deikene bir say atar. Genel format: ASSIGN d TO i Burada d, ASSIGN deyimini iinde bulunduran bir program birimindeki ifa edilebilen bir deyimin veya bir FORMAT deyiminin numarasdr. i, 4 bayt uzunluunda olan bir tamsay deikenin (bir dizi eleman olamaz) adidir. Bu deiken deyim numaras d'ye atanmaktadr.Deyim numaras ASSIGN deyiminin bulunduu program birimindeki bir deyimin numaras olmaldr.ASSIGN deyiminin ifa s , bir deikenin bir deyim numaras tarafndan tanmlanmas ile olur.Bu deiken ,Assign'a bal GO TO deyiminde veya bir giri/k deyiminde belirlenen bir format deyiminde verilen deyim numaras ile tanmlanabilmelidir.Bir deyim numaras ile tanmlanan bu tamsay deiken ,ayni veya farkl deyim numaralar ile veya bir tamsay deer ile yeniden tanmlanabilmelidir. Eer d ifa edilebilen bir deyim numaras ise i deikeni Assign'a bal bir GO TO deyiminde kullanlabilir.Eer d bir FORMAT deyiminin numaras ise i deikeni format kontrol bir, READ, WRITE veya PRINT deyimindeki format tanmlaycs olarak kullanlmaldr.
27
Burada i , bir ASSIGN deyimi ile bir deyim numaras atanan 4 bayt uzunluundaki bir tamsay deikendir(bir dizi leman olamaz).d assign'a bal GO TO deyimini iinde bulunduran program birimindeki ifa edilebilen bir deyimin numarasdr.( d1 , d2 , ....) ile gsterilen numaralar listesini kullanmak zorunlu deildir.Eer bu liste kullanlmazsa i den sonra gelen virgl de kullanlmaz.Ayrca bu liste kullanlsa da i den sonraki virgl kullanlmayabilir.Assign'a bal GO TO deyiminin kullanld program biriminde bulunan ve i deikenine atanan deyim numaras listedeki deyim numaralarndan biri olmaldr.Deyim numaras listede birden ok grlebilir.Yani , d1 = dj = .... olabilir. Mesela, GO TO I , (10,25,50) deyiminde :Eer tamsay deiken I'ya o anda t atanan deer deyim numaras 50 ise GO TO.... deyiminden sonra 50 nolu deyime saplr; Eer I'ya atanan deer deyim numaras 10 ise bir sonraki admda 10 nolu deyime saplr.Mesela, ASSIGN 10 TO KOD GO TO KOD , (10 , 20 ,30) ............. 10.. A = B ............ 20.. A = C ........... 30.. A = D ............. program biriminde GO TO deyiminden sonra 10 nolu deyime saplr ve B' nin deeri A' ya tanr.
28
Burada d , hesaplanm GO TO deyiminin iinde bulunduu programdaki ifa edilebilen bir deyimin numarasdr. Ayni deyim numaras parantez iinde birden fazla kullanlabilir. m , tamsay bir ifadedir. m den nceki virgl seimliktir.Eer m nin deeri , n parantez iindeki deyim numaralarnn says olmak zere , 1 < m < n aralnn dna ise hesaplanm GO TO deyiminden sonraki deyim ifa edilir. rnek : 5 .GO TO ( 1,2,3,2 ) , IX 1. A = A + 1.0 ...GO TO 3 2 .A = A + 2.0 3 .CONTINUE
29
3.2.6. * IF Deyimleri
IF deyimleri verilen koula bal olarak ortaya kan farkl durumlarda yaplacak ilemi belirler. tr IF deyimi vardr : -Aritmetik IF -Blok IF ; END IF , ELSE , ELSE IF -Lojik IF
30
3.2.6.3. IF-Level :
Bir programdaki IF-level'lerin says blok IF deyimi ile END IF'den oluan deyimlerin says ile hesaplanr.
3.2.6.4. IF-Block :
Bir IF-block, blok IF deyiminden sonraki ilk deyim ile baslar son ELSE IF, ELSE veya END IF deyiminden nceki deyimde biter.Eer IF-block'un iinde ifa edilebilen bir deyim yok ise IF block bostur denir. Kontrol bir IF blounun iinden baka bir IF blounun iine aktarlamaz.Bir blok IF deyiminin ifasnda nce m ifadesi deerlendirilir. Eer m nin deeri doru(true) ise IF-block'undaki ilk deyimden balayarak srasyla deyimler ifa edilir.Eer m nin doru ve IF-block bos ise kontrol bir sonraki END IF deyimine(ayni IF-level'inda olan) aktarlr.Eer m nin deeri yanl(false) ise kontrol ayni IF-level'inde olan bir sonraki ELSE IF, ELSE veya END IF deyimlerine aktarlr.Bir blok IF deyimi DO dngs ile kesilemez, yani i ie giremez.
31
ifade m yanl ise kontrol ayni IF-level'indeki son ELSE IF, ELSE veya END IF deyimine aktarlr. Kontrol bir ELSE IF-block'unden baka ELSE IF-block'una aktarlamaz. ELSE IF deyiminin deyim numaras ile bir baka deyime geilemez. Bir END IF deyimi DO dngs iinde kullanlamaz. rnek 1 : IF ( I . LT . J ) THEN ........ ELSE IF ( I . GT . J ) THEN .......... END IF rnek 2 : IF ( I . LT . J ) THEN .......... ELSE IF ( I . GT . J ) THEN ........... ELSE END IF rnek 3 : Aadaki program saysal notlar alfabetik notlara dntrmek iin hazrlanm basit bir uygulamadr. Blok IF deyimi kullanlarak hazrlanan bu program baka ekillerde de yazlabilir. .....CHARACTER*1 N1/'A' / , N2/'B' /, N3/ 'C'/ ,N4/ 'D'/ 1.. READ ( 5,5,END = 90 ) NO, NOT 5.. FORMAT ( I5,35X,I3 ) .....IF ( NOT.LE.25 ) THEN .....WRITE ( 6,30 )NO , N4 .....ELSE IF ( NOT . LE .50 ) THEN .....WRITE ( 6,30 )NO , N3
33
......ELSE IF ( NOT.LE.75 ) THEN ......WRITE ( 6,30 )NO , N2 ......ELSE ......WRITE ( 6,30 )NO , N1 .....END IF 30 .FORMAT ( 5X,I5, 'NOT = ' , A1) ......GO TO 1 90 . STOP ...... END
34
35
RETURN deyiminin ifas ile altprogramdaki yapma argmanlar ile gerek argmanlar arasndaki iliki kesilir.Altprograma giren argmanlarn tm , aadakiler hari tanmsz olur. -SAVE deyiminde belirlenen argmanlar, -DATA ve ak tip bildirme deyiminde kullanlan argmanlar, -Etiketsiz COMMON deyimindeki argmanlar . Subroutine alt programndaki RETURN deyimi : Subroutine alt programlar da RETURN deyimi bulundurmaldr. Bu RETURN deyimi lojik olarak hesaplama sonucunu belirler ve kontrol aran programa aktarr. Genel format: RETURN ( m ) Burada m , bir tamsay ifadedir. RETURN deyiminde m kullanlmazsa veya m nin deeri birden kk ise veya SUBROUTINE deyiminde belirlenen ( * ) asterikslerin saysndan fazla ise kontrol CALL deyiminden sonraki deyime aktarlr. Bylece CALL deyiminin ifas tamamlanr.Eer , n SUBROUTINE deyimindeki asterikslerin says olmak zere 1<=m<=n ise m nin deeri yapma argman listesindeki m inci asteriksi belirler. CALL deyimindeki geri dn belirleyicileri ile SUBROUTINE deyimindeki asteriksler arasnda birebir bir iliki olmaldr. Bu ilikiye gre herhangi bir asterikse karlk gelen bir geri dn belirleyicisi bulunur ve RETURN deyiminin ifas ile bu deyime saplr.RETURN deyimi ifa edildiinde altprogramdaki yapma argmanlar ile gerek argmanlar arasndaki iliki kesilir.Altprograma giren argmanlarn tm, yukarda belirlenen gruptaki argmanlar hari olmak zere tanmsz olur. RETURN m ile birlikte kullanlan bir CALL deyiminin daha iyi anlalmas iin hesaplanm, GO TO deyimlerinden oluan deyim grubunun incelenmesi gerekir.Mesela aadaki CALL deyimi :
36
CALL SUB ( X , * 10 , Y , * 20 , Z , * 30 ) aadaki deyimlere denktir: CALL SUB ( X , Y , Z , I ) GO TO ( 10 , 20 , 30 ) , I Buradaki I arlan altprogramda 1, 2 veya 3 deerlerini alan bir deikendir.Yukardaki CALL deyiminde de m nin 1 olmas halinde 10 nolu deyime , 2 olmas halinde 20 nolu deyime , 3 olmas halinde 30 nolu deyime saplr.
dizi kullanmak ilk etapta getirdii ifade kolaylklar ile gze arpmaktadr.rnek olarak aada polinomun deiik ekillerdeki yazlmlarn ve en sonda da dizi olarak bir tanm verilmitir.anlayacanz zere dizi kullanmak hem sadeleme hem de gncelleme salamstr.gncelleme diyoruz nk ifadede tek bir rakam deitirmek ,ki bu say 5'tir,ifadenin uzunluu deitirmeden ifade avantaj salyor.konumuz ile alakal olarak verilebilecek nemli bir rnek tipi ise sralama algoritmasdr. Tanm: zerinde toplama,arpma ,arpma ve blme ilemlerinin zel olarak tanmland bir ve iki boyutlu dizilere cebirde vektr ve matris adi verilir.Bu tanma ilikin,matris ve vektr kullanmna bir rnek alalm;normalde seklinde yazlan bir bilinmeyenli bir denklem takm, katsaylar matrisi A ; bilinmeyenler vektor x ; ve sabitler dizisi b ; kullanarak A.x=b seklinde yazlabilir.Burada seklinde tanmlanm diziler olup , arpm ilemi zel kurallara gre yaplr.Bu ekilde yapld zaman denklem takmlarnn algoritmik yolla ,baka bir deile programlama ve zm daha kolay ifade edilebilir.Dizi kullanmnn programcya (algoritma tasarmcsna) getirdii anlatm kolaylklar,tm programlama dillerinde diziler ve diziler zerinde ilemleri kolaylatran deyimlere yer verilmesine yol amtr. Kme aralarnda ortak bir iliki bulunan nesneler topluluudur.(rnein bir snftaki renciler ,bir lkenin kentleri veya bir polinomun katsaylar gibi).Eleman kmeyi oluturan nesnelere denir.Dizi elemanlar kme iinde belli bir sra iinde ise kmenin ald addr. Kme ve dizi arasndaki fark aada gsterilmitir; ndis elemann dizi iindeki yerini belirleyen bilgiye denir.(rnein yukardaki dizide nc elemann adi andr demek indise bir rnektir.).Diziler tek boyutta tanmlanabilecei gibi iki boyutta da tanmlanrlar.Aadaki rnei inceleyiniz;dizi kullanmak ilk etapta getirdii ifade kolaylklar ile gze arpmaktadr.rnek olarak aadaki polinomun deiik ekillerdeki yazlmlarn ve en sonda da dizi olarak bir tanm verilmitir.anlayacanz zere dizi kullanmak hem sadeleme hem de
38
gncelleme salamtr.Gncelleme diyoruz nk ifadede tek bir rakam deitirmek ,ki bu say 5'tir,ifadenin uzunluu deitirmeden ifade avantaj salyor. konumuz ile alakal olarak verilebilecek nemli bir rnek tipi ise sralama algoritmasdr. Tanm: zerinde toplama,karma ,arpma ve blme ilemle ilemlerinin zel olarak tanmland bir ve iki boyutlu dizilere cebirde vektr ve matris adi verilir.Bu tanma ilikin,matris ve vektr kullanmna bir rnek alalm;normalde seklinde yazlan bir bilinmeyenli bir denklem takm, katsaylar matrisi A ; bilinmeyenler vektr x ; ve sabitler dizisi b ; kullanarak A.x=b seklinde yazlabilir.Burada seklinde tanmlanm diziler olup , arpm ilemi zel kurallara gre yaplr.Bu ekilde yapld zaman denklem takmlarnn algoritmik yolla ,baka bir deile programlama ve zm daha kolay ifade edilebilir. Dizi kullanmnn programcya (algoritma tasarmcsna) getirdii anlatm kolaylklar,tm programlama dillerinde diziler ve diziler zerinde ilemleri kolaylatran deyimlere yer verilmesine yol amtr. Al gol programlama dilinde "while ...do", Basic prog. dilinde "for ...next", FORTRAN prog. dilinde "Do" evirimleri bu amaca yneliktir.
39
OPEN (UNIT =nuf, FILE ='fna', STATUS ='st', ACCESS ='ac', FORM ='ft, RECL =rl) biimindedir. Burada: nuf : Yaratlacak ya da alacak ktn numarasdr. Bulunmas zorunludur. fna : Yaratlacak ya da alan ktk addr. Deiken kurallarna uyar. st : Herhangi bir ktk daha nce yaratlm ya da ilk defa yaratlacak olabilir. Eer OPEN deyiminde st yerine NEW yazlrsa ktn yaratlmakta olduu, OLD yazlrsa daha nce yaratlan bir ktn almakta olduu anlalr. ac : Kte eriim sral ya da dorudan olabilir. Belirtilmezse sral eriim vardr. ft : Ktk ile ilgili yaplacak okuma ya da yazma ilemlerinde format kullanlp kullanlmayaca belirtilir. Belirtilmezse sral eriim durumunda formatsz, dolayl eriim durumunda formatl olarak yaplr. rl : Kaytlarn uzunluklarn tanmlamakta kullanlr. En uzun kayt uzunluu alnr. OPEN(13, STATUS='NEW', ACCESS='SEQUENTIAL', FORM='FORMATTED', RECL=15)
Alan ktklerin kapanmas ilemi CLOSE deyimi kullanlarak gerekletirilir. Genel yazl: CLOSE (UNIT =nuf, STATUS ='st') biimindedir. Burada: st : Ktk kapatma trn gsterir. Delete ve Keep durumlar sz konusudur. Delete silmek, Keep saklamak iin yazlr. CLOSE(13, STATUS='KEEP') 40
Ktkten okuma yaplmas ilemi READ deyimi ile olur. Genel yazl: READ (UNIT =nuf, fs, END =sst, ERR =hst, REC =m)dl biimindedir. Burada: nuf : Okuma yaplacak ktn numarasn fs : Okuma iin kullanlan formatn deyim numarasn sst : Okuma ilemi bittiinde ya da ktk sonunda devam edilecek ktk numarasn hst : Okuma srasnda ortaya kabilecek hatalar durumunda devam edilecek deyim numarasn m : Ktkte okutma yaplan kaydn numarasn dl : Birbirinden virglle ayrlm deerleri okutulacak deikenleri gsterir. READ(1,10,END = 20)GR,LR,NRM
Herhangi bir kte veri girilmek ya da yazlmak istendiinde WRITE deimi kullanlr. Genel yazl: WRITE (UNIT = nuf, fs, ERR = sst, REC = m)dl biimindedir. Burada: sst : Yazma hatalar durumunda devam edilecek deyim numarasn gsterir WRITE(1,10, ERR = 100, REC=5)D,E,F 41
Ktn herhangi bir yerinden ilk tutanaa dnlmesini salar. Genel yazl: REWIND(nuf) biimindedir. Burada nuf ktk numarasn gsterir. READ(2)
42
1)Aadaki program sral bir ktk yaratr, bu kte bilgileri yazar, kt kilitler ve kapatr. Daha sonra kt aar ve ktkteki bilgileri okuyup ekrana yazar. Dimension A(9,9) Open (Unit=5, File='Ver',Status='New') Read (*,*)A Write (5,*)A Close (5,Status='Keep') Open (5,File='Ver',Status='Old') Read (5,*,End=77)A Write (*,*)A Goto 130 Close (5) Stop End 2)renci notlarn bulunduu sral ktkten okuyan ve ortalamalar yazan bir program ise: Dimension Onot (1500) Open (5, File='Onot') Do 50 I-1, 1500 Read (5,*,End=100) Onot (I) Tnot=Tnot+Onot(I) K=K+1 50 Continue 100 Ornot=Tnot/K Write (*,*)Ornot Stop End 43
6. RNEK PROGRAMLAR
! Write the values of "pi" and "e." program A01 program A01 ! (specification statement) ! (specification statement)
implicit none ! (specification statement) implicit none ! (specification statement) ! start program A01 ! start program A01 write (unit = *, fmt = *) atan2( 0.0, -1.0 ), exp( 1.0 ) ! (instruction) write (unit = *, fmt = *) atan2( 0.0, -1.0 ), exp( 1.0 ) ! (instruction) stop ! (instruction) stop ! (instruction) end program A01 ! (specification statement) end program A01 ! (specification statement) ! Write the values of "pi" and "e." ! Write the values of "pi" and "e." program A01 program A01 ! (specification statement) ! (specification statement)
implicit none ! (specification statement) implicit none ! (specification statement) ! start program A01 ! start program A01 write (unit = *, fmt = *) atan2( 0.0, -1.0 ), exp( 1.0 ) ! (instruction) write (unit = *, fmt = *) atan2( 0.0, -1.0 ), exp( 1.0 ) ! (instruction) stop ! (instruction) stop ! (instruction) end program A01 ! (specification statement) end program A01 ! (specification statement)
44
proram ex511 use triangle real::a,b,c logical::triangle,isosceles,equilateral call find (a,b,c,triangle,isosceles,equilateral) print*,"This program decides the type of a triangle" print*,"Given with the side lenghts :" print*,"" do print*,"Enter the side lenghts!" print*,"" read::a,b,c if (isosceles) then print*,"The triangle is an isosceles" else if (equilateral) then print*,"The triangle is equilateral" else print*,"The triangle is a scalane" endif endif end do end program ex511 aca yoneliktir. . kta liste belirtilmez .
45