Jump to page: 1 2
Thread overview
İf koşulunda karakter ?
Feb 08, 2010
ghetto
Feb 08, 2010
ghetto
Feb 08, 2010
ghetto
Feb 08, 2010
ghetto
February 08, 2010

Yeni yeni başladığım için sorularım genelde basit olacaktır şu anda soracağım soru gibi. Basit şeylerle uğraştıracağım için şimdiden özür dilerim.

if koşulunda, eğer cevap 1 ise şunu şunu yap. Bunu anladım da cevap sayı değilde harf olması için ne yapacağım onu anlayamadım.
Örnek;

import std.stdio;
import std.cstream;

void main()
{

   write("Gezelim mi?");
   int gez;
   din.readf(&gez);

   if (gez==1)
       {
       writeln("Gir koluma");
   }
}

Cevap 1 olursa gir koluma çıktısı veriyor. Peki bu cevabı 1 değilde evet olarak girebilmemiz için ne yapmamız gerekiyor?

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 08, 2010

Bunu derslerde ilerleyince anlayacaksınız. Ama ben yinede sorunuzu yanıtlıyorum:

import std.stdio;
import std.cstream;

void main()
{

   write("Gezelim mi?");
   char[] gez; /* int bildiğiniz gibi sayı değişkenini belirtmek için kullanılıyordu.
charda utf-8 karakteri kullanılacağını belirtiyor. */
   din.readf(&gez);

   if (gez=="evet".dup) //.dup koymamızın nedeni ilerideki derslerde öğretiliyor.
       {
       writeln("Gir koluma");
   }
}

Kısaca ne yaptığımızı anlatayım :
Bildiğiniz gibi siz 'int' türünde adında bir değişken belirttiniz ve int sayılar için kullanılıyor. Ama biz karakter kullanmak istiyoruz. O zaman sayı değil karakter türü olduğunu belirtmeliyiz. Bunuda 'int' yerine 'char' yazarak sağlıyoruz.

Peki [] ne işe yarıyor ?

char ile tek bir karakter tanımlayabiliyoruz.(örnek 'a', yalnız tek tırnak ile tanımladığıma dikkat edin.) Ama biz birden fazla karakter tanımlamak istiyoruz. Örneğin "evet" (çift tırnağa dikkat edin.) karakter topluluğunu tanımlamak istiyoruz. Bu [] belirtimide birden fazla char(karakter) belirtileceğini yazıyor.

Peki bu .dup ne ?

Bunu şimdi anlamayabilirsiniz. Ben yine de size kısaca açıklayayım. "örnek" karakter topluluğu(dizgi) D için sabittir. Ve D'de tür güvenliği çok önemli olduğu için sabit değer değişkene(char[]) atanamaz. Bizde .dup belirtimi ile "örnek" dizgisinin kopyasını alıp bu dizgiyi değişkene çeviriyoruz. Ve daha sonra da gez değişkene bu değeri veriyoruz.

Bunları dersleri okumadan anlamayabilirsiniz. Bunun nedeni dersleri okumamanız yada benim anlatma becerim olmamasıdır. Ama derslerde ilerlerseniz eminim dediklerimi siz kendi başınıza anlayacaksınızdır.

(Buradan Ali Bey'e not : . Dizgiler dersini öne çekerseniz daha iyi olur. Çünkü insan sadece D'de sayıları kullanılcağını sanıyor. Eğer dizgiler konusunu öne çekmeyeceksenizde okuyacaklara karakter derslerin ileride olacağını belirtin ki insanlar sadece sayılar ile işlem yapılmadığını bilebilsinler. Birde derleme hatası yazan yerlerde derleyicinin verdiği hatayıda gösterinki İlerde yaptığım hataların anlamlarını çıkarabilelim ( Yada çıkarayım :-) ) )

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 08, 2010

canalpay üşenmeden uzun uzun anlattın örnekle gösterdin anlamamak mümkün değil. Bu konu kafama takıldı öğrenmeden atlamak istemedim. Şİmdi öğrendim çok teşekkür ederim. Aslında basit bir konu olduğu için forumda kirlilik yapmak istememiştim. Ama konuyu açtığım iyi oldu belki birgün birilerinin işine yarar. Saygılarımla.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 08, 2010

Alıntı:

>

Aslında basit bir konu olduğu için forumda kirlilik yapmak istememiştim.

Lütfen böyle düşünmeyin. Basit konular bence kirlilik yapmaz. Hatta forumu zenginleştirir burada dediğiniz gibi:
Alıntı:

>

Ama konuyu açtığım iyi oldu belki birgün birilerinin işine yarar.

Ayrıca bende bir çok basit konu açmışımdır. Hatta tahminim Ali Bey bile açmıştır(Emin değilim :-D ).

Ama benim yazdığım her bir şeyi tam olarak doğru kabul etmeyin. Belki yanlışım olabilir. O zamanda Ali Bey zaten düzeltir.

Bu arada konu ile ilgili. Konuda anlatırken geçtiğim pek çok önemli nokta var. Bu yüzden dersleri okumadan biliyorum diye geçmemenizi tavsiye ederim. Ben kkendim biliyor sandığım halde pek çok konuyu unutuyor anımsamıyor olabiliyorum.

Bu arada basit dahi olsa amacına uygun doğru ve forumu zenginleştiren konular açmaya devam edin.

