D.ershane D Programlama Dili Dersleri

gösterge: [pointer], bir değişkeni gösteren değişken
standart çıkış: [standard output], program çıktısının normalde gönderildiği akım
... bütün sözlük

Bölümler
İngilizce Kaynaklar
Diğer



Girişten Bilgi Almak

Girilen bilginin daha sonradan kullanılabilmesi için bir değişkende saklanması gerekir. Örneğin okulda kaç tane öğrenci bulunduğu bilgisini alan bir program, bu bilgiyi int türünde bir değişkende tutabilir.

Yazdırma işlemi sırasında dout kullanmak, bilginin nereye gideceğini açıklamaya yetiyordu; çünkü dout standart çıkış demektir. Çıkışa ne yazdırılacağını da parametre olarak veriyorduk. Örneğin dout.writef(öğrenci_sayısı); yazmak, çıkışa öğrenci_sayısı değişkeninin değerinin yazdırılacağını söylemeye yetiyordu. Özetlersek:

akım:       dout
işlem:      writef
yazdırılan: öğrenci_sayısı değişkeninin değeri
hedef:      normalde ekran

writef'in karşılığı readf'tir; standart girişin de din olduğunu görmüştük; bu kadarı kolay... Ama okuma durumunda bundan başkaca önemli bir ayrıntı vardır: okunan bilginin nerede depolanacağının da belirtilmesi gerekir. Okuma işlemini de özetlersek:

akım:       din
işlem:      readf
okunan:     bir bilgi
hedef:      ?

Okunan bilgi 100 gibi bir değer olsun... Bu değeri öğrenci_sayısı değişkenine okumak için yazma durumundaki kullanıma benzeterek din.readf(öğrenci_sayısı) yazmayı düşünebilirsiniz, ama maalesef bu çalışmaz... Çünkü hatırlarsanız, değişkenlerin isimleri değerleri olarak kullanılırlardı. öğrenci_sayısı'nın değerinin 0 olduğunu varsayarsak, o kullanım din.readf(0)'ın eşdeğeri olur ve girişten gelen değerin 0'a atanacağı anlamını doğurur. 0 gibi bir değer her zaman için 0 olmak zorunda olduğu için de burada başka bir ifade şekli gerekir: bilginin okunacağı yeri söylerken değişkenin ismini değil, adresini kullanmak...

D'de isimlerden önce kullanılan & karakteri, o isimle belirtilen şeyin adresi anlamına gelir. İşte readf'e okuduğu bilgiyi yerleştireceği yer de bu şekilde bildirilir: din.readf(&öğrenci_sayısı). Burada &öğrenci_sayısı, "öğrenci_sayısı değişkenine" diye okunabilir. Bu kullanım, yukarıdaki soru işaretini ortadan kaldırır:

akım:       din
işlem:      readf
okunan:     bir bilgi
hedef:      öğrenci_sayısı değişkeni

İsimlerin başına & karakteri koymak o ismin belirttiği şeyin gösterilmesi anlamına gelir. Bu gösterme kavramı da sonraki derslerde karşılaşacağımız göstergelerin özünü oluşturur.

Bu anlatılanları gösteren programda önce sizden öğrenci sayısını bildirmeniz isteniyor, istediğiniz değeri yazdıktan sonra Enter'a basmanız gerekir.

Not: Eğer geliştirme ortamı olarak SciTE kullanıyorsanız, programı komut satırından başlatmanızı öneririm. SciTE'ın çıkış penceresi bilgi girmeye izin vermez.

import std.cstream;

void main()
{
    dout.writef("Okulda kaç öğrenci var? ");

    // Öğrenci sayısının tutulacağı değişkenin tanımlanması
    int öğrenci_sayısı;

    /*
      Girişten gelen bilginin öğrenci_sayısı değişkenine
      atanması
     */
    din.readf(&öğrenci_sayısı);

    dout.writefln(
      "Anladım: okulda ", öğrenci_sayısı, " öğrenci varmış.");
}
Ek bilgiler
Problemler
  1. Döviz kurunu ve avro adedini kullanıcıdan bilgi olarak alın ve bu bilgiyi çıkışa yazdırın.
  2. Aynı programda girişten sayı beklenen durumda harfler girin ve programın yanlış çalıştığını gözlemleyin.
... çözümler