36
Program Deyimlerinin Yazılması Program deyimleri 80 karakterlik bir alana belirli bir düzen içerisinde yazılır, 1.~5. kolon; İlk 5 kolona varsa deyim numarası yazılır. Deyim numaraları en çok 5 rakamlı işaretsiz tamsayılardan oluşur, eğer deyim numarası yoksa bu alan boş bırakılır. 1.kolona C harfi yazıldıktan sonra bunu takip eden 2.~72. kolonlara istenilen açıklayıcı bilgiler yazılır 6.Kolon; devam satırıdır. 6.kolona geçerli bir karakter yazarak deyimin devamını bir alt satıra yazabiliriz. 7.~ 72. Kolon; Bu alana FORTRAN deyimleri yazılır. Deyimi yazmaya alan içerisinde istenilen herhangi bir yereden başlanabilir. 73.~80. Kolon; Bu alan bilgi alanıdır, bu alandaki bilgiler derlenmez ama program listesinde görünür. Bazı tanımlayıcı bilgiler bu alana kaydedilir veya bu alan boş bırakılır.

Program Deyimlerinin Yazılması

  • Upload
    dick

  • View
    74

  • Download
    0

Embed Size (px)

DESCRIPTION

Program Deyimlerinin Yazılması. Program deyimleri 80 karakterlik bir alana belirli bir düzen içerisinde yazılır, - PowerPoint PPT Presentation

Citation preview

Page 1: Program Deyimlerinin Yazılması

Program Deyimlerinin YazılmasıProgram deyimleri 80 karakterlik bir alana belirli bir düzen içerisinde

yazılır,1.~5. kolon; İlk 5 kolona varsa deyim numarası yazılır. Deyim

numaraları en çok 5 rakamlı işaretsiz tamsayılardan oluşur, eğer deyim numarası yoksa bu alan boş bırakılır. 1.kolona C harfi yazıldıktan sonra bunu takip eden 2.~72. kolonlara istenilen açıklayıcı bilgiler yazılır

6.Kolon; devam satırıdır. 6.kolona geçerli bir karakter yazarak deyimin devamını bir alt satıra yazabiliriz.

7.~ 72. Kolon; Bu alana FORTRAN deyimleri yazılır. Deyimi yazmaya alan içerisinde istenilen herhangi bir yereden başlanabilir.

73.~80. Kolon; Bu alan bilgi alanıdır, bu alandaki bilgiler derlenmez ama program listesinde görünür. Bazı tanımlayıcı bilgiler bu alana kaydedilir veya bu alan boş bırakılır.

Page 2: Program Deyimlerinin Yazılması
Page 3: Program Deyimlerinin Yazılması
Page 4: Program Deyimlerinin Yazılması

Yardımcı Bellek (Dosya(FILE)) Kullanımı • Giriş – Çıkış deyimleri, bilgisayarın merkez işlem birimi ile

“dış ortam”, ve/veya “yardımcı bellek birimleri” arasında bilgi alışverişini sağlayan deyimlerdir.

Genel Gösterimi;READ(k,n) (Değişkenler)WRITE (k,n) (Değişkenler) şeklindedir.

k: giriş/çıkış biriminin veya dosyanın(FILE) numarasını gösteren tamsayıdır.

n: Okunacak veya yazılacak değişkenlerin türünü ve dış ortamda yerleşme biçimini gösteren ilgili FORMAT deyiminin numarası

Değişkenler: Okunacak veya yazılacak basit veya indislideğişkenlerin listesidir

Page 5: Program Deyimlerinin Yazılması

Dosya (FILE) AçmaFortranda yardımcı bellek (Dosya/FILE) yaratma yada

yaratılmış olan bir dosyayı açma işlemi için OPEN deyimi kullanılır.

Genel Gösterimi:

OPEN (UNIT=nof, FILE=‘fname’, STATUS=‘st’, ACCESS=‘ac’, FORM= ‘ft’, RECL=rl) şeklindedir......

Page 6: Program Deyimlerinin Yazılması

nof : Yaratılacak ya da açılacak dosyanın (FILE) numarasıdır. Bulunması zorunludur.

fname: Yaratılacak ya da açılacak dosya (FILE) adıdır. st : Herhangi bir dosya (FILE) daha önce yaratılmış ya da ilk defa

