You are on page 1of 45

1.

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.

1.1. Makine Dili ile Kodlama


Problem nce,bilgisayarn zellikleri ve mevcut komutlarla yapabilecei ilemler dizisi biiminde ifade edilir;sonra programc tarafndan bu, bilgisayarn makine dilinde yazlr.Elde edilen makine dilindeki program gerekli veri ile birlikte,bilgisayarca dorudan doruya icra edilebilir ve aranan sonular bulunur.Ancak makine dili ile programlamada baz nemli glkler ortaya kar.Btn komutlarn makine dili ile kodlanmas; komutlarn makine tarafndan icra olunacak srada yazlmas ve yanllkla ya da baka bir nedenle baz komutlar atlanmsa, bundan sonraki btn komutlarn araya eklenenler iin telenmesi ve adreslemenin yenilenmesi zorunluluu;btn lojik ve program dzenlemenin programc tarafndan yaplmas;programcnn kulland bilgisayar ok iyi anlam olma gerei bu glklere rneklerdir.

1.2. Programlama Sistemleri


Programlama sistemleri genel olarak bir dil ve bir birletirici ya da derleyici programdan oluur.Programlama dili,programc tarafndan kolayca renilebilecek ve yazlabilecek,bilgi ilem sisteminin yapm zellikleri ve yaplacak ilemler arasnda uzlama salayabilecek bir biimde olmaldr.Bu dilin,dier herhangi bir dildeki gibi, dilbilgisi,noktalama ve yazma kurallar olaca acktr. Bir bilgisayarda programlama sistemlerinin bulunmas makine dilinde programlamann glklerini nemli lde azaltr.Birletirici program ve derleyiciler,programlarn makine dili dnda probleme ynelmi bir dilde hazrlanabilmesi olanan salar.Programlama dilinde makine diline eviriyi,birletirici ya da derleyici aracl ile,bilgisayarn kendisi yapar. Programlama sisteminin dili makineye ya da programa ynelmi olabilir.

1.3. Sembolik Programlama Sistemleri


Sembolik programlama sistemleri,programcy makine dili ile kodlamann glklerinden byk lde kurtarr;fakat belli bir bilgisayara gre hazrlandklarndan ve sistemin programlama dilinin ksmen makineye ynelik olmasndan dolay makine dili dzeyinde alan ,renilmeleri olduka uzun suren sistemlerdir ve her bilgisayar iin farkldr,dier bir deyile makineye baldr;her bilgisayarda ayni dil kullanlamaz.

1.4. Probleme Ynelmi Diller ve Derleyiciler


FORTRAN,COBOL,ALGOL, vb. bu tur programlama sistemlerine baz rneklerdir.Bu tur programlama sistemleri ile almada,temel programn derleyici program aracl ile bilgisayarca,belli kurallara uyarak makine dili programna evrilmesine derleme denir.Derleme srasnda rastlanan dil kurallarna aykr olan hatalar zel hata mesajlar ile bilgisayarca programcya bildirilir. Probleme ynelmi dillerin en nemlilerinden biri,bilimsel ve mhendislik aratrma ve uygulamalar iin gelitirilen ve en yaygn olarak kullanlan FORTRAN dilidir.FORTRAN adi,forml evirisi anlamndaki, ngilizce "FORmula TRANslation" kelimelerinin ilk hecelerinden oluur.FORTRAN dili saysal hesapla ilgili herhangi bir problemin kolaylkla ifade edilebilmesini salayacak biimde dnlmtr.Komutlar ya da deyimler herhangi bir glk olmakszn anlalabilir ve yorumlanabilir.Baz deyimler problemin matematiksel bantlarna ok benzer. FORTRAN programlama sistemi 1954 ylnda J.W Backus tarafndan nerilmi ve ilk kez 1957 yl baslarnda IBM 704 Bilgi lem Sisteminde kullanlmtr.1960 ylnda BURROUGHS kendi bilgisayarlar iin bir FORTRAN derleyicisi hazrlamtr.Gnmze kadar eitli FORTRAN programlama sistemleri gelitirilmi ve kullanlmtr.FORTRANII,FORTRANII-D,FORTRANIV bunlarn en nemlilerine rneklerdir.Genel olarak,bir sonraki ilemin bir ncekine gre daha gelimi olduu ve programlamada daha geni olanaklar salad sylenebilir.

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

