![]() |
Temel Yönleriyle Fortran 90 / 95 / 2003 | ||||||||
|
* Fortran'a Giriş
* fortran.gantep.edu.tr
|
Bölüm 23: Katar - Sayı Dönüşümleri
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üşümleriKatar 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 FonksiyonlarSon 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
|