Temel Yönleriyle Fortran 90 / 95 / 2003

  Temel Konular
* Önsöz

* Fortran'a Giriş
* Fortran'nın Temelleri
* Basit ve Formatlı Okuma/Yazma
* Temel Kütüphane Fonksiyonları
* Karşılaştırma Deyimleri
* Döngüler
* Alt Programlar I
* Alt Programlar II
* Diziler
* Dinamik Diziler
* Gösterici (Pointer) Kavramı
* Katarlar (Stringler)
* Yapısal Veri Tipleri
* Dosya Yönetimi
* Modül Kavramı
* Sayısal Tipler (KINDs)
* Bit Düzeyinde Çalışmak
* Kütüphane Fonksiyonları Listesi

* Yararlanılan Kaynaklar

  İleri Uygulamalar
* - - -
* Karmaşık Sayılar
* Tarih-Saat Fonksiyonları
* Rastgele Sayılar
* Katar - Sayı Dönüşümleri
* Komut Satırı İşlemleri
* Co-Array Fortran
* Derleme Seçenekleri
* Fortran ve C

  Seçilmiş Örnekler
* Sayılar Kuramı
* Analiz
* Lineer Cebir

  Fortran 90/95 Derleyicileri
* Salford (silversoft FTN95)
* G95
* GFORTRAN

  Dış Bağlantılar
* programlama.com
* Fortran (wikipedia)

* fortran.gantep.edu.tr
* g95.org
* Hot scripts

  İletişim
* E-posta

 

Bölüm 23: Katar - Sayı Dönüşümleri

###################- (%95)


Giriş

Bazen sayısal bir verinin katara veya tersi olan katar verisinin sayısal bir veriye dönüştürülmesi gerekebilir. Bu iş, Fortran'da formatlı giriş/çıkış işlemine benzer bir mekanizma ile kotarılır ve genllikle READ ve WRITE deyimlerinin UNIT parametresinin esnekliğinden faydalanılır.

23.1   Katar - Sayı Dönüşümleri

Katar tipindeki bir veri aşağıdaki işlemle tamsayıya dönüştürülebilir.
     INTEGER      :: Int            ! bir tamsayı
     CHARACTER(8) :: Str = "12345"  ! bir katar

     ! katar tamsayıya çevrilyor...
     READ(UNIT=Str, FMT='(I5)') Int

     PRINT *,Str
     PRINT *,Int
     PRINT *,2*Int
Yukarıdaki program parçası çalıştırıldığında çıktı şöyle olur.
     12345
     12345
     24690
Benzer mantıkla bir katar bir gerçel sayıya çevrilebilir.
     REAL         :: R               ! bir gerçel sayı
     CHARACTER(8) :: Str = "123.45"  ! bir katar

     ! katar gerçel sayıya çevrilyor...
     READ(UNIT=Str, FMT='(F10.3)') R

     PRINT *,Str
     PRINT *,R
Tersi olan dönüştürme işlemi yapılabilir. Aşağıdaki program parçasının
     INTEGER :: I = 123456
     REAL    :: R = 123.456
     CHARACTER(10) :: A,B
     
     WRITE(UNIT=A, FMT='(I10)')   I  ! tamsayı katara çevriliyor...
     WRITE(UNIT=B, FMT='(F10.2)') R  ! gerçel sayı katara çevriliyor...
     
     PRINT *,"Tamsayı I = ",I
     PRINT *,"Katar   A = ",A

     PRINT *,"Gerçel  R = ",R
     PRINT *,"Katar   B = ",B
çıktısı
     Tamsayı I = 123456
     Katar   A =    123456
     Gerçel  R = 123.4560
     Katar   B =    123.46

23.2   Katar -> Sayı Dönüşümü için Fonksiyonlar

Son olarak katar --> sayısal veri dönüşümleri şu aşağıdaki iki fonksiyonla yapılabilir.
     ! Bu fonksiyon bir katarı tamsayıya dönüştürür
     INTEGER FUNCTION KtrTam(Katar)
     CHARACTER (*), INTENT(IN) :: Katar
        READ(UNIT=Katar, FMT='(I10)') KtrTam
     END FUNCTION KtrTam

     ! Bu fonksiyon bir katarı gerçel sayıya dönüştürür
     REAL FUNCTION KtrGer(Katar)
     CHARACTER (*), INTENT(IN) :: Katar
       READ(UNIT=Katar,FMT='(F10.5)') KtrGer
     END FUNCTION KtrGer


Powered by PHP