Serbest (Basit) Giriş/Çıkış İşlemleri

29

description

Serbest (Basit) Giriş/Çıkış İşlemleri Formatlı Giriş/Çıkış İşlemleri Temel Kütüphane Fonksiyonları (Intrinsic Functions) Karşılaştırma Operatörleri ve Mantıksal Operatörler. Serbest (Basit) Giriş/Çıkış İşlemleri. Serbest (formatsız) okuma deyimi READ *, giriş listesi veya - PowerPoint PPT Presentation

Transcript of Serbest (Basit) Giriş/Çıkış İşlemleri

Page 1: Serbest (Basit) Giriş/Çıkış İşlemleri
Page 2: Serbest (Basit) Giriş/Çıkış İşlemleri

Serbest (Basit) Giriş/Çıkış İşlemleriSerbest (formatsız) okuma deyimi

READ *, giriş listesi veya

READ (*,*) giriş listesiŞeklindedir, formatsız veri yazma deyimleri ise

PRINT *, çıkış listesi veya, WRITE (*,*) çıkış listesi şeklinde genel kullanıma sahiptir. Burada giriş listesi; birbirinden virgüllerle ayrılmış

değişkenler dizisi (karakter topluluğu) olabilir. çıkış listesi: birbirinden virgüllerle ayrılmış değişkenler,

dizisi veya bir formül olabilir.

Page 3: Serbest (Basit) Giriş/Çıkış İşlemleri

Örneğin ;WRITE (*,*) “Bu program üç sayının ortalamasını

hesaplar.”WRITE (*,*) “Sayıları girin:” READ (*,*) A, B, C Ort = (A + B + C)/3.0 WRITE (*,*) “Ortalama =,” OrtBu programın sonucunu ekranda şöyle göreceğiz,

Bu program üç sayının ortalamasını hesaplar. Sayıları girin: 5 7 12 Ortalama = 8.0

Page 4: Serbest (Basit) Giriş/Çıkış İşlemleri

READ deyimi ile okunan sayılar, aşağıdaki gibi alt alta da girilebilirdi.

ÇIKTI Bu program üç sayının ortalamasını hesaplar. Sayıları girin: 5 7 12 Ortalama = 8.0

Page 5: Serbest (Basit) Giriş/Çıkış İşlemleri

Formatlı Giriş/Çıkış İşlemleriGiriş/Çıkış işlemlerinde serbest format

kullanmak kullanıcıya bir takım kolaylıklar sağlamakla birlikte giriş ve çıkış parametrelerimizin görüntülenmesini kontrol etmemizi engellemektedir. Dolayısıyla Format deyimi giriş/çıkış parametrelerimizin özelliklerini yani verilerimizin hangi tip ve ne uzunlukta olduğunu belirtir. Bir veya daha fazla giriş/çıkış parametresi ile ilişkilidir ve

n FORMAT (f1,f2,....fn)

şeklinde yazılır.

Page 6: Serbest (Basit) Giriş/Çıkış İşlemleri

Burada n programdaki giriş / çıkış deyimlerinin numarası, f1,f2,...fn ise FORMAT deyiminin bağlı olduğu giriş /çıkış değişkenlerinin hangi tip olduklarını ve hangi tip’e dönüştürüleceğini gösteren alan bilgileridir (format edit descriptor). Bu bilgiler giriş /çıkış listesindeki değişkenlerle sayı , sıra ve mod bakımından uyuşmalıdır.

Format Deyiminin bir özelliğide ana program içerisinde herhangi bir yerde bulunabilmesidir, sadece DO döngüsü varsa bu döngünün son deyimi olamaz.

Page 7: Serbest (Basit) Giriş/Çıkış İşlemleri

READ(*,*) veya WRITE (*,*) {Serbet Format}READ(*,'(2I5,F10.2)') ... Değişkenler (variables) ... READ(*,"(5F10.2)") ... Değişkenler ... WRITE(*,'(A,I5)') …Değişkenler ve tanımlamalar

(variable and expressions).....WRITE(*,"(10F5.2)") ... Değişkenler ve

tanımlamalar (variable and expressions).....Burada 2I5, F10.2, 5F10.2, A,I5, ve 10F5.2 alan

bilgileridir.

Page 8: Serbest (Basit) Giriş/Çıkış İşlemleri

