FORMAT deyimi
Değişkenlere ait bilgilerin yazılması veya değişkenlere değer okunması sırasında, gerekli tür ve uzunlukların belirtildiği yani giriş ve çıkış işlemlerinin hangi düzende olması gerektiğini belirten fortran deyimidir. Genel formu:
<fn> FORMAT (a1,a2,a3,....)
fn : format deyiminin satır numarasıdır READ, WRITE deyimleri ile verilir.
a1,a2,... : alan bildirim deyimleridir.
READ / WRITE deyimleri ile kullanılan alan bildirim deyimleri ve karşılık gelen değişken türü aşağıda gösterilmiştir,
Alan Bildirim Deyimleri
Değişken Alan bildirim deyimi Giriş/Çıkış formatı
Tam sayı In Read / Write
Tek duyarlı gerçel sayı (noktalı) Fn.m Read / Write
Tek duyarlı gerçel sayı (üslü) En.m Read / Write
Tek duyarlı gerçel sayı (noktalıve üslü) Gn.m Read / Write
Çift duyarlı gerçel sayı Dn.m Read / Write
Alfasayısal An Read / Write
Mantıksal Ln Read / Write
Read / Write ile kullanımı içeren yapı : READ(*.fn) <değişken listesi>
WRITE(*.fn) <değişken listesi>
...
...
...
<fn> FORMAT(a1,a2,a3,...) şeklindedir.
Format deyiminin kullanımı ile ilgili örnekler:
Format deyimi programın her hangi bir yerinde kullanılabilir.
READ(*,10) a,b 10 FORMAT(...)
....
....
....
....
END
READ(*,10) a,b ...
....
....
....
10 FORMAT(...) END
Denetim deyimleri ile format deyimine gidilemez.
10
READ(*,10) I FORMAT(....) ....
....
....
GOTO 10 ...
...
...
END
Program hatalıdır. Format deyimine GOTO deyimi ile sapılmaya çalışılmıştır.
Format deyimi çalışabilir bir fortran komutu değildir, READ ve WRITE komutları ile anlamlıdır.
1
10
READ(*,1) I FORMAT(...) ...
...
...
WRITE(*,10)
FORMAT(1X.’PROGRAM CIKISI’) END
Aynı format deyimi birden fazla READ / WRITE komutu ile birlikte kullanılabilir.
10
READ(*,10) I,J FORMAT(...) ...
...
...
READ(*,10) K,L ...
...
...
END
20
WRITE(*,10) FORMAT(...) ...
...
...
WRITE(*,20) ...
...
...
END
Format deyimi ile verilen alan bildirim deyimleri birden fazla ise birbirlerinden virgül ile ayrılırlar. Alan bildirim deyimleri işleyişi soldan – sağa doğrudur.
10 ...
...
...
FORMAT(I3,F4.1) ...
...
...
END
READ / WRITE deyimleri ile birlikte kullanılan değişkenlerin sıraları ile FORMAT deyiminde kullanılan alan bildirim deyimleri birebir eşleneceklerinden değişkenlerin türüne uygun alan bildirim deyimi kullanılmalıdır. Aksi hata alınır.
10
READ(*,10) AD FORMAT(A20) ....
....
....
END
AD değişkeni gerçel olmasına rağmen Format deyiminde alfasayısal değişken giriş/çıkışında kullanılan A alan bildirim deyimi kullanılmış oysa F alan bildirim deyimi kullanılmalıydı veya AD değişkeni alfasayısal olarak tanımlanmalıydı.
10
CHARACTER AD*20 ...
...
...
READ(*,10) AD FORMAT(A20) ...
...
...
END
10 numaralı Format deyimi ile A alan bildirim deyimi AD alfasayısal değişkenine değer okunmak üzere verilmiştir. Uygun tür ve uzunlukta olması nedeniyle geçerlidir.
ALAN BİLDİRİM DEYİMLERİ I ALAN BİLDİRİM DEYİMİ
Tamsayı değişkenlerin giriş ve çıkışlarında kullanılır. Genel formu n basamak sayısı olmak üzere, In
şeklindedir.
Girdi (READ) işleminde I alan bildirim deyimi:
Format tanımı Girdi Okunan değer
I4 12 12
I4 -122 -122
I4 123456 1234
I4 1 1000
ÇIktı (WRITE) işleminde I alan bildirim deyimi:
Format tanımı Girdi Okunan değer
I4 12 12
I4 -122 -122
I4 1234 1234
I4 12345 *****
I4 -1234 -123
ÖRNEK:
10
15
WRITE(*,*) “IKI SAYI GIRINIZ”
READ(*,10)K,L FORMAT (I4,I4) WRITE(*,15)K,L FORMAT(1X,I4) STOP
END
K değişkenine –234, L değişkenine 45 alınmıştır.
Sayının işareti – ise çıktıda bir yer işgal eder.
I3’lük bir alana 4 basamaklı bilgi sığmadığı için ***
çıktısı alınmıştır.
F ALAN BİLDİRİM DEYİMİ
Gerçel sayıların giriş ve çıkışlarında kullanılır. Genel formu n ondalık nokta ve sayının işaret, dahil olmak üzere basamak sayısı ve m sağdan itibaren noktadan sonraki basamak sayısı olmak üzere,
Fn.m
şeklindedir. n alan uzunluğu seçilirken işaret ve desimal nokta için de birer yer düşünülmelidir, bu nedenle n
m + 2 olmalıdır.
n: tamsayı basamak sayısı+1 (nokta için)+1 (sayının işareti için)+m işlemi ile tespit edilir.
Girdi (READ) işleminde F alan bildirim deyimi:
Alan bildirim deyiminde desimal noktanın yeri verildiğinden veri girişinde desimal nokta yazılmayabilir Veri girişindeki desimal noktanın yeri alan bildirme deyiminde gösterilenden önceliklidir.
Format tanımı Girdi Okunan değer
F7.2 12.65 12.65
F7.2 -15.5 -15.50
F7.2 127 127.00
F7.2 12 12.00
F7.2 1234 1234.00
F7.2 5.68 5.68
Çıktı (WRITE) işleminde F alan bildirim deyimi:
Format tanımı Girdi Okunan değer
F7.2 15. 15.00
F7.2 -127. -127.00
F7.2 13256. *******
F7.2 18.6 18.60
F7.2 -29.8 -29.80
F alan bildirim deyimi tanımlanırken
sayının işaretinin
nokta parametresinin
çıktıda bir yer işgal edeceği dikkate alınmalıdır.
A değişkenine değer girişi için alan bildirim deyimi F7.2 şeklinde tanımlanmış ise A değişkenindeki değerin çıktıya aktarılmasını sağlayan alan bildirim deyimindeki,
n değeri,
sayının işareti : 1 toplam basamak : 7 nokta işareti : 1 ondalık kısım : 2
olmak üzere n=11 olmalıdır. Bu durumda F tanımı çıktıda F11.2 olmalıdır.
10 15
WRITE(*,*) “SAYI GIRINIZ”
READ(*,10)A,B,C,D,E,F,G FORMAT(7F7.2)
WRITE(*,15)A,B,C,D,E,F,G FORMAT(1X,F7.2)
STOP END
E Alan Bildirim Deyimi
Gerçel sayıların üslü formda giriş ve çıkışlarında kullanılır. Genel formu n toplam basamak sayısı ve m noktadan sonraki basamak sayısı olmak üzere,
En.m Girdi (READ) işleminde E kullanılması halinde,
E tanımlı gerçel sayı değişkenine noktalı veya üslü sayı girilebilir.
5.2 1.E23 17.E-03 vb.
Eğer verilen sayılarda ondalık nokta yoksa; üs kısmı varsa, üs kısmının hemen solundan başlayarak aksi halde (üs kısmı yoksa) belirtilen alanın sağından başlayarak sola doğru m basamak, noktadan sonraki ondalık kısım olarak yorumlanır.
Format tanımı Girdi Okunan değer
E7.2 19.271 19.27
E7.2 1.234E3 1234.5
E7.2 1377E8 13.77E8
E7.2 1234567 12345.67
Çıktı (WRITE) işleminde E kullanılması halinde,
Sayı mutlaka E indisini içerecek şekilde olmalıdır.
Sıfırdan farklı ilk rakam ondalık noktanın ardından gelir.
n için çıktıda ayrılan alan bulunurken, sayının işareti için 1 basamak, nokta işareti için 1 basamak üs kısmı için 4 basamak fazladan büyüklükler dahil edilir.
Örneğin: READ için E7.2 verilmiş ise WRITE için E13.2 olmalıdır. (7+1+1+4=13)
D ALAN BİLDİRİM DEYİMİ
Çift duyarlı gerçel sayıların giriş ve çıkışlarında kullanılan alan bildirim deyimleridir. Genel formu, n toplam basamak sayısı ve m noktadan sonraki basamak sayısı olmak üzere,
Dn.m
şeklindedir. D alan bildirim deyimi, E alan bildirim deyiminin tüm özelliklerini içerir. Yanlızca üs belirlemek için E indisi yerine D indisi kullanılır.
A ALAN BİLDİRİM DEYİMİ
Alfasayısal bilgilerin giriş ve çıkışlarında kullanılan alan bildirim deyimidir. Genel formu, n toplam karaktaer sayısı olmak üzere,
An şeklindedir.
X ALAN BİLDİRİM DEYİMİ
Bir kayıt girişi sırasında atlanacak, çıktı işlemlerinde ise boş bırakılacak sütun sayısını belirlemek için kullanılır. Genel formu, n atlanacak veya boş bırakılacak sütün sayısı olmak üzere,
nX şeklindedir.
READ deyiminde atlanacak sütün sayısı
WRITE deyiminde boş bırakılacak sütün sayısını gösterir.
T ALAN BİLDİRİM DEYİMİ
Çıktı işleminin üzerinde bulunulan satırın hangi sütununa yapılacağını bildiren alan bildirim deyimidir. Genel formu, n yazma işleminin sütun numarası olmak üzere,
Tn şeklindedir. (1 n 80)
/ format ayıracı : / parametresinin sayısı n olmak üzere (n-1) satır boş bırakılmasını ve bilginin n. Satıra yazılmasını sağlar. Not: / format ayıracını takip eden ilk karakter kontrol karakterlerinden biri olmalıdır.