* Ö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
* - - -
* 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
* Sayılar Kuramı
* Analiz
* Lineer Cebir
Fortran 90/95 Derleyicileri
|
* Salford (silversoft FTN95)
* G95
* GFORTRAN
* programlama.com
* Fortran (wikipedia)
* fortran.gantep.edu.tr
* g95.org
* Hot scripts
* E-posta
|
|
Bölüm 4: Temel Kütüphane Fonksiyonları
##################-- (%90)
|
Giriş
Bu kısımda sık kullanılan kütüphane fonksiyonlarına değinilecektir.
4.1 Fonksiyonların Listesi
Tablo 4.1'de bundan sonraki kısımlarda kullanılacak bazı kütüphane fonksiyonları listelenmiştir.
Kütüphane fonksiyonlarının tam listesini Bölüm xx'de bulabilirsiniz.
Tablo 4.1: Temel Kütüphane Fonksiyonları
Fonksiyon |
Açıklama |
Argüman tipi |
Geri dönüş tipi |
Örnek |
Sonuç |
ABS(x) |
x in mutlak değeri |
INTEGER veya REAL |
Argümanla aynı |
ABS(-1.55) |
1.55 |
SQRT(x) |
x in karekökü |
REAL |
REAL |
SQRT(2.77) |
1.664332 |
INT(x) |
x in tam kısmı |
REAL |
INTEGER |
INT(4.69) |
4 |
NINT(x) |
x e en yakın tamsayı |
REAL |
INTEGER |
NINT(4.69) |
5 |
FLOOR(x) |
x i aşağı yuvarlar |
REAL |
INTEGER |
FLOOR(4.69) |
4 |
CEILING(x) |
x i yukarı yuvarlar |
REAL |
INTEGER |
CEILING(4.69) |
5 |
REAL(x) |
x i gerçel sayıya çevirir |
INTEGER |
REAL |
REAL(4) |
4.0 |
EXP(x) |
ex değerini hesaplar |
REAL |
REAL |
EXP(-1.4) |
0.2465970 |
LOG(x) |
loge(x) = lnx değerini hesaplar |
REAL |
REAL |
LOG(3.5) |
1.252763 |
LOG10(x) |
log10(x) = logx değerini hesaplar |
REAL |
REAL |
LOG10(x) |
0.5440680 |
COS(x) |
x in kosinüsü |
REAL |
REAL |
COS(0.5) |
0.8775826 |
SIN(x) |
x in sinüsü |
REAL |
REAL |
SIN(0.5) |
0.4794255 |
TAN(x) |
x tanjantı |
REAL |
REAL |
TAN(0.5) |
0.5463025 |
ACOS(x) |
Kosinüsü x olan açı |
REAL |
REAL |
ACOS(1.0) |
0.0 |
ASIN(x) |
Sinüsü x olan açı |
REAL |
REAL |
ASIN(1.0) |
1.5707964 |
ATAN(x) |
Tanjantı x olan açı |
REAL |
REAL |
ATAN(1.0) |
0.7853982 |
MOD(X, Y) |
X (mod Y) değerini hesaplar |
INTEGER |
INTEGER |
MOD(15, 4) |
3 |
MAX(x1, x2 [, ...]) |
Argümanların enbüyüğü |
INTEGER veya REAL |
Argümanla aynı |
MAX(3,5,7,12,4) |
12 |
MAX(x1, x2 [, ...]) |
Argümanların enbüyüğü |
INTEGER veya REAL |
Argümanla aynı |
MIN(0.0,-4.2,1.0) |
-4.2 |
Bu kütüphane fonksiyonları kullanılırken aşağıdaki durumlara dikkat edilmelidir.
- Argüman tipi REAL olan fonksiyonlara geçirilecek değişken veya sabit mutlaka REAL olmalıdır
y = SQRT(4.0) ile y değişkenine 2.0 değeri atanır, fakat
4 bir tamsayı sabiti olduğu için y = SQRT(4) ataması geçersizdir. Bunu yerine
y = SQRT(REAL(4)) ataması kullanılabilir.
- Trigonometrik fonsiyonlara geçirilen açı (arguman) radyan olarak kabul eder.
y = SIN(1.5) ile 1.5 radyanın sinüsü y değişkenine atanır. Derece cinsinden bir açının
sinüsü hesaplanmak istendiğinde, 2*Pi radyan = 360 derece (Pi = 3.141592...) eşitliği kullanılabilir.
Buna göre, 10 derecenin sinüsü şöyle hesaplanır: y = SIN(10.0*Pi/180.0).
- MOD(x, y) fonksiyonu x/y'den kalanı hesaplar.
Örneğin: z = MOD(20,4) ile z değişkenine 0 atanırken, z = MOD(13,2) ile
1 değeri atanır. Bu fonksiyon aslında x - INT(x/y)*y işlemini yapar.
Şöyleki MOD(13,2) = 13 - INT(13/2)*2 = 13 - 12 = 1
- MAX() ve MIN() fonksiyonları
4.2 Örnekler
Program 4.1: Trigonometrik kütüphane fonksiyonları
01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
|
PROGRAM Trigonometrik
!--------------------------------------------------------
! 04prg01.f95
! Trigonometrik kütüphane fonksiyonları
!--------------------------------------------------------
REAL :: Aci, Pi
PRINT *,"Derece cinsinden bir açı girin:"
READ *,Aci
! Pi sayısı
Pi = 4.0 * ATAN(1.0)
! derece -> radyan dönüşümü
Aci = Aci * Pi /180.0
PRINT *," Pi: ",Pi
PRINT *,"SIN: ",SIN(Aci)
PRINT *,"COS: ",COS(Aci)
PRINT *,"TAN: ",TAN(Aci)
END PROGRAM |
ÇIKTI
Derece cinsinden bir açı girin:
30
Pi: 3.1415927
SIN: 0.5
COS: 0.8660254
TAN: 0.57735026
|
Program 4.2: Üstel ve logaritmik fonksiyonlar
01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
|
PROGRAM Logaritmik
!--------------------------------------------------------
! 04prg02.f95
! Üstel ve logaritmik fonksiyonlar
!--------------------------------------------------------
REAL :: X, Log7
PRINT *,"Positif bir x değeri girin :"
READ *,X
! log7(x) değeri nin hesabı
Log7 = LOG(x) / LOG(7.0)
PRINT *," EXP(x) = ",EXP(x)
PRINT *," LOG(x) = ",LOG(x)
PRINT *,"LOG10(x) = ",LOG10(x)
PRINT *," LOG7(x) = ",Log7
END PROGRAM |
ÇIKTI
Positif bir x değeri girin :
2.0
EXP(x) = 7.389056
LOG(x) = 0.6931472
LOG10(x) = 0.30103
LOG7(x) = 0.3562072
|
|