2.3. Fortran Aritmetii


Bilgisayarla yaplan hesaplarda ileme giren byklklerin tamsay yada gerel say olmas , ilemlerin yapl ve sonular ynnden byk farkllklar gsterir . Tamsay aritmetii , tamsaylarla yaplan ilemler anlamndadr ; her ilemin sonucu da tamsay olacak biimde kesilir , yuvarlatma yaplmaz . Kesme ilemi ncelik srasna gre yaplan btn ilemler iin sz konusudur . Bu nedenle bu tr aritmetik ilemlerin yapl sras ve parantezler ok nemlidir . Tamsaylar programlarda eleman numaras , indis, vb. amalar iin kullanlr . Aritmetik ilemler ounlukla gerel saylarla yapldndan tamsay artimetiinin bu zellii bir saknca deildir . Gerel say aritmetii , gerel saylarla yaplan ilemler anlamndadr . Burada kesirler prezisyon hanesi kadar rakamla gsterilir ; dier hanerler bilgisayar zellikerline gre ya kesilir , ya da yuvarlatlr . Kesme hatalar ve dier saysal hesap yntemleri konusudur .

2.4. Fortran Alfabesi


FORTRAN alfabesi 10 nmerik , 26 alfabetik ve 13 zel karakterden oluur .

2.5. Karakterler Simge/Anlam


Nmerik 0 1 2 3 4 5 6 7 8 9 Alfabetik A B C D E F G H I J K L M N O P R S T U V W Y Z zel boluk boluk brakma = yerine koyma + art - eksi * arp / bl ( a parantez ) kapa parantez

. nokta , virgl ' apotrof " trnak & ve iareti

2.6. Fortran Deyimleri


Bir FORTRAN temel program bir takm deyimlerden oluur . Deyimle programn hesap dzeni ile ilgili olarak , bilgisayara bilgi verilmesini , ilemlerin yaplmasn ve icrasn , gerekli kararlarn verilmesini , sonularn d ortama alnmasn salar Deyimlerle balant kurabilmek iin , deyimler numaralanabilir . cra sras ynnden deyim numaralarnn srasnn bir nemi yoktur . Deyi numaralar sadece hesap dzeninin gerei olarak bu deyimlerle dallanabilme olana salar ; iki deyime ayn numara verilemez .

2.7. Fortran simleri


Fortran dilinde dilinde indissiz ve indisli deikenlere , FORTRAN ariv fonksiyonlarn , aritmetik deyim fonksiyonlarna , FUNCTON altprogramlama isimle verilir FORTRAN isimleri birincisi nmerik olmayan 1 - 6 alfabetik ya da nmerik karakterden oluur ; zel karakterler kullanlamaz . Ayn isim birka elemana verilemez . Komutlar iin ayrlan zel kelimeler FORTRAN zel ismi olarak kullanlamaz 3. DEYMLER VE SAYISI GREV ADLARI Aritmetik deyimler yaplacak ilemleri denetler deiken = ifade Giri k deyimleri D ortamla bilgisayar arasnda bilgi alverii salar READ WRITE FIND 5

FORMAT REWND BACKSPACE ENDFILE REDREAD NAMELIST

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

3.1.1. READ Deyimi


READ deyim d ortamdan ve evre belleklerden bilgisayara bilgi aktarlmas olanan salar . Bu deyim bilgisayara bal giri nitesinden bilgi okunmas durumunda

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 .

3.1.2. WRITE Deyimi


WRITE deyimi bilgisayar belleinden d ortama ve yardmc bellek nitelerine bilgi aktarma olana salar . Bu deyim bilgisayara bal bir k aygtndan bilgi alnmas durumunda 9

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 .

3.1.3. FORMAT Deyimi