yaratılacak olabilir. OPEN deyiminde st yerine NEW yazılırsa dosyanın(FILE) yeni yaratılmakta olduğu, OLD yazılırsa daha önce yaratılmış olan bir dosyanın (FILE) açılmakta olduğu anlaşılır.

ac : FILE’a (Dosyaya) erişim sıralı ya da doğrudan olabilir. Belirtilmezse sıralı erişim vardır.

ft : Dosya (File) ile ilgili yapılacak okuma ya da yazma işlemlerinde format kullanılıp kullanılmayacağı belirtilir. Belirtilmezse formatsız olarak yapılır.

rl : Kayıtların uzunluklarını tanımlamakta kullanılır. En uzun kayıt uzunluğu alınır.

OPEN(5,FILE=‘D:GEO1.DAT') OPEN(13, STATUS='NEW', ACCESS='SEQUENTIAL',

FORM='FORMATTED', RECL=15)

OPEN (UNIT=nof, FILE=‘fname’, STATUS=‘st’, ACCESS=‘ac’, FORM= ‘ft’, RECL=rl)

Page 7: Program Deyimlerinin Yazılması

Dosya (FILE) Kapama• Açılmış olan dosyaların (FILE) kapanması işlemi CLOSE

deyimi kullanılarak gerçekleştirilir.

Genel Gösterimi

CLOSE (Unit=nof) şeklindedir,