CHARACTER(LEN=20), PARAMETER :: FMT1 ="(I5,F10.2)"

CHARACTER(LEN=*), PARAMETER :: FMT2 = "(4I5, 5E14.7 , 8F5.0)"

READ(*,FMT1) ... Değişkenler (variables) ... READ(*,FMT1) ... Değişkenler (variables) ... WRITE(*,FMT2) ... Değişkenler ve tanımlamalar

(variables and expressions) ... WRITE(*,FMT2) ... Değişkenler ve tanımlamalar ...

Page 9: Serbest (Basit) Giriş/Çıkış İşlemleri

Bir karakter değişkenin (String) READ ve WRITE deyimlerindeki kullanışına örnek

CHARACTER(LEN=80) :: String String = "(3I5, 10F8.2)"

READ(*,String) ... değişkenler ... WRITE(*,String) ... Değişkenler ve

tanımlamalar…

Aynı FORMAT hem READ hemde WRITE deyimlerinde kullanılabilir.

Page 10: Serbest (Basit) Giriş/Çıkış İşlemleri

Dizin Uzunluğu

Formatlı okumalarda dikkat edilmesi gereken bir nokta’da Girişte Dizin’in uzunluğu mümkün olduğunca uzun tutulmalıdır, aksi takdirde çıkış formatı hatalı ve eksik olacaktır. Örneğin;

---------------------------------------------CHARACTER(LEN=10) :: FMT FMT = “(I2,F3.5,E15.7)”WRITE (*,FMT) ...... ---------------------------------------------Çıktı ??

