24
Fortran Proglama Dili’nin Esasları Temel Veri Tipleri (Data Types) Sabitler (Numeric Data Types) Tanımlayıcılar (Identifiers) Değişkenler (Variables) Paramater Deyimi Program Deyimi Implicit None Deyimi Atama Operatörleri (Assignment Statments) Aritmetik Operatörler (Aritmetic Operators) Dönüşümler

Fortran Proglama Dili’nin Esasları Temel Veri Tipleri (Data Types)

  • Upload
    dareh

  • View
    72

  • Download
    2

Embed Size (px)

DESCRIPTION

Fortran Proglama Dili’nin Esasları Temel Veri Tipleri (Data Types) Sabitler (Numeric Data Types) Tanımlayıcılar (Identifiers) Değişkenler (Variables) Paramater Deyimi Program Deyimi Implicit None Deyimi Atama Operatörleri (Assignment Statments) - PowerPoint PPT Presentation

Citation preview

Page 1: Fortran Proglama Dili’nin Esasları  Temel Veri Tipleri (Data Types)

Fortran Proglama Dili’nin Esasları

Temel Veri Tipleri (Data Types) Sabitler (Numeric Data Types)

Tanımlayıcılar (Identifiers)Değişkenler (Variables)Paramater DeyimiProgram DeyimiImplicit None DeyimiAtama Operatörleri (Assignment

Statments) Aritmetik Operatörler (Aritmetic

Operators)Dönüşümler

Page 2: Fortran Proglama Dili’nin Esasları  Temel Veri Tipleri (Data Types)

Giriş:Tüm bilgisayar programlama dillerinde veri tipi ve

değişken kavramı vardır. Fortran Programlama dilindeki temel veri tipleri (data type), sabitler, tanımlayıcılar, ve değişkenlerdir.

Veri Tipleri;

Program içerisinde kullanılan değişken, sabit veya tanımlayıcı (örneğin fonksiyon isimleri) veri tipleri bellekte ayrılacak bölgenin büyüklüğünü belirlemektedirler. Fortran Programlama dilinde temel olarak 5 veri tipi bulunmaktadır.

Page 3: Fortran Proglama Dili’nin Esasları  Temel Veri Tipleri (Data Types)

INTEGER REAL CHARACTER COMPLEX LOGICAL

Page 4: Fortran Proglama Dili’nin Esasları  Temel Veri Tipleri (Data Types)

INTEGER Veri tipiBu veri tipi ile 0 ile 9 arasındaki sayıları

içeren tamsayı bilgisi (pozitif veya negatif ) bellekte tutulur.

Geçerli Veri Geçersiz Veri 0 8.67 235 5,8 -1539 --7 +238 57-

Page 5: Fortran Proglama Dili’nin Esasları  Temel Veri Tipleri (Data Types)

REAL Veri tipi Bu veri tipiyle 0 ile 9 arasıdaki rakamlardan

oluşan gerçelsayı bilgisi (pozitif veya negatif ) bellekte tutulur.

Geçerli Veri Geçersiz Veri 2.25 3,56 -112.5 18 +568. 0

Page 6: Fortran Proglama Dili’nin Esasları  Temel Veri Tipleri (Data Types)

Fortran programlama dilinde Gerçel Sayılar üstel gösterimle ifade edilirler. Programlama sırasında üstel gösterim kullanılması çok büyük ve çok küçük sayıları yazarken kolaylık sağlar. Örneğin 580.000 sayısı 5.80000E2 şeklinde ifade edilir. Bu aslında 5.80000 x 102 gösterimine eşdeğerdir.

Benzer şekilde, aşağıdaki ifadeler birbirleri yerine kullanılabilinir;

5.80000E+2 5.80000e+20.58000E3580.000E0580000E-3

Page 7: Fortran Proglama Dili’nin Esasları  Temel Veri Tipleri (Data Types)

CHARACTER Veri tipiKarakter veri tipi, Fortran programlama dilinde kullanılan karakter topluluğundan seçilen rakamlar, harfler ve özel simgeler içeren semboller topluluğudur. Fortran'da karakter veri tipi tek (‘ ) veya çift tırnak (“ ) içinde belirtilir.

Örneğin:“Dersimiz Fortran Programlama” ile ‘Dersimiz Fortran Programlama’ 26 karakter uzunlukta geçerli Karakter veri tipidir.

Page 8: Fortran Proglama Dili’nin Esasları  Temel Veri Tipleri (Data Types)