CLOSE (Unit=nof, STATUS=‘st’) şeklinde de yazılabilir, burada st Dosya kapatma türünü gösterir. (DELETE ve/veya KEEP durumları söz konusu olabilir. Dosyayı silmek için DELETE, saklamak için KEEP yazılır.

CLOSE (11) veya CLOSE (11, STATUS=‘KEEP’)

Page 8: Program Deyimlerinin Yazılması

DOSYA (FILE)’dan OkumaDosya (FILE) dan okuma yapılması işlemi READ deyimi ile

olur. Genel Gösterimi;READ (UNIT =nof, fno, END =sst, ERR =hst, REC =m)

Değişken Listesi şeklindedir.  nof : Okuma yapılacak dosyanın numarasınıfno: Okuma için kullanılan formatın deyim numarasınısst : Okuma işlemi bittiğinde ya da dosya sonunda devam edilecek

deyim numarasınıhst : Okuma sırasında ortaya çıkabilecek hatalar durumunda

devam edilecek deyim numarasınım : Dosyada okuma yapılan kaydın numarasınıDeğişkenler Listesi: Birbirinden virgülle ayrılmış değerleri

okutulacak değişkenleri gösterir.

Page 9: Program Deyimlerinin Yazılması

READ (1,10,END = 20)GR,LR,NRM10 FORMAT (f4.2,I4,I5)................ READ(8,*) DATE......... DO 101 I=1,1440 READ(8,*,end=998)HOUR,MINUTE, FDATA(I)......................998 CALL PLOT(0.,0.,999)

Page 10: Program Deyimlerinin Yazılması

...............

..............

ALAME=0.35D12

SENSI=2.0D-10

TAIGI=5.0D-3

C

PI=3.141592653589793D0

C

OPEN(15,FILE=‘mag1.dat',status='old')

OPEN(26,FILE='res1.dat')

C

READ(15,553) UN,R,F,P

553 FORMAT(4F10.0)

Page 11: Program Deyimlerinin Yazılması

Dosya’ya (FILE) yazmaHerhangi bir dosyaya veri girilmek ya da yazılmak

istendiğinde WRITE değimi kullanılır. Genel yazılışı: WRITE(UNIT=nof, fn, ERR=sst,REC=m) Değişkenler listesi

biçimindedir. nof: Yazılacak dosya numarasıFn : Format deyim numarasısst : Yazma hataları durumunda devam edilecek deyim numarasını

gösterir m : Dosyada yazılacak kaydın numarasını gösterirWRITE(1,10, ERR=100, REC=5)D,E,F

Page 12: Program Deyimlerinin Yazılması

WRITE(*,150) write (*,'(a\)' ) 'Enter File Name for daily average '

read (*,'(a14)' ) fnm11 WRITE(*,150)c 150 FORMAT(1X,//)

open ( 11, file=fnm11 , status='NEW')c -----------------------------------------------------------c main routinec NDAY=0....... WRITE(11,350) STN,dt1,dt2,npp write(*,350) stn,dt1,dt2,npp c WRITE( *,350) STN,f2,HH,NN4 350 FORMAT(1X,A4,3X,2(F15.5,3X),I5)Cc CLOSE(10)c CLOSE(11) STOP END

Page 13: Program Deyimlerinin Yazılması

Bildiri deyimleri, değişkenleri tanımlamak, değişkenlere başlangıç değeri vermek, programda kullanılan indisli değişkenler için bellekte ayrılacak alanları belirlemek ve ortak kullanılacak alanlar hakkında derleyiciye bilgi vermek için kullanılan deyimlerdir.

İndisli değişkenlerin kullanıldığı programlarda, boyut sayısı, maksimum eleman sayısı programın başında bir bildiri deyimi ile verilmelidir.

Bildiri deyimleri, programın başında ve uygulanabilir diğer deyimlerden önce yazılmalıdır.

Page 14: Program Deyimlerinin Yazılması

Fortran Dilinde kullanılan temel bildiri deyimleri şunlardır;DIMENSIONCOMMONEQUIVALENCE

Tip (Tür) Bildiri Deyimleri;DATAIMPLICITEXTERNAL

Page 15: Program Deyimlerinin Yazılması

DIMENSION Deyimi• Bu deyim indisli değişkenlerin boyutlarını ve her boyuttaki

maksimum eleman sayılarını tanımlamak için kullanılır• Genel Gösterimi: • DIMENSION X(K1), Y(K2),Z(K3)• X,Y,Z indisli değişkenlerin adları, K1,K2, K3 ise bunların

boyutlarını ve maksimum boyut sayısını belirleyen ve birbirlerinden virgüller ile ayrılan bir veya daha fazla tamsayı sabitleridir.

Page 16: Program Deyimlerinin Yazılması

DIMENSION deyimi kullanılırken dikkat edilmesi gereken hususlar• Bir indisli değişken bir programda sadece 1 kez kullanılmalıdır.• Bir programda birden fazla DIMENSION komutu bulunabilir• DIMENSION deyimi ile aynı türden olmayan indisli

değişkenlerde tanımlanabilir.• DIMENSION deyiminde tanımlanan indisli değişkenin tüm

elemanları aynı türden olmalıdır.• Dizinin her bir elemanı belleğe aynı türden bir değişken olarak

atanır.

Page 17: Program Deyimlerinin Yazılması

DIMENSION N(50), F(40,10)

DIMENSION LAT(40), LON(40), SON(15,20,4)

DIMENSION GH(120),SV(120),P(66),Q(66)

DIMENSION DJ(101,101,60,3),DH(41,41,3)

DIMENSION BVJ(101,101,60)

Page 18: Program Deyimlerinin Yazılması

COMMON Deyimi• COMMON deyimi, ana program ile alt programlarında

veya çeşitli alt programlarda bulunan basit veya indisli değişkenlerin bellekte aynı yeri paylaşmaları istenilen durumlarda kullanılır.

• COMMON deyimleri isimli veya isimsiz olarak kullanılabilir.

• Genel Gösterimi: COMMON A1,A2,.....COMMON /LK1/BLK,F,Scommon /blk5/DJ(101,101,60,3),DH(41,41,3)

Page 19: Program Deyimlerinin Yazılması

COMMON deyimi kullanılırken dikkat edilmesi gereken hususlar• COMMON Deyimi, aynı alanı paylaşması istenilen

değişkenlerin bulunduğu bütün ana ve alt programlarda yazılmalıdır.

• Ana program ve alt programda görülen COMMON deyimi listelerinin sayı, sıra ve tür bakımından uyumlu olmaları gerekir.

• İndisli değişkenler için kullanılan COMMON deyiminde boyutlar belirtilmiş ise ayrıca DIMENSION deyimi kullanılmaz......

Page 20: Program Deyimlerinin Yazılması

C PROGRAM OF THE MAGNETIC ANOMALYC *********************************C ****** VER. 1.0 1995.07.19 ******C ********************************* c ****** Ver. 3.001 2001.12.20 revised *** C ****** again to the uniform version ***C *************************************C *** THE NEW PROGRAM OF 3D MOGI MODEL ***C IMPLICIT DOUBLE PRECISION(A-H,O-Z) DIMENSION DX(2),DY(2),DZ(2)c DIMENSION DJ(101,101,60,3),DH(41,41,3)c DIMENSION BVJ(101,101,60) DIMENSION SMTRX(3,3),DVJ(3),VJ(3)C COMMON /BLK1/ALAME,F,S COMMON /BLK2/UN,LM,LN,LM2 COMMON /BLK3/DMGD,DMGW,DMGL,DMGH common /blk5/DJ(101,101,60,3),DH(41,41,3) common /blk6/BVJ(101,101,60)

Page 21: Program Deyimlerinin Yazılması

EQUIVALENCE DeyimiBu deyim yardımıyla aynı değişken alanına birden çok

değişken yerleştirebilmemizi sağlar.

Genel Gösterimi;

EQUIVALENCE (X1),(X2),(X3),,,,, X(N)

Her X, aynı yeri paylaşmaları istenilen ve virgüllerle ayrılmış olan iki veya daha fazla değişkenlerin listesidir.

Page 22: Program Deyimlerinin Yazılması

EQUIVALENCE deyimi kullanılırken dikkat edilmesi gereken hususlar

EQUIVALENCE deyimi yardımı ile dizinin tüm elemanları diğer bir veya birkaç dizinin elemenları ile özdeşlenebilir. Bu durumda dizinin sadece ilk elemanlarının özdeşlenmesi yeterlidir.

DIMENSION H(10),D(10), Z(10)EQUIVALENCE (H(1),D(1),Z(1))

Page 23: Program Deyimlerinin Yazılması

Tek boyutlu dizi elemanları, birden fazla boyutlu dizi elemanları ile özdeşlenebilir, böylelikle çok boyutlu diziler tek boyutlu dizi haline dönüştürülebilir.

DIMENSION A(5), B(5,5)

EQUIVALENCE ( A(1), B(1,1))Aynı yeri paylaşmaları istenilen indisli değişkenlerin türü

aynı olmalıdır.

Page 24: Program Deyimlerinin Yazılması

• Aynı yeri paylaşmaları istenilen indisli değişkenlerin birden çok elemanı EQUIVALENCE deyimindeki listede bulunamaz.

• Aynı yeri paylaşmaları istenilen indisli değişkenlerin boyut ve eleman sayıları EQUIVALENCE deyiminde belirtilmeksizin sadece adları kullanılmış ise birinci elemanlar özdeşlenir.

Page 25: Program Deyimlerinin Yazılması

• EQUIVALENCE deyiminde çok boyutlu dizi elemanları yerine bunların tek boyutlu karşılıkları kullanılabilir.

DIMENSION H(19), D(15,12)

EQUIVALENCE (H(3), D(3,4))

Yerine

DIMENSION H(19), D(15,12)

EQUIVALENCE (H(3), D(8)) kullanılabilir.

Page 26: Program Deyimlerinin Yazılması

PROGRAM EQUIV

COMPLEX*16 CMPLX(2)

REAL*8 TAMPON(4)

CHARACTER*8 STR

CHARACTER*1 TC(8)

EQUIVALENCE (TAMPON(1), CMPLX(1))

EQUIVALENCE (STR, TC(1))

STR = 'ABCDEFGH'

DO 10 I=1,4

TAMPON(I)=I

10 CONTINUE

PRINT *, 'TC(3)=', TC(3), ' TC(4)=', TC(4)

PRINT *, 'CMPLX(1)=', CMPLX(1), ' CMPLX(2)=', CMPLX(2)

END

8 karakterden oluşan STR değişkeni hafızada yine 8 karakterden oluşan TC dizini ile aynı yeri paylaşacaktır

8 gerçel sayıdan oluşan TAMPON değişkeninin 4 elemanı CMPLX dizininin 2 elemanı ile eşleşmiştir. CMPLX (1)‘in Gerçel ve Sanal kısımları TAMPON(1) ve TAMPON(2) ile aynı yeri paylaşmaktadır

< CMPLX(1) >< CMPLX(2) > Memory ..==><===========><===========><==========><===========><==... < TAMPON(1) >< TAMPON(2) >< TAMPON(3) >< TAMPON(4) >

Çıktı: TC(3)=C TC(4)=D CMPLX(1)=(1.0,2.0) CMPLX(2)=(3.0,4.0)

Page 27: Program Deyimlerinin Yazılması

TİP (TÜR) Bildiri Komutları;• Tip bildiri komutları, değişkenlerin, dizilerin ve

fonksiyonların türlerini tanımlamak için kullanılırlar. • Değişkenler tamsayı veya ondalıklı sayı türde iseler

bunları programın başında tanımlama zorunluluğu yoktur, ancak I,J,K,L,M,N karakterlerinden herhangi birisiyle başladığı halde bir değişkeni program içerisnde ondalıklı sayı değişkeni olarak tanımlamak veya I,J,K,L,M,N dışındaki herhangi bir karakter ile başladığı halde bir değişkeni tamsayı değişkeni olarak tanımlamak gerekirse bu durum mutlaka program başında belirtilmelidir.

Page 28: Program Deyimlerinin Yazılması

• Ayrıca, programda kullanılan çift duyarlıklı, mantıksal (Logical), karmaşık (complex), ve alfabetik değişkenler de mutlaka programın başında tip bildiri deyimleri ile tanımlanması gerekir.

• Genel Gösterimi;1. INTEGER Değişken Listesi2. REAL Değişken Listesi3. COMPLEX Değişken Listesi4. LOGICAL Değişken Listesi5. CHARACTER Değişken Listesi

6. DOUBLE PRECISON Değişken Listesi

Değişken Listesi; virgüller ile ayrılmış değişken adları, deyim fonsiyonları veya dizi adları olabilir

Bir değişken adının mutlaka program başında ve DATA deyiminden veya uygulanabilir deyimlerden önce tanımlanması gerekir.

Page 29: Program Deyimlerinin Yazılması

• INTEGER X,Y,Z• REAL J,K,L,M• COMPLEX C,F• LOGICAL AB, CD(20,20)• CHARACTER BETA, U, TOTAL• DOUBLE PRECISION H(4,4)

[DOUBLE PRECISION; Ondalık hane sayısı çok fazla olan sayılar için kullanılan bir deyimdir. Sayısal işlemler sonucu sayının ondalık kısmı normal hane sayısından fazla rakamlardan oluşmuşsa sayı yuvarlatılır ve bu nedenle bir yuvarlatma hatası meydana gelir. Böyle durumlarda sayı programın başında çift duyarlıklı (double precision) olarak tanımlanırsa bellekte ayrılan yer iki katına çıkartılmış olur. Bu tip sabitlerin kullanılması durumunda üs E harfi yerine D kullanılır, 13D-1, -5.36D+30, .745D-17 gibi....]

Page 30: Program Deyimlerinin Yazılması

DATA Deyimi• Data deyimi, program içerisinde kullanılan basit veya indisli

değişkenlere başlangıç değe vermek için kullanılır.

Genel Gösterimi:

DATA Liste1/D1,D2,D3,....DN/,Liste2/D2,..Dm/..

Burada, liste1 ve liste2 başlangıç değerleri verilmesi istenilen indisli veya indissiz değişkenler listesi olup birbirlerinden virgül ile ayrılmış olarak yazılırlar. D1,D2,... Sabitleri gösterir,

Page 31: Program Deyimlerinin Yazılması

c X AND Y AXIS LENGTHS DATA XAX/8.0/, YAX/4.8/CC... NUMBER OF DATA POINTS DATA N1/ 8/CC... X ORDINATE VALUES DATA XP1/0.0,1.0,2.0,3.0,4.0,5.0,6.0,7.0,0.0,0.0/CC... Y ORDINATE VALUES DATA YP1/37.57, 18.90, 9.691, 5.310, 3.502, 1 3.036, 3.0002, 3.0000, 2 45.03, 22.57, 11.39, 5.9179, 3.381, 3 2.430, 2.420, 2.238,0.0,0.0/c................ DATA MONTH/31,28,31,30,31,30,31,31,30,31,30,31/

Page 32: Program Deyimlerinin Yazılması

DATA Deyimi kullanılırken dikkat edilmesi gereken kurallar;Değişkenler ve sabitler arasında sayı ve tür yönünden

birebir uyum olmalıdırBir COMMON deyiminde kullanılan değişken DATA

deyiminde gösterilemez

DATA I,J,H/35,46,5.9/X,Y/6.8,89.56/

Page 33: Program Deyimlerinin Yazılması

Fonksiyonlar ve Alt Programlar

Page 34: Program Deyimlerinin Yazılması
Page 35: Program Deyimlerinin Yazılması
Page 36: Program Deyimlerinin Yazılması