(I2,F3.5,E olacaktır.................

Page 11: Serbest (Basit) Giriş/Çıkış İşlemleri

Giriş ve Çıkış için kullanılan çeşitli format alan bilgisi tanımlamaları vardır. Her bir alan bilgisi belirli bir değerin nasıl değerlendirileceğini sisteme bilgi olarak vermektedir.

I tipi tanımlamaTamsayıların giriş ve çıkışında kullanılır, w

ayrılacak olan uzunluğu gösterir ve Iw şeklinde gösterilir (I5, 2I6 vb). Giriş verisi tamsayıdır ve sayı ayrılcak alan içinde sağdan hizalanır. Tamsayı alan uzunluğunu aşmamalıdır.

Çıkışta bu tamsayının değeri kayıt ortamındaki alan içine girişte olduğu gibi sağdan hizalanarak yazılır. Sayı negatif ise (-) eksi işareti basılır aksi takdirde (+) artı işareti basılmaz.

Ayrılmış olan alan uzunluğu değeri yeterli değilse yani w dan büyükse sayı basılmaz, alan * işareti ile doldurulur.

Format Deyimi Tanımlamaları

Page 12: Serbest (Basit) Giriş/Çıkış İşlemleri

F tipi tanımlamaGiriş ve Çıkışta Gerçel sayıların gösterimi için

kullanılır. Burada da w alan uzunluğunu d sağdan itibaren desimal noktanın yerini gösterecek şekilde Fw.d olarak gösterilir (F5.0, 3F8.4 gibi), w alan uzunluğu belirlenirken işaret ve desimal nokta için de birer yer düşünülmelidir, dolayısıyla w>= d+2 olmalıdır.

Gerçel sayı olan giriş verisi sağdan hizalanmalıdır. Alan bilgisinde desimal noktanın yeri belirtildiğinden verilerde desimal nokta yazılmayabilir. Ancak veriler desimal noktalı olarak girildiyse bu yer alan bilgisindekine göre önceliklidir.

F10.4 olarak girilen bir alan bilgisi, herhangi bir gerçel sayının bilgisayara aktarılacağını gösterir.

Page 13: Serbest (Basit) Giriş/Çıkış İşlemleri

E tipi tanımlamaGiriş ve Çıkışta üslü gerçel sayıların giriş çıkışı için

kullanılır ; Ew.d şeklinde yazılır, burada w alan uzunluğunu

, d bu alanda E den itibaren desimal noktanın yerini belirtir. Örneğin E10.2 alan bildirisi , herhangi bir üslü gerçel sayının bilgisayara giriş verisi olarak aktarılacağını gösterir. Üslü gösterim durumundada verinin alan içinde sağdan hizalanması zorunludur.

Çıkış’ta w sayıda yer ayrılır, bunun içinde işaret ve desimal nokta için birer, üs için 4 yer olmak üzere toplam 6 yer vardır. Pozitif sayılarda işaret basılmaz

Page 14: Serbest (Basit) Giriş/Çıkış İşlemleri

D tipi tanımlama Çift incelikli (double precission) gerçel sayıların

giriş çıkışında kullanılır ;  Dw.d şeklinde yazılır ve w alan uzunluğunu , d ise desimal noktanın yerini gösterir .

L tipi alan bildirisi Mantıksal büyüklüklerin giriş çıkışında kullanılır ;

Lw şeklinde yazılır, w alan uzunluğunu gösterir. Girişte w alan uzunluğu >= 1 olmalıdır ; başta boşluklar olabilir . Giriş alanındaki ilk karakter TRUE (doğru) için T ve FALSE (yanlış) için F olmalıdır . Bunları izleyen karakter göz önüne alınmaz . Giriş alanında T ya da F yoksa bu bilgisayar belleğine FALSE olarak aktarılır .

Page 15: Serbest (Basit) Giriş/Çıkış İşlemleri

G tipi tanımlamaBir genel alan bildirisidir. Tamsayı , gerçel çift

incelikli , kompleks ve mantıksal büyüklüklerin giriş çıkışında kullanılır;  

Gw.d şeklinde yazılır, w alan uzunluğunu d desimal noktanın yerini belirler .

Giriş verisi I ya da L tipinde ise , Gw.d tanımlaması Iw ya da Lw olarak çalışır, .d kısmı göz önüne alınmaz ; F , E ya da D tipinde ise Fw.d , Ew.d ya da Dw.d biçiminde çalışır . Giriş verisi kompleks ise gerçek ve sanal kısımlar için iki ayarı G alan bildirisi gereklidir

Page 16: Serbest (Basit) Giriş/Çıkış İşlemleri

Z tipi tanımlamaHeksadesimal büyüklüklerin giriş çıkışı için kullanılır ;

Zw şeklinde yazılır, w alan uzunluğunu belirtir GİRİŞ . Veri hekzadesimal sabit olmalıdır . Giriş alanındaki boşluklar sıfır olarak yorumlanır . Veri sağdan hizalanmış olmalıdır. Girişte, Giriş verisi uzunluğu >w ise fazla haneler soldan kesilerek bilgi belleğe aktarılır . Heksadesimal değer çıkış ortamına sağdan hizalanarak yazılır, kalan yerler varsa boş bırakılır. Çıkışta da Giriş verisi uzunluğu >w olması durumunda çıkışta da fazla haneler soldan kesilerek yazılır

Page 17: Serbest (Basit) Giriş/Çıkış İşlemleri

A tipi tanımlama

Alfa nümerik büyüklüklerin giriş ve çıkışı için kullanılır ;

 Aw

şeklinde yazılır burada w alan uzunluğunu gösterir . Alfa nümerik bilgi bellekte karakter formunda

saklandığından hesaplamalarda kullanılamaz . Bilgi giriş alanında sağdan hizalanmış olmalıdır

Alfa nümerik bilgi girişte olduğu gibi çıkış ortamındada sağdan hizalanarak yazılır.

Page 18: Serbest (Basit) Giriş/Çıkış İşlemleri

H tipi tanımlamaBir karakter dizisini giriş çıkışı için kullanılır ;

wHsşeklinde yazılır, w alan uzunluğunu , s karakter kümesini gösterir . Giriş parametresi olarak w sayıda karakter yerine s karakter kümesi yer alır, boşluk karakterleri de bunun içindedir . Çıkışta ise giriş işlemi sonucu onun yerine geçirilmiş karakterler dış ortamda görünür .

Page 19: Serbest (Basit) Giriş/Çıkış İşlemleri

X tipi tanımlama  Program Giriş ve çıkışında boşlukları göstermek için

kullanılır ;  wX şeklinde gösterilir (5X, 2x gibi), w alan uzunluğunu

gösterir . Girişte w kadar karakter in atlanacağını ifade eder, çıkışta ise w sayıda boşluk bırakılacağını gösterir.

T tipi tanımlama  Tn

şeklinde gösterilir, giriş ve çıkışta verilerin ilk karakterlerinin bulunduğu yeri belirlemekte kullanılır.

Page 20: Serbest (Basit) Giriş/Çıkış İşlemleri
Page 21: Serbest (Basit) Giriş/Çıkış İşlemleri

Bir çok format tipi proram içinde tekrar edebilir vede gruplandırılabilir.

CHARACTER(LEN=30) :: Format Format = "(5X, I5.2, F10.3, A, ES14.7)" READ(*,Format) ... Değişkenler (variables) ... WRITE(*,Format) ... Değişkenler ve tanımlamalar

Burada 5 farklı format tipi 5X, I5, F10.3, A,ES14.7 bir arada kullanılmıştır, format tipleri birbirlerinden virgül ile ayrılmaktadır.

Bir program içinde READ ve WRITE deyimleri hem serbest formatlı hemde Formatlı olarak kullanılabilir.

Page 22: Serbest (Basit) Giriş/Çıkış İşlemleri

Temel Kütüphane Fonksiyonları

(Fortran Intrinsic Functions)

Page 23: Serbest (Basit) Giriş/Çıkış İşlemleri

Fonksiyon

Açıklama Argüman Tipi

Geri Dönüş Tipi

Örnek Sonuç

Page 24: Serbest (Basit) Giriş/Çıkış İşlemleri

Fonksiyonların Kullanımında Dikkat Edilmesi Gereken Durumlar:

Değişken tipi REAL olan fonksiyonlarda değişken veya sabit mutlaka REAL olmalıdıry = 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. Bunun yerine y = SQRT(REAL(4)) ataması kullanılabilir.

Trigonometrik fonksiyonlarada açı radyan olarak kabul edilir.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. 1 derecenin sinüsünü hesaplamak için y = SIN(1.0*Pi/180.0) eşitliğini kullanırız.

Page 25: Serbest (Basit) Giriş/Çıkış İşlemleri

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

Fonksiyonlar her zaman aritmetik operatörlerden önceliklidirler..........

Page 26: Serbest (Basit) Giriş/Çıkış İşlemleri

Karşılaştırma Operatörleri ve Mantıksal Operatörlerİki veya daha fazla değerin karşılaştırılması gereken

durumlarda karşılaştırma operatörleri ve/veya mantıksal operatörler kullanılır. Bu operatörler;

OperatörAçıklama Örnek Anlam

Eski Yeni

.GT.>

Büyüktür x>y x, y'den büyüktür

.LT.<

Küçüktür x<y x, y'den küçüktür

.EQ.==

Eşittir x == y x, y ye eşittir

.GE.>=

Büyük-eşit x >=y x, y'den büyük veya eşittir

.LE.<=

Küçük-eşit x<=y x, y'den küçük veya eşittir

.NE./=

eşit değil x /=y x, y'den farklı

Page 27: Serbest (Basit) Giriş/Çıkış İşlemleri

Eski sütunundaki operatörler FORTRAN 77'ye kadar ki dönemde kullanılmaktaydı. Fortran 90'dan itibaren, aynı anlama gelen Yeni sütunundaki operatörler dahil edilmiştir. Fortran 90'da hem Eski hem de yeni operaörleri kullanmaya izin verir.

Eğer, birden çok karşılaştırma işlemi yapılacak ise bu operatörler, Mantıksal Operatörler'le birleştirilebilir

Page 28: Serbest (Basit) Giriş/Çıkış İşlemleri

Mantıksal Operatörler

Operatör Açıklama Örnek

.AND. Mantıksal VE x>2 .AND. x<y

.OR. Mantıksal VEYA x>2 .OR. x<y

.NOT. Mantıksal DEĞİL .NOT. x>2

.EQW. Mantıksal EŞDEĞER x .EQW. Y

.NEQW. MantıksalEŞDEĞER DEĞİL x .NEQW. Y

Page 29: Serbest (Basit) Giriş/Çıkış İşlemleri

Y = ln|2x|+3x

Y = log ( ABS (2x) ) + 3x 

Z = a - ( (a-b) / (b-c) ) - c

Lamda = tan(x) / (sin(x+1))**2 (x+y) / z + ( e / (d+a))2

(x+y) / z + ( e / (d+a))**2

 

Aşağıdaki aritmetik ve mantıksal atama deyimlerinden hangileri geçersizdir, Neden? a)A*B+C=10b)-I= J**2 c) A=B+2 d) C=.FALSE.OR..TRUE. e) C=(X+Y).OR.FALSE..