Forum: Ders Arası RSS
bool okumak daha kolay
acehreli (Moderator) #1
User title: Ali Çehreli
Member since Jun 2009 · 2279 posts
Group memberships: Genel Moderatörler, Üyeler
Show profile · Link to this post
Subject: bool okumak daha kolay
std.conv.to dizgiden bool'a dönüştürebiliyor. Mantıksal ifadeler bölümünün 4 numaralı probleminde girişten_bool_oku() diye bir işlev var:

  http://ddili.org/ders/d/mantiksal_ifadeler.html

bool girişten_bool_oku(string mesaj)
{
    // Mesajı yazdır
    writef(mesaj);
 
    // Girilen kelimeyi bir dizgiye oku
    char[] giriş;
    readf("%s\n", &giriş);
 
    /*
      Şimdi girilen dizgi "true" ise true değerini, "false"
      ise false değerini döndürmek istiyoruz. Yani burada bir
      dönüşüm yapıyoruz: örneğin "true" dizgisini görünce
      true değerini döndürüyoruz.
 
      Not: "true" dizgisi ile true değerinin aynı şey
           olmadıklarına dikkat edin: Birisi 't', 'r' gibi
           karakterlerden oluşur, diğeri ise bir bool
           değeridir.
    */
 
    // Sonuç olarak döndüreceğimiz değişken:
    bool dönüştürülen_değer;
 
    // "false"tan false'a ve "true"dan true'ya dönüşüm
    if (giriş == "false") {
        dönüştürülen_değer = false;
 
    } else if (giriş == "true") {
        dönüştürülen_değer = true;
 
    } else {
        /*
          Bilmediğimiz bir kelime geldi. Bu durumda ne
          yapacağımız belli olmadığı için işlemden
          vazgeçip hata atmaktan başka hiçbir çaremiz yok.
        */
        throw new Exception(
            ("Bu kelimeyi anlamadım: " ~ giriş ~
             ". Lütfen false veya true yazın.").idup);
    }
 
    return dönüştürülen_değer;
}

Onu şöyle değiştireceğim:

bool girişten_bool_oku(string mesaj)
{
    // Mesajı yazdır
    writef(mesaj ~ "(false veya true) ");
 
    // Girilen kelimeyi bir dizgiye oku
    string giriş;
    readf("%s\n", &giriş);
 
    // O dizgiden bir bool değer üret
    bool dönüştürülen_değer = to!bool(giriş);
 
    // Üretilen değeri işlevi çağırana döndür
    return dönüştürülen_değer;
}

Ali
Close Smaller – Larger + Reply to this post:
Verification code: VeriCode Please note the verification code from the picture into the text field next to it.
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Special characters:
Forum: Ders Arası RSS
Not logged in. · Lost password · Register
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Current time: 2012-05-18, 10:03:35 (UTC -07:00)