Ayrıca D'de ilerledikten(yani derslerde ilerledikten sonra) sonra ddili.org projelerinide katılmanızı beklerim :-)

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 08, 2010

Alıntı:

>

Ayrıca D'de ilerledikten(yani derslerde ilerledikten sonra) sonra ddili.org projelerinide katılmanızı beklerim :-)

Aslında işimle programcılık arasında alaka yok. Türkiyede 1500 den fazla mağazası olan bir şirkette mağaza müdürüyüm ve pek vaktim olmuyor bilgisayar başında. Vaktim oldukça da programalama ile uğraşmaya çalışıyorum. Kısaca programcılığı öğrenmek benim için bir hobi. Dolayısı ile hızlı bir gelişme gösteremeyeceğim. Ama öğrendikçe projelere katkı yapabilirsem inanın çok sevinirim. Zaten o zaman hobi olurya :)

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 08, 2010

Alıntı:

>

Aslında işimle programcılık arasında alaka yok. Türkiyede 1500 den fazla mağazası olan bir şirkette mağaza müdürüyüm ve pek vaktim olmuyor bilgisayar başında.

Tebrik ederim. Ayrıca sanırım zaman hepimizin ortak sıkıntısı. Bende öğrenciyim.
Alıntı:

>

Kısaca programcılığı öğrenmek benim için bir hobi. Dolayısı ile hızlı bir gelişme gösteremeyeceğim. Ama öğrendikçe projelere katkı yapabilirsem inanın çok sevinirim. Zaten o zaman hobi olurya :)

Benim içinde şuan hobi(Kim bilir belki ilerideki mesleğim :-) ). Ve bende çok bir şey bilmesemde bazen Ali Bey'e yardımcı olabiliyorum. Ve daha çok o da benim sorularımı cevaplıyor ve daha çok zaman kaybetmiş oluyor :-)

Alıntı:

>

.dup'a gerek yok aslında:

if (gez == "evet")

Not: Zaten gerek de olmamalı; çünkü tek yaptığımız karakter karşılaştırmak.

Tabi doğru ama .dup koymamın sebepleri var.

  1. ifli değerler sağ ile solun türüne baktığı için ve ben string(immutable char[] //sabit char[]) ile char[]'ı aynı tür kabul etmediğimden koydum.

  2. Anladım ki immutable belirtimi ile char[] ayrı bir tür olmuyor. Sadece değişimine izin vermiyor. Ama Şöyle bir şey denedim. char[] yerine immutable int denedim ve yine derlendi. Bu sizi doğruluyor. Ama çalıştırdığımda ve rakam girdiğimde ise şöyle bir hata aldım :
    segmentation fault

Bunu garipsedim.(Belkide bu da beni doğruluyordur. :-) )

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 08, 2010

Ali Bey benim problemim çözüldü bundan sonra yazılan herşey bana artı katar. Dediğiniz gibi kulak doldunluğu olur benimde işime yarar. Her türlü bilgiye açığım :)

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 08, 2010

Anlatımınız için teşekkürler, her ne kadar ben oradan bahsetmediysemde :-)

Benim sorum sadece if'li satırlardaki parantez içleri ile ilgili idi.

Ama ikinizde sağ olun. Sayenizde karşılaştırma işleminde .dup kullanımının gereksiz olduğunu ve string ile ilgili bir kaç sorunumu cevaplamış ya da cevaplanmasına neden oldunuz, ve bende bir kere daha konuyu baltaladım :-)

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 08, 2010

Soru sorulmuşsa değerlidir. Sorulara devam... :)

'.dup''a gerek yok aslında:

   if (gez == "evet")

Not: Zaten gerek de olmamalı; çünkü tek yaptığımız karakter karşılaştırmak. Eğer eskiden gerekiyor idiyse, belki de dmd hataları yüzündendi. Öyleyse geçtiğine sevindim. :)

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 08, 2010

Alıntı (canalpay):

>

Dizgiler dersini öne çekerseniz daha iyi olur.

Diziler oldukça baş taraftalar aslında. Şimdilik şu sıradalar:

..
if
while
tamsayılar
kesirli sayılar
diziler
karakterler
dilimler
dizgiler
..

Dizileri daha önceye alamam çünkü onları göstermek için while neredeyse gerekli. :(

Belki dizgileri dilimlerden önceye alabilirim. Onların bir sıra bağımlılığı yok.

Alıntı:

>

Çünkü insan sadece D'de sayıları kullanılcağını sanıyor.

Belki baş tarafa daha reklamlı bir şeyler eklenebilir. D ile şunları şunları yapabilirsiniz gibi.

Alıntı:

>

Eğer dizgiler konusunu öne çekmeyeceksenizde okuyacaklara karakter derslerin ileride olacağını belirtin ki insanlar sadece sayılar ile işlem yapılmadığını bilebilsinler.

Belki 'if' dersinde "merhaba" gibi dizgiler de kullanılabilir ve ileride ayrıntılı anlatılacağı söylenir...

Alıntı:

>

Birde derleme hatası yazan yerlerde derleyicinin verdiği hatayıda gösterinki İlerde yaptığım hataların anlamlarını çıkarabilelim ( Yada çıkarayım :-) ) )

Teşekkürler; buna da bakacağım...

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

« First   ‹ Prev
1 2