Fortran Programlama (Fortran90/95)

previous next

DÜZENLİ YAZDIRMA ve OKUMA - BİÇİMLENDİRME

Formatlı WRITE komutunu kullanabilmek için formatsız WRITE(*,*) daki ikinci asterisk yerine bir rakam veya karakter sabiti veya bir format değişkeni kullanılabilir. Format Çıkış verilerinin nasıl düzenleneceğini gösterir. Format, tamsayı, gerçel sayı, mantıksal ve karakter verilerinin sayfa üzerindeki konumunu belirler.

Formatla ilgili olarak gerekli çizelge aşağıda verilmektedir.

FORMAT tanımlayıcısıKulanımı
A Awkarakter verisi
Ew.d gerçel veriler üstel formda
ESw.dGerçel verile bilimsel formda
Fw.dGerçel değişkenler ondalıklı formda
Iw Iw.mTamsayı
LwMantıksal veri
TcTab: belirtilen satırda c sütununa gidilir
nXyatay olarak n tane boşluk
/düşey boşluk, 1 satır atlatma
yukarıda kullanılan : csütun sayısı
dvirgülden sonraki hane sayısı
mgösterilebilecek minimum hane sayısı
nboşluk sayısı
wkarakter alanının genişliği

Formatlı READ komutu girilecek verilerin nasıl girileceğini belirtir. Yukarıdaki çizelgede bulunan format tanımlayıcılarının hepsi READ komutu ile kullanılabilir. Bir dosya OPEN ile açılıp okuma-READ ve yazma-WRITE formatı için kullanılıyorsa işlemler sonucunda CLOSE komutu ile dosya kapatılmalıdır. OPEN da belitilen dosya numarası READ ve WRITE komutlarında kullanılmalıdır. Sıralı bir dosya yapısının içinde önceki kayıta BACKSPACE ile, kayıtların ilk sırasına ise REWIND ile (dosyayı kapatıp açmadan) ulaşılır.

Programlama Öğütleri-3 

 1. Herhangi bir çıktı satırında ilk sütun kontrol karakteri için ayrılır. 
    Bu yüzden ilk sütuna herhangi bir şey yazdırılmaya çalıştırılmamalıdır.
    Birinci sütuna herhangi birşey yazdırmaya çalışan format konutunu
    kullanmayınız. Aksi durumda bu hataya neden olabilir.

 2. WRITE komutunda kullandığınız veriler için formatta uygun format 
    tanımlayıcıları kullanınız. Integer bir veri formatta I ile, gerçel sayılar 
    ise E, ES veya F format tanımlayıcıları kullanınız. Logical veriler için L 
    tanımlayıcısını, karakter verileri için A format tanımlayıcını kullanınız.
    Veri tipi ile format tanımlayıcısının farklı olması çalışan programın 
    istem dışı durmasına neden olabilir. 

 3. Sayısal verileri üstel formda göstermek istiyorsanız E göstergeci yerine
    ES format tanımlayıcısını kullanınız.

 4. Standart giriş ve çıkış işlemlerinde girdi ve çıktı üniteleri için 
    rakam yerine * karakterini kullanınız. Ünite numaraları işletim sistemine
    göre değişmektedir. Bu yöntem yazmış olduğunuz programın başka platformlarda
    kolay kullanımını sağlar. 
	
 5. Girdi dosyalarını daima STATUS='OLD' olarak açılmasını sağlayınız. Bu 
    tanımdan dolayı klasör içinde olmayan bir dosya için bir hata oluşacak ve 
    bu hata kodundan yararlanarak olmayan dosya oluşturulur. Dosya var ise zaten
    sorun yoktur. Ayrıca dosyalar ACTION='READ' modunda açılırsa  dosyaların 
    yanlışlıkla silinmesi olasılığı ortadan kalmış olur. 

 6. Çıktı dosyalarını daima yeniden oluşturulmasını istiyorsanız, dosyaları 
    STATUS='NEW' veya STATUS='REPLACE' olarak açınız (Kullandığınız 
    derleyicinin kullanım klavuzuna bakınız). Programınızın çalışmasını 
    bitirdikten takas dosyalarının silinmesini istiyorsanız STATUS='SCRATCH'
    deyimini kullanınız. Bu durumda dosya kapatıldığı anda oluşan dosyalar
    silinir. 

 7. Dosya ile ilgili işlemlerinizde daima IOSTAT=durum işlemini kullanarak 
    dosya sonu veya hata yakalama işlemlerinde başarılı olursunuz.
  

Dosya işlem komutları:

BACKSPACE komutu

BACKSPACE [UNIT=lu]

Örnek : 
BACKSPACE [UNIT=8]


BACKSPACE komutu ile bir önceki kayıta dönülür.

CLOSE komutu

CLOSE (kapama_listesi)

Örnek : 

CLOSE (UNIT=8)
Örnek : 

CLOSE (UNIT=22, STATUS='DELETE',IOSTAT=istat)
Örnek : 

CLOSE (UNIT=22, STATUS='KEEP',IOSTAT=istat)
 

CLOSE UNIT ile belirtilen dosyalar kapatılır.

FORMAT komutu

etiket FOMAT(format tanımlayıcısı, ...)

Örnek : 

100 FORMAT('Test sonucu:', I)


Okunacak veya yazdırılacak verilerin düzenli girdisi ve çıktısını sağlar.

Formatlı READ komutu

READ (birim, format) giriş_listesi

Örnek :

       READ (1, 100) zaman, hiz
100    FORMAT(F10.4, F18.4)
       READ(1, '(I6)') indis

Formatlı veri girdisi için kullanılır.

Formatlı WRITE yapısı

WRITE(birim, format) çıktı_listesi

Örnek : 

      WRITE(*,100)i, j, egim
100   FORMAT(1X, 2I10, F10.2)
      WRITE(*,'(1X, 2I10, F10.2)')i, j, egim

Çıktı verilerinin formalı olarak hazırlanmasını sağlar

OPEN komutu

OPEN (çıktı_listesi)

Örnek :
--------
OPEN(UNIT=8, FILE='IN', STATUS='OLD', ACTION='READ', &
      IOSTAT=ihata)
UNIT - negatif olmayan tamsayı
FILE - karakter
STATUS - 'OLD', 'NEW', 'REPLACE', 'SCRATCH', 'UNKNOWN'
ACTION - 'READ', 'WRITE', 'READWRITE'
>IOSTAT - tamsayı

OPEN komutu ile belirtilen UNIT numarasında dosya açılır.

REWIND komutu

REWIND(UNIT=lu)

Örnek :

REWIND(UNIT=8)


Dosyanın ilk kayıtını gidilir.

Alıştırma 4. Test 4.
© Copyright Mehmet Kabak. 2003. Tüm hakları saklıdır.
previous next
Hosted by www.Geocities.ws

1