Format deyimi bilgisayara bilgi giri klarnda data zelliklerini , yani verinin ne tipte ve ve ne uzunlukta olduunu belirtir . Bir yada daha ok giri k deyimi ile ilikili olan bu deyim n FORMAT ( f1 , f2 , ..fn) eklinde yazlr . Buradan n giri k deyimlerinde belirtilen deyim numaras ve f1 , f2, .. , fn ise FORMAT deyimin bal olduu giri k listesindeki deikenlerin deerlerinin hangi formda dntrleceini gsteren alan bildirileridirler . Alan bildirileri ve giri k listesindeki deikenle say , sra ve mod bakmndan uyumaldrlar . Format deyimi icra edilemez trde bir deyimdir ; fonksiyonu ama programda bilgi iletimini istenen dzeyde gerekletirmekti . Bu nedenle Temel Programn iinde herhangi bir yerde bulunabilir ; yalnz DO evrimi kapsamnn son deyimi olamaz . 10

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 .

3.1.4. FIND Deyimi


Bu deyim FIND ( F = r ) eklinde yazlr . Okuma zamanndan nce bir tutanan yklenmesini salar . Tutanak tampon bellekte ( buffer ) deilse , Kullanlabilecek bir tampon bellek varsa , tutana ieren blokta okuma balatlr ; yoksa FIND gz nne alnmaz . Bir READ deyimi icra edildiinde , okunacak bir tutanak olup olmadn anlamak iin tampon bellek kontrol edilir ; tutanak yoksa tutana ieren bloktaki READ balatlr . REWND deyimi erit ya da disk ktphanelerinde kullanlan bir deyimdir ; REWIND eklinde yazlr . Bu deyimin icras ktnn balang konumuna getirilmesini salar . Ktnn son referans bir WRTE deyimi ise , balang konumuna dnlmeden nce , ktk kapatlr . REWIND deyimi erit ya da disk ktklerinden baka yerde tanmszdr .

3.1.5. BACKSPACE Deyimi


i ktnden gsterge m kaydnda bulunuyorsa BACKSPACE deyiminin icras ktk gstergesinin bir nceki ( m - 1 ) . kayda gelmesini salar . Bu deyim BACKSPACE i

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 .

3.1.6. ENDFILE Deyimi


Bu deyim ktn kapatlmasn salar ve ENDFILE i genel biiminde yazlr . Yalnz erit ktkleri iin tanmlanmtr . Bir i ktnde WRITE deyimini izleyen bir ENDFILE deyimi varsa , bir ktk sonu ( END - OF FILE ) kayd yazlr ve erit bir sonra yazlacak kayt , ktk sonu kaydn izleyecek biimde konumlandrlr . i ktnde ENDFILE deyimi bir READ deyimini izlerse , biti etiketlerine rastlanmsa , erit bir sonraki ktk balangcna konumlandrlr ; biti etiketine rastlanmamsa geri sarlr . Kapatlm bir ktkte BACKSPACE , ENDFILE , REWIND deyilerinden birinin icras ile karlarsa , bu deyim gz nne alnmaz . REREAD Deyimi Bu deyim herhangi bir ktkte okunan en son kayda yeniden eriilmesini salar ; REREAD genel biiminde yazlr . cra edilecek bir sonraki READ deyimi ile ilikilidir ; son kaydn ktkten okunmasn salar . REREAD deyiminden nce gelmelidir .

3.1.7. NAMELIST Deyimi


NAMELIST deyimi deiken yada dizi isimleri kmesinin bir tek isimle belirlenmesini ve giri kta READ ya da WRTITE deyimi listesine gerek kalmakszn giri k yaplabilmesini salar . Bu deyim NAMELIST / ad /i1 ,i2..../ ad2/in

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.

3.2. FORTRAN-KONTROL Deyimleri

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

3.2.1. *CALL Deyimi


19

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

3.2.2. *CONTINUE Deyimi