Geçerli Veri Geçersiz Veri“Bilgisayar” ‘Bilgisayar”‘Bilgisayar Uygulamaları’

“Bilgisayar Uygulamaları’

“ Ali’nin Not Defteri” ‘Ali’nin Not Defteri’

Programlamada birden çok karakter veri tipi bir araya getirilmek istenebilir, bunun içinde bir birleştirme operatörü (//) kullanılır. Örneğin;“Jeofizikte bilgisayar uygulamaları” // “dersinde Fortran Programlama öğreniyoruz’’ işlemi ile iki karakter veri grubu tek bir grupta toplanır, program çıktısıda aşağıdaki gibi olur;“Jeofizikte bilgisayar uygulamaları dersinde Fortran Programlama öğreniyoruz”

Page 9: Fortran Proglama Dili’nin Esasları  Temel Veri Tipleri (Data Types)

Programlama dillerinde karakter toplulukları dizin veya dizi (string) olarak adlandırılır. Fortran'da, en fazla 10 karakter tutabilen Ad ve 20 karakter tutabilen Soyad dizinleri şöyle tanımlanabilir:

CHARACTER (LEN=10) :: Ad CHARACTER (LEN=20) :: Soyad Dizin (String) uzunluğunu gösteren LEN deyiminin kullanımı

isteğe bağlıdır. Bildirim aşağıdaki gibi de yapılabilir:CHARACTER (10) :: Ad CHARACTER (20) :: Soyad

Dizin uzunlukları belirtmek için *n işlemi de kullanılabilir. Burada n dizin’in uzunluğunu gösterir.

CHARACTER (10) :: Ad, Soyad*20 Burada Ad 10, Soyad 20 krakter uzunluğundadır.

CHARACTER FILE1*12, DAY*4, T*28, header*254

Page 10: Fortran Proglama Dili’nin Esasları  Temel Veri Tipleri (Data Types)

Dizinlere ilk değer ataması aşağıdaki gibi yapılır: CHARACTER (10) :: Ad = “Kemalettin" CHARACTER (20) :: Soyad = “Celebioglu" veya CHARACTER (10) :: Ad, Soyad*20 Ad = “Kemalettin" Soyad = “Celebioglu"

Page 11: Fortran Proglama Dili’nin Esasları  Temel Veri Tipleri (Data Types)

COMPLEX Veri tipiFortran karmaşık (complex) sayılarla çalışmaya izin veren bir

programlama dilidir. Herhangi bir complex sayı a + bi olarak bildiğimiz sayılardır

gerçek kısım Sanal kısım

Burada i2 = -1 dir. bir karmaşık sayı a ve b gerçel sayı olmak üzere, Fortran'da (a, b) şeklinde ifade edilir. Örneğin:(1.0, 4.0) 1.0 + 4.0i (0.0, 1.0) i (1.0, 0.0) 1.0 (3.3E-2, 0.1) 0.033 + 0.1i

Page 12: Fortran Proglama Dili’nin Esasları  Temel Veri Tipleri (Data Types)

COMPLEX veri tipine sahip değişkenlerin bildirimi, COMPLEX :: Z1, Z2 şeklinde yapılır.

Bu tip beğişkenkere başlangıç değeri verme, diğer veri tiplerinde olduğu gibi, bildirim kısmında yapılır:

COMPLEX :: Z1 = (2.0, 5.0), Z2 = (1.8, -2.7)

Page 13: Fortran Proglama Dili’nin Esasları  Temel Veri Tipleri (Data Types)

LOGICAL Veri tipiFortran'da mantıksal (logical) veri tipinin iki değeri vardır.

Bunlar .TRUE. ve .FALSE. dır. Logical veri tipleri koşullu işlem gerektiren deyimlerde kullanılır.

Örneğin aşağıdaki fonksiyon N sayısı çift ise doğru (.TRUE.) değilse yanlış (.FALSE.) değeri gönderir.

LOGICAL FUNCTION Cift(N) INTEGER,INTENT(IN) :: N IF(MOD(N,2)=0) THEN Cift = .TRUE. ELSE Cift = .FALSE. END IF END FUNCTION

Page 14: Fortran Proglama Dili’nin Esasları  Temel Veri Tipleri (Data Types)

Tanımlayıcılar (Identifiers)

Tanımlayıcılar (Identifiers) program içinde kullanılan; değişken, sabit, fonksiyon, modül, yapısal veri tipi gibi nesnelere verilen sembolik isimlerdir. Bir tanımlayıcı kullanırken aşağıdaki kullara uyma zorunluluğu vardır.

Bir tanımlayıcı; en fazla 32 karakterden oluşabilir. 32 karakterden uzun değişken isimlerinde ilk 32 karakteri değerlendirilir. Geriye kalan karakterler işleme tabi tutulmaz,

İngiliz alfabesinde bulunan karakterler (A-Z) veya (a-z), rakamlar (0-9) ve alt çizgi ('_') karakterleri kullanılarak oluşturulmalıdır. Türkçe karakterler, özel karakter veya boşluk karakteri kullanılamaz

Tanımlayıcılar bir rakam ile başlayamaz. İlk karakter mutlaka bir harf olamalıdır. Sonraki karakterler rakamlardan oluşabilir.

Page 15: Fortran Proglama Dili’nin Esasları  Temel Veri Tipleri (Data Types)

Geçerli Tanımlayıcı Geçersiz Tanımlayıcı Hiz Hız Gravitasyon_Sabiti Işıkhızı Ivme İvme Sismik_Hiz Sismik Hiz Onlira 10lira

Page 16: Fortran Proglama Dili’nin Esasları  Temel Veri Tipleri (Data Types)

DeğişkenlerFortran'da, bir değişken tanımlandığında bu değişken için

bellekte bir yer ayrılır. Değişkenin tipi, ilgili yere yazılacak sayısal verinin tipini belirler. Değişken adlarının geçerli bir tanımı olmalıdır ve programın başında bulunmalıdır.

Değişken bildirimi şöyle yapılır: Veri Tipi :: değişkenler listesi Burada Veri Tipi genellikle beş temel veritipinden (INTEGER,

REAL, CHARACTER, COMPLEX, LOGICAL ) birdir ve değişkenler listesi birbirinden virgüllerle ayrılmış değişken adlarıdır.

Örneğin, INTEGER :: Atom_Numarasi, I, J, Yaricap REAL :: X, Ivme, Hiz COMPLEX :: Z, Impedance,

bu değişkenlere aşağıdaki gibi başlangıç değeri verme işi yine bildirim kısmında yapılır.

INTEGER :: Atom_Numarasi = 2, I, J, Yaricap= 5REAL :: X, Ivme = 9.8, Hiz = 100.0

Page 17: Fortran Proglama Dili’nin Esasları  Temel Veri Tipleri (Data Types)

PARAMETER DeyimiProgram içerisinde sık kullanılan

sabitlere isim vermek münkündür. Sabit bildirimi, başlangıç değeri verilen değişken bildirimi gibi yapılır. Ancak, veri tipinden sonra PARAMETER anahtar sözcüğü konmalıdır. Örneğin:

REAL, PARAMETER :: Pi = 3.1415926, IkiPi = 2.0*Pi

INTEGER, PARAMETER :: EOF= -1, Max = 100

Page 18: Fortran Proglama Dili’nin Esasları  Temel Veri Tipleri (Data Types)

IMPLICIT NONE DeyimiBir değişkene veya sabit’e program başında bir tip

verilmesi zorunlu değildir. Herhengi bir değişkenin tipi bildirilmemişse, Fortran bu değişkene INTEGER veya REAL veri tipi atar. Eğer değişkenin adı I, J, K, L, M, N (veya i, j, k, l, m, n) ile başlıyorsa, değişken INTEGER aksi halde REAL veri tipine sahipmiş gibi değerlendirilir. Bu özellik iç isim çevrimi (implicit naming conversion) olarak adlandırılır. İç isim çevrimini iptal emek için IMPLICIT NONE deyimi kullanılır. Böylelikle kullanıcı bütün değişkenlerin tipini kendi belirleme olanağı sağlar. Uzman Fortran programcıları IMPLICIT NONE deyimini her zaman kullanmayı tercih ve tavsiye ederler.

IMPLICIT NONE REAL, PARAMETER :: Pi = 3.1415926 INTEGER :: I, N ...

Page 19: Fortran Proglama Dili’nin Esasları  Temel Veri Tipleri (Data Types)

Atama Operatörü (=)= sembolü birçok programlama dilinde bir eşitliği değil bir atama

işlemini gösterir. Derleyici X = A + B gibi bir satırla karşılaştığında, önce = sembolünün

sağındaki A + B işlemini hesaplayıp sonucunu X'e atar. Buna göre aşağdaki atamaları incelersek,

IMPLICIT NONE INTEGER :: I, J, X = 2 I = X + 5 ! I = 7 I = I + 1 ! I = 8 X = X * 2 ! X = 4 J = X / 4 ! J = 1

Page 20: Fortran Proglama Dili’nin Esasları  Temel Veri Tipleri (Data Types)

Aritmetik Operatörler( ), *, /, +, -, ** operatörleri aritmetik işlemlerde

kullanılan operatörlerdir. Bunlar sırasıyla parantez içi, çarpma, bölme, toplama, çıkarma ve kuvvet alma operatörleridir.

Aritmetik İşlemlerde öncelikle parantez içindeki işlem

gerçekleştirilir sonrasında Çarpma, Bölme, Toplama ve son olarakta Çıkarma işlemi gerçekleştirilir

Page 21: Fortran Proglama Dili’nin Esasları  Temel Veri Tipleri (Data Types)

Veri Tipi DönüşümleriBir formül içerisinde bir çok değişken ve sabitler olabilir. Bu

değişken ve sabitler birbirinden farklı tipte olursa, hesaplamaların sonuçlarının hangi tipte olacağı çok önemlidir. Bir bağıntıda, içeriği dönüşüme uğrayan değişkenler eski içeriklerini korurlar. Dönüştürme işlemi için geçiçi bellek alanı kullanılır; dönüştürülen değer kullanıldıktan sonra o alan serbest bırakılır.

Eğer Programımız içinde INTEGER L; REAL D; Sabitleri ile aşağıdaki işlemleri yaparsak; Bağıntı Sonuç Tipi ------- ---------- L+8 INTEGER L*5 INTEGER L+5.0 REAL D+L REAL D+L-2 REAL L/2 INTEGER L/2.0 REAL

Tamsayılar arası bölme, kesme hatalarına (truncation error) neden

olur.Bunun anlamı iki tamsayının oranı

yine bir tamsayıdır.örneğin: 6/2 = 3; ama 5/2 = 2 (2.5 değil).

Fakat 6/2.0 = 3.0 ve 5/2.0 = 2.5 dir.

Page 22: Fortran Proglama Dili’nin Esasları  Temel Veri Tipleri (Data Types)

Fortranda amaçladığımız sonuca göre bir sabitin veya değişkenin tipini uygun fonksiyonlarla değiştirebiliriz.

IMPLICIT NONE REAL :: X INTEGER :: I, J I = INT(4.6) ! I = 4 anlamında J = NINT(4.6) ! J = 5 anlamında X = REAL(4) ! X = 4.0 anlamında X = 9/4 ! X = 2.0 anlamında X = REAL (9)/4 ! X = 2.25 anlamında X = REAL(I+J)/2 ! X = 4.5 anlamında

Page 23: Fortran Proglama Dili’nin Esasları  Temel Veri Tipleri (Data Types)

Fortran 90 ile gelen yeniliklerden biri olan ve programın anlaşılabilirliğini arttıran iki operatör vardır. Bu operatörler “&” ve ” ; “ sembolleri ile temsil edilir.

& OperatörüBu operatör sayesinde, uzun aritmetik deyimler içeren formülleri kesmek mümkündür.

Örneğin: V = ( (X**2 + 2.*X + 3.)/(5.+Y)**0.5 - ((15. - 77.*X**3)/Y**1.5)**0.5 ) / (X**2 - 4.*X*Y - 5.*X**(-0.8))

gibi bir uzun formül aşağıdaki gibi ikiye V = ( (X**2 + 2.*X + 3.)/(5.+Y)**0.5 - ((15. - 77.*X**3)/Y**1.5)**0.5 ) & / (X**2 - 4.*X*Y - 5.*X**(-0.8)) veya üçe V = ( (X**2 + 2.*X + 3.)/(5.+Y)**0.5 - & ((15. - 77.*X**3)/Y**1.5)**0.5 ) & / (X**2 - 4.*X*Y - 5.*X**(-0.8)) bölünerek yazılabilir:

Page 24: Fortran Proglama Dili’nin Esasları  Temel Veri Tipleri (Data Types)

; OperatörüBu operatör “&” operatörünün tersine, bir satırda birden çok işlem veya formülü yazmaya izin verir.

Örneğin: Y = 1.2 - 9.8*t; x = 1.0 + 1.2*t - 9.8*t**2 ileY = 1.2 - 9.8*t x = 1.0 + 1.2*t - 5.0*t**2