Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Program Deyimlerinin Yazılması

Benzer bir sunumlar


... konulu sunumlar: "Program Deyimlerinin Yazılması"— Sunum transkripti:

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

2

3

4 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 indisli değişkenlerin listesidir

5 Dosya (FILE) Açma Fortranda 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......

6 fname: Yaratılacak ya da açılacak dosya (FILE) adıdır.
OPEN (UNIT=nof, FILE=‘fname’, STATUS=‘st’, ACCESS=‘ac’, FORM= ‘ft’, RECL=rl) 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)

7 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’)

8 DOSYA (FILE)’dan Okuma
Dosya (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.

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

10 ALAME=0. 35D12 SENSI=2. 0D-10 TAIGI=5. 0D-3 C PI=3
ALAME=0.35D12 SENSI=2.0D-10 TAIGI=5.0D-3 C PI= D0 OPEN(15,FILE=‘mag1.dat',status='old') OPEN(26,FILE='res1.dat') READ(15,553) UN,R,F,P 553 FORMAT(4F10.0)

11 Dosya’ya (FILE) yazma Herhangi 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österir WRITE(1,10, ERR=100, REC=5)D,E,F

12 WRITE(*,150) write (*,'(a\)' ) 'Enter File Name for daily average ' read (*,'(a14)' ) fnm11 c 150 FORMAT(1X,//) open ( 11, file=fnm11 , status='NEW') c c main routine NDAY= 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) C c CLOSE(10) CLOSE(11) STOP END

13 BİLDİRİ DEYİMLERİ 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.

14 Fortran Dilinde kullanılan temel bildiri deyimleri şunlardır;
DIMENSION COMMON EQUIVALENCE Tip (Tür) Bildiri Deyimleri; DATA IMPLICIT EXTERNAL

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

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

17 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)

18 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,S common /blk5/DJ(101,101,60,3),DH(41,41,3)

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

20 C PROGRAM OF THE MAGNETIC ANOMALY C. C. VER. 1. 0 1995. 07. 19. C. c
C PROGRAM OF THE MAGNETIC ANOMALY C ********************************* C ****** VER ****** C ********************************* c ****** Ver 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) 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)

21 EQUIVALENCE Deyimi Bu 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.

22 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))

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

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

25 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 EQUIVALENCE (H(3), D(8)) kullanılabilir.

26 CMPLX(1)=(1.0,2.0) CMPLX(2)=(3.0,4.0)
Çıktı: TC(3)=C TC(4)=D CMPLX(1)=(1.0,2.0) CMPLX(2)=(3.0,4.0) 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) >

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

28 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 Listesi 2. REAL Değişken Listesi 3. COMPLEX Değişken Listesi 4. LOGICAL Değişken Listesi 5. 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.

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

30 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,

31 c X AND Y AXIS LENGTHS DATA XAX/8. 0/, YAX/4. 8/ C C
c X AND Y AXIS LENGTHS DATA XAX/8.0/, YAX/4.8/ C C... NUMBER OF DATA POINTS DATA N1/ 8/ C... 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/ C... Y ORDINATE VALUES DATA YP1/37.57, 18.90, 9.691, 5.310, 3.502, , , , , 22.57, 11.39, , 3.381, , 2.420, 2.238,0.0,0.0/ c DATA MONTH/31,28,31,30,31,30,31,31,30,31,30,31/

32 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ır Bir 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/

33 Fonksiyonlar ve Alt Programlar

34

35

36


"Program Deyimlerinin Yazılması" indir ppt

Benzer bir sunumlar


Google Reklamları