Continue deyimi ifa edilebilir bir kontrol deyimidir,fakat ifann srasna etki etmez.Bu deyim DO dngsnn sonunu belirlemek amacyla veya programda bir etiket grevi iin kullanlr. Genel formati:CONTINUE Continue deyimi ifann srasna etki etmediinden kaynak programn herhangi bir yerinde kullanlabilir.Genellikle DO dngsnn son deyimi,koulsuz veya assign'e bal GO TO,blok IF, ELSE IF, ELSE , END IF, STOP, RETURN , END,aritmetik IF,baka bir DO deyimi veya lojik IF deyimi olamaz.Bundan kanmak iin CONTINUE deyimi kullanlr. 20

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

3.2.3. *DO Deyimi


DO deyimi kendisinden sonra gelen ve belirlenen bir deyime kadar olan tm deyimleri tekrar tekrar ifa edilmesini salar.Bu deyimler <<DO dngs>>olarak adlandrlr.Genel formati:Araligin sonu ffffDO deikeni balang degeri son deer Arg DO d1[,]= m2 [,m3] Burada d1,DO deyiminin bulunduu programda ve DO deyiminden sonra gelen ifa edilebilen bir deyimin numarasdr.d1'den sonra gelen virgl seimliktir.i, DO deikeni olarak adlandrlan bu deiken ,bir tamsay,gerel veya ift duyarlkl bir deikendir (dizi eleman olamaz) m1,m2,m3 bir tamsay,gerel veya ift duyarlkl aritmetik ifadedir.m1,m2 ve m3 ifadelerinin deerleri ,eer gerekirse ,DO deikenin tipine dntrlr.m3 seimliktir ve hibir zaman sfr olamaz.Eer m3 belirtilmezse deeri 1 olarak alnr ve m3'den sonra virgl konmaz. Aadaki kurallarn geerli olmas halinde DO dngs iindeki deyimler ifa edilir.

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)

3.2.3.1 DO Deyimine liskin Kurallar:


1.DO dngs iinde herhangi bir fortran deyimi kullanlabilir.Fakat dngnn son deyimi koulsuz veya assign'e bal GO TO, blok IF, ELSE IF, ELSE, END IF,STOP,RETURN ,END ,aritmetik IF,lojik IF veya bir baka DO deyimi olamaz.Bundan kanmak iin genelde DO dngsnn son deyimi olarak CONTINUE deyimi kullanlr. 2.Bir DO alan iinde baka DO dngleri olabilir.Ancak iteki DO alannn tamam dtaki DO alann iinde kalmaldr. teki DO ile dtaki DO alanlarnn bitii ayni deyime rastlayabilir. DO 10ffI = 1,N DO 100 K = 1,N,2 24

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.

3.2.4. *END Deyimi


Bir programn sonunu tanmlayan END deyimi anaprogramn veya function, subroutine veya blok data alt programlarnn ifasn durdurur. Genel formati: END

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.

3.2.5. *GO TO Deyimleri


GO TO deyimleri kontrol programdaki ifa edilebilen bir deyime aktarr. tr GO TO deyimi vardr: -Assign'a bal GO TO deyimi, -Hesaplan GO TO deyimi, -Koulsuz GO TO deyimi.

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.

3.2.5.1. Assign'a bal GO TO Deyimi:


Assign'a bal GO TO deyimi , i nn o andaki deerine bal olarak kontrol d1 , d2 , d3 ,..... ile numaralandrlm deyime saptrr.rnein i nin deeri d2 ise GO TO ... deyimi ile d2 no lu deyime saplr. Genel format: GO TO i [ [, ](d1 [ , d2][ , d3 ]...) ]

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.

3.2.5.2 Hesaplanm ( Computed ) GO TO Deyimi :


Hesaplanm GO TO deyimi , m nin o andaki deeri 1,2,3,.... deerlerine bal olarak kontrol d1 , d2 , d3 ,.... numaral deyimlerden birine aktarr. Genel format: GO TO ( d1 , [ , d2] [ ,d3 ]...) [ , ] m

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

3.2.5.3 Koulsuz GO TO Deyimi :


