D.ershane D Programlama Dili Dersleri

çökme: [crash], programın hata ile sonlanması
düzen: [format], bilginin giriş ve çıkışta nasıl düzenlendiği
işlev: [function], programdaki bir kaç adımı bir araya getiren program parçası
parametre: [parameter], işleve işini yapması için verilen bilgi
Phobos: [Phobos], D dilinin standart kütüphanesi
... bütün sözlük

Bölümler
İngilizce Kaynaklar
Diğer



Giriş Düzeni

Çıktı düzeni dersinde anlatılanlara benzer şekilde, girişten gelen verilerin düzeni de belirtilebilir. Bu düzen; hem okunması istenen bilgiyi, hem de gözardı edilmesi istenen bilgiyi belirtebilir.

Düzen dizgisi olarak şimdiye kadar yaptığımız gibi " %s" kullanıldığında, okunmakta olan değişkenin türüne en uygun olan düzende okunur. Örneğin aşağıdaki readf çağrılarının ikisi de aynı şekilde çalışır ve ikisi de girişten bir kesirli sayı okur:

    double sayı;

    readf(" %s", &sayı);
    readf(" %f", &sayı);

Giriş için kullanılan düzen dizgisi, C'deki scanf işlevinin düzen dizgisine çok benzer.

Düzen dizgisi içinde üç tür bilgi bulunabilir:

O bilgiler sayesinde, girişten gelen veri içerisinden bizim için önemli olanlarını seçip çıkartmak ve geri kalanını gözardı etmek son derece kolaydır.

Ayrıntıya girmeden önce, bu üç tür bilgiyi kullanan bir örneğe bakalım. Girişte tek satır halinde şöyle bir bilgi bulunsun:

numara:123 not:90

O satır içerisinden bizim için önemli olan iki bilgi, öğrencinin numarası ve notu olsun; yani girişteki numara: ve not: gibi karakterlerin bizim için bir önemi bulunmasın. İşte o satır içinden öğrencinin numarasını ve notunu seçen ve geri kalanını gözardı eden bir düzen dizgisi şöyle yazılabilir:

    int numara;
    int not;
    readf("numara:%s not:%s", &numara, &not);

"numara:%s not:%s" düzen dizgisi içinde maviyle gösterdiğim bütün karakterler girişte aynen bulunmalıdırlar; onlar readf tarafından girişten okunup gözardı edilirler.

O düzen dizgisinde kullanılan tek boşluk karakteri, girişte o noktada bulunan bütün boşluk karakterlerinin gözardı edilmelerine neden olur.

% karakterinin özel anlamı nedeniyle, girişte % karakterinin kendisinin gözardı edilmesi istendiğinde %% şeklinde çift olarak yazılır.

Düzen karakterleri

d: onlu sistemde tamsayı

o: sekizli sistemde tamsayı

x: onaltılı sistemde tamsayı

f: kesirli sayı

s: türe uygun olan düzende

c: tek bir karakter; bu belirteç boşlukları da okur (gözardı edilmelerini önler)

Örneğin girişte 3 tane "23" bulunduğunu varsayarsak; değer, düzen belirtecine göre farklı olarak okunur:

    int sayı_d;
    int sayı_o;
    int sayı_x;

    readf(" %d %o %x", &sayı_d, &sayı_o, &sayı_x);

    writeln("onlu olarak okununca    : ", sayı_d);
    writeln("sekizli olarak okununca : ", sayı_o);
    writeln("onaltılı olarak okununca: ", sayı_x);

Girişine 3 defa "23" girdiğimiz halde, değerler farklı okunur:

onlu olarak okununca    : 23
sekizli olarak okununca : 19
onaltılı olarak okununca: 35

Not: Çok kısaca; "23", sekizli düzende 2x8+3=19 değerinde, ve onaltılı düzende 2x16+3=35 değerindedir.

Problem

... çözüm