Koulsuz GO TO deyimi kontrol deyim numaras belirlenen deyime aktarr. Bu GO TO deyiminin her ifa ediliinde kontrol ayni deyime aktarlr. Genel format: GO TO d Burada d , koulsuz GO TO deyiminin iinde bulunduu programdaki ifa edilebilen bir deyimin numarasdr.Bu deyimden sonra gelen ifa edilebilir herhangi bir deyimin , bir deyim numaras olmas gerekir, aksi halde bu deyim isleme konmaz veya ifa edilemez. rnek : ........ ....GO TO 1 2. B = A * 200.0 .......... 1. A = B + 10.0 ...........

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

3.2.6.1 Aritmetik IF Deyimi :


Aritmetik IF deyimi , aritmetik ifade ( m ) nin deeri sfrdan kk, sfra eit veya sfrdan byk olduu zaman kontrol d1 , d2 veya d3 numaral deyimlere aktarr. Ayni IF deyiminde bir deyim numaras birden ok kullanlabilir. Genel format: IF ( m ) d1, d2 , d3 Burada m, kompleks tipte olmayan herhangi bir aritmetik ifadedir. d1 , d2 ve d3 ; IF deyiminin de iinde bulunduu programdaki ifa edilebilen bir deyimin numarasdr.Bu deyimden sonra gelen ifa edilebilir herhangi bir deyimin bir deyim numaras olmas gerekir; aksi halde bu deyim asla isleme konmaz veya ifa edilemez. 3.2.6.2 : Blok IF Deyimi: Blok IF deyimi END IF deyimi ile birlikte kullanlr ve gerektiinde ELSE IF ve ELSE deyimleri ile de kullanlabilir. Genel format: IF ( m ) THEN Burada m, herhangi bir lojik ifadedir. Blok IF deyimi ile ilgili olan iki terim vardr .Bunlar IF-level ve IF-block terimleridir.

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.

3.2.6.5. END IF Deyimi :


END IF deyimi bir IF-block'unu bitirir .fa srasn deitirmez. Genel format: END IF Her bir blok IF deyimi iin ayni programda bir END IF deyimi bulunmaldr. Bu END IF deyimi blok IF deyiminin son deyimidir ve ifa srasna etki etmez.END IF deyimi DO dngs iinde olmamaldr. rnek : IF ( A . GT . B ) THEN ........... END IF

31

3.2.6.6 ELSE Deyimi :


Eer bir nceki blok IF veya ELSE IF koulu yanl olarak deerlendirildi ise ELSE deyimi ifa edilir.Normal ifa srasn deitirmez. Genel format: ELSE Bir ELSE-block ayni IF-level'indeki son END IF deyimi ile ELSE deyimi arsndaki ifa edilebilir deyimlerden oluur.Burada ELSE deyimi ile END IF deyimi ELSEblock'a dahil deildir.Bir ELSE-block bos olabilir.Bir IF-block'unda yalnz bir ELSE olabilir. Bir ELSE block'unun iinden bir baka ELSE block'unun iine geilemez.ELSE deyimi DO dngs iinde kullanlamaz. rnek: IF ( A . EQ . B ) THEN ........... ELSE ........... END IF ELSE IF deyimi : Eer bir nceki blok IF koulu yanl olarak deerlendiriliyor ise ELSE IF deyimi ifa edilir. Genel format: ELSE IF ( m ) THEN Burada m, herhangi bir lojik ifadedir. Bir ELSE IF-block ayni IF-level'indeki son ELSE IF , ELSE veya END IF deyimi ile ELSE IF deyimi arasndaki ifa edilebilir deyimlerden oluur. Burada ELSE IF deyimi deimi block'a dahil degildir.ELSE IFblock'u bos olabilir. Eer lojik ifade m nin deeri doru ise ELSE IF-block'unun ilk deyimi ile normal ifa ilemleri gerekletirilir. Eer lojik ifade m doru ve ELSE IFblock bos ise kontrol ayni IF-level'indeki son END IF deyimine aktarlr. Eer lojik 32

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

3.2.6.7 Lojik IF Deyimi :


Lojik IF deyimi bir lojik ifadeyi deerlendirir ve ifadenin deerinin doru veya yanl olmasna gre ya bir deyimi ifa eder veya lojik IF deyiminin altndaki ifadeyi gerekletirir. Genel format: IF ( m ) d Burada m , herhangi bir lojik ifadedir. d , ifa edilebilir herhangi bir deyimdir. Bu deyim DO deyimi , baka bir lojik IF deyimi, END deyimi , blok IF , ELSE IF , ELSE veya END IF deyimi ve ayrca TRACE ON, TRACE OFF, INCLUDE veya DISPLAY deyimi olamaz. d bir deyim numaras olamaz , ama iinde deyim numaras bulundurulabilir( GO TO 50 gibi ). rnek : IF ( A . LE .0 .) GO TO 50 ............X = Y + Z ............IF ( A . EQ . B ) X = 2.0*Y/Z ...50.....T = U**2 ...........................

34

3.2.7. *PAUSE Deyimi


PAUSE deyimi ama programn ifasn geici olarak keser ve bir mesajn grnmesini salar. Genel format: PAUSE [ n ] , ........................PAUSE [ 'mesaj ' ] Burada n , 1-5 basamakl bir say , 'mesaj' , trnaklarla kapanan bir karakter sabitedir.Bu sabite alfa nmerik veya zel karakterlerden oluur. Bu literal sabite iinde trnak kullanlacaksa bu ift trnakla belirtilmelidir. Eer n veya ' mesaj ' kullanlyorsa kesilme annda operatre gerekli talimat verilir.Bu duraklama esnasnda operatr gerekli ilemleri yaparak kontrol programa geirir ve PAUSE deyiminden sonra gelen deyim veya DO dngsnn son iterasyonu ifa edilir.

3.2.8. *RETURN Deyimi


RETURN deyimi kontrol aran programa aktarr. Eer RETURN deyimi ana programda kullanlyorsa STOP deyiminin yapt isi yapar. Bu deyim ya bir function veya subroutine alt programnda kullanlmaldr. Function alt programndaki RETURN deyimi : Function alt programlar RETURN deyimini bulundurmaldr.Bu RETURN deyimi lojik olarak hesaplama sonucunu belirler ve hesaplanan fonksiyon deerinin arlan programa geri dnmesini salar. Genel format: RETURN

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.

3.2.9. *STOP Deyimi


STOP deyimi ama programn ifasn durdurur ve istenirse ama programn ifas sonunda bir mesajn yazlmasn salar. Genel format: STOP [ n ] ........................STOP [' mesaj '] Burada n, 1-5 basamakl bir saydr. mesaj, iki trnak arasna yazlan ve alfa nmerik veya zel karakterlerden oluan bir karakter sabitedir. Literal olmas halinde bu literal iindeki bir trnak pe pee gelen iki trnakla belirtilir.Eer STOP'tan sonra n veya ' mesaj ' kullanlrsa , STOP ile birlikte gerekli bilgi operatre iletilir.

4. DIZILER VE DIZI ELEMANLARI


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 Can'dr demek indise bir rnektir.).Diziler tek boyutta tanmlanabilecei gibi iki boyutta da tanmlanrlar.Aadaki rnei inceleyiniz; 37

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.

5.YAN BELLEK(KTK) KULLANIMI 5.1. Ktk Ama


Fortran 77'de ktk yaratma ya da yaratlan kt ama ilemi OPEN deyimi kullanlarak yaplr. Deyimin genel yazl:

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)

5.2. Ktk Kapama

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

5.3. Ktkten Okuma

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

5.4. Kte Yazma

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

5.5. ENDFILE Deyimi


Okuma ilemi srasnda sral bir ktkte ktk sonuna gidilmesini salar. Genel yazl:

ENDFILE (nuf) biimindedir. Burada nuf ktk numarasn gsterir. ENDFILE(2)

5.6. REWIND Deyimi

Ktn herhangi bir yerinden ilk tutanaa dnlmesini salar. Genel yazl: REWIND(nuf) biimindedir. Burada nuf ktk numarasn gsterir. READ(2)

5.7. BACKSPACE Deyimi


Ktkte, bulunan tutanaktan bir nceki tutanaa geilmesini salar. Genel yazl: BACKSPACE(nuf) biimindedir. Burada nuf ktk numarasn gsterir. BACKSPACE(2)

42

5.8. Baz rnek Programlar

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