Thread overview
Programcılık Üzerine Makaleler
Sep 02, 2012
Salih Dinçer
Sep 02, 2012
Salih Dinçer
Sep 10, 2012
Salih Dinçer
Sep 10, 2012
Salih Dinçer
September 02, 2012

Merhaba,

Kendimce faydalı bir şey yapabilmek için küçük bir girişimim olacak. İçeriğinde İngilizce kelimelerin yorumlandığı, örneklendiği ama temeli programlama olan bir makale dizisi yazmak istiyorum. FB'de bir grup açtım ve ilk yazım hayata dairdi. Beğeneceğinizi umuyorum...

Alıntı:

>

İlk yazımız döngü (loop) üzerine...

Çünkü hayat bir döngü demek ama biraz açıklamak gerek ve de örneklemek...:)

Yaşadıkça nefes alıp veririz, öyle değil mi? <--(bunu hep yaparız)... Doğarız, ölürüz; acıkırız, doyarız ve hatta üzülürüz, arkasından seviniriz. İşte bu satırları okurken (gözlerin sağa sola hareket etmesi) bile hep aynı döngü, devingen (dynamic) titreşim içerisindeyiz.

Titreşimi (frekans) de açıklamalıyız...

Herkesin yaşamıyla daha doğrusu alıştığı şeylerle orantılı bir frekansı var. Belki zaman zaman bu frekansın genliğinde değişiklikler olsa da yine devam eden bir döngü içerisinde hapsolmuştur. Tıpkı bir radyonun içindeki kristalin (veya devrenin) sınırıladığı alan gibi.

http://www.dahiweb.com/wp-content/uploads/2009/05/repeat-business.jpg

Biraz da bilgisayara/programlamaya girelimi döngü dedik ya!

Motorlu sabit disklerimizin dönen diski, bellekteki veri ve ekrandaki görüntü hep döner/tazelenir. Ekrandaki görüntüyü sabit zannetseniz bile sürekli yenilenme süreçi (cycle time) içinde yaşamını tekrar eder. Programlama yaparken de mutlaka döngüleri kullanırız. Herhalde uzun kodlu hiç bir yazılım yoktur ki döngü kullanılmasın. Programlama diline göre değişmekle birlikte şu döngü komutları vardır:

  • while
  • repeat
  • loop
  • for
  • do while

Sanırım en basiti de şudur: while(true) writeln("Nefes al/ver");

Peki biraz daha nitelikli hale getirelim ve içine güzel bir şart koyalım. Hani Türkçe'de "eğer şöyleyse böyle yapabilir miyim?" diye sorarız ya. İşte İngilizce tam karşılığı olan if : eğer demektir. İşte bu ikinci komut ile daha güzel bir şey yapabiliriz:

> bool tersle; // tersle yerine İngilizce toggle da anlamı olabilirdi...
>
> while(true) {
>   tersle = tersle ? false : true;
>   if(tersle) writeln("Nefes alıyorum...");
>   else writeln("Nefes veriyorum...");
> }
> ```

> Elbette programlama bilmeyenler için yukarıda çok yabancı şeyler var. Onlar için de biraz açıklarsak:
>
> * true/false, doğru ve yanlış demektir. Boolean yani mantık değişkenleri olarak kullanmaktayız. Elektronikteki 1 ve 0 gibidir ve bunları true/false yerine de kullanabilirdik. Bu arada 2 Kasım 1815 tarihli doğumuyla George Boole'u saygıyla anıyorum...
>
> * if() ile soru işareti (?) aynı şeylerdir: eğerdir, şarttır, koşuldur. Değişkenlerde pratik bir şekilde veriyi bir mantık çerçevesinde eşitlemek istersek soru işaretini kullanırız. Böylece örneğimizdeki tersle ifadesi İngilizce ve elektronikteki toggle terimine eşdeğer olur. Yani her biri işlev gördüğünde (o satıra geldiğinde) aç/kapa vazifesi görür ki evimizde kullandığımız bir elektronik alette mekanik olmayan toggle button (aç/kapa düğmesi) gibidir.
>
> * if()'deki else ise tıpkı toggle button'daki gibi bir anlama sahip. Yani öyle değilse şöyle yap demek. Çünkü bir plazma televizyonun açma/kapama düğmesi de böyle çalışır. İlk bastığınızda televizyon kapalı olduğu için bu koşula bakar. Sanki düğme basarken ona Ali Baba'nın mağarasının kapısını açtığı gibi şöyle seslenirsiniz:
>
> Alıntı:
> > "Eğer kapalıysa açıl, açıksa kapan!", öyle değil mi...:)
>
> * İlk tanıma bakarsak while() içindeki true da bir koşul ifadesidir. Eğer true(1) ise döngüye devam et demek. Böylece sonsuz bir döngü içinde programımızı çalıştırmış oluyoruz.
>
> Peki yine konuyu yaşama bağlarsak ve yukarıdaki örneği yaşamımıza uygularsak nasıl bir sonuç elde ederiz? Acı ama gerçek, biz nefes aldığımız müddetçe yaşarız, döngümüzü devam ettirebiliriz!
>
>

import std.stdio;

int main(string[] HAYATIM) {
bool toggle = true;
char life = 236; // ∞ (sonsuzluk simgesi!)

while(HAYATIM.length > 1) {
if(toggle) writeln("Nefes alıyorum...");
else writeln("Nefes veriyorum...");

toggle = toggle ? false : true;

if(!life) return 1; // öldüm
life++;

}
return 0; // hiç yaşamadım bile!
}

>

Dip Not: Yukarıdaki kodu denemek için www.dlang.org adresinin ana sayfasındaki kutuya yapıştırın ve çalıştırmayı deneyin, çalışmayacaktır! Çünkü Args düğmesine tıklayıp yaşamanızı sağlayacak nitelikleri parametre olarak vermelisiniz. Bu arada yeni bir İngilizce kelime/komut öğrenelim Arguments : "Bağımsız Değişkenler"

Sevgiler, saygılar...

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

September 03, 2012

Eklemeler için teşekkürler hocam, özellikle 'toggle=!toggle''ın kullanımı bilmiyordum. Biraz düşününce gayet mantıklı ve daha kolay görünüyor. Acaba assembly kodunda bir farklılık var mı; merak ettim doğrusu...

ASCII ve UTF farkı konusunda haklısın. Bahsettiğin kullanımlar biliyorum ama çoğu zaman elimin altında bulundurduğum 0_ASCII_Chart.svg dosyası bana daha pratik geliyor. Aslında herhangi bir sayı (örneğin 255 - ortalamaYaş ~ 190) olabilirdi ama uluslararası bir anlam katayım istedim...:)

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

September 02, 2012

Paylaştığın için teşekkürler. İçimizde Facebook'ta olmayanlar var ;)

Konunun D tarafıyla ilgili notlar: :)

  • toggle'ın değişimi için şunun kullanıldığına da rastlamıştım:
   toggle = !toggle;
  • Sonsuzluk simgesinin kodu sanırım "IBM extended ASCII" tablosunda 236'ymış.

Sen yazdırmak amacıyla kullanmıyorsun ama UTF-8 kod birimine 236 gibi garip ;) bir UTF kodu atamak sorunlu olabilir (bazen "invalid UTF encoding" gibi bir hata görülebiliyor). Ama bu durumda benim ortamımda zararsızca 236'yı karakter hazır değeri '\354' olarak yazdırıyor:

   writeln(life);    // \354 yazdırır

Şöyle yöntemler de var:

   enum s0 = '∞';
   enum s1 = '\u221e';
   enum s2 = '\&infin;';

Ali

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

September 10, 2012

Henüz bir giriş ve tartışma sorusunu barındırıyor ama gelen yorumlara göre geliştirmeyi düşünüyorum...

Alıntı:

>

Bu haftaki konumuz farklar (differences).

Biz insanlar, kararsız kalanları (!) saymazsak iki cinsiyetiz: Kadın ve Erkek

Aramızda elbette bir takım biyolojik farklılıklar var. Ama sonuçta toplumda eşit haklara sahip olmamız gerekiyor. Öyle ya, hangimiz dünyaya gelirken cinsiyetimizi seçebiliyoruz...:)

Yine de kadın ve erkek arasında biyolojik farklılıklar dışında farklar da olmuyor değil. Sanırım bayanlar daha hassas, erkekler ise soğuk kanlı. Bu sadece tek bir örnek ve istisnaları olabilir. Peki istisnası olmayan bir şey var mı? Var:

Kadın ve Erkek birbirine muhtaç ve adeta onlar birbirinin tamamlayıcısı. İşte ben buna ikilik düzen (duality) diyorum. Eğer yanılmıyorsam bu evrenin her yerinde ve her şeyde mevcut...

http://img.gawkerassets.com/img/17msf03oyscsspng/medium.png

Lütfen bakınız:
http://www.farklar.net/ ve http://en.wikipedia.org/wiki/Duality

Bu kısa girişten sonra haftanı kelimeleri olan (duality ve differences) bizim ana konumuzu oluşturacak. Devam etmeden evvel düşüncelerinizi öğrenmek istiyorum...

Sizce de atomdan insanlara kadar hep bir ikilik düzen yok mu?

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

September 10, 2012

Ali hocam sanırım fizyolojik olarak çift cinsiyetlilikten bahsediyor olmalı ki ben biyolojik olarak kastetmiştim; üstelik "kararsız kalanları saymazsak" şeklinde bir ifadem oldu. Sonuçta bir canlı başka bir canlıya ihtiyaç duymadan (eşeysiz üreme) çoğalamıyorsa biyolojik olarak ya erkektir ya da kadın. Ortası olduğunu zannetmiyorum. Ama bilmediğim bir şey olabilir tabi...:)

Bu arada yaklaşık bir saat önce arkadaşların ve kendi yazdıklarımla çelişebilecek şöyle bir yorumum oldu:

Alıntı:

>

Bu haftanın konusuna şöyle bir eleştiri de bulunacağım ve belki bu yüzden kendimle çelişeceğim...:)

Atomdan insana duality demiştik. Gerçekten de atom çekirdeğini proton ve nötrondan oluştuğunu biliyoruz ve ne kadar küçültürsek küçültelim hep bir ikili parçacık ile karşılaşıyoruz. Peki ya elektrona ne demeli, potansiyel fark oluştuğu her yerde akan parçacık. Hatta ekranda bu yazıları görmemizi, internette verilerin akmasını sağlayan parçacık tek değil mi?

Not: Aslında elektronun tıpkı kadın ve erkekte olduğu gibi bir cinsi daha var: Pozitron ama gel gör ki atom içinde değil...:)

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

September 10, 2012

Alıntı (Salih Dinçer):

>

iki cinsiyetiz: Kadın ve Erkek

Örnek olarak çok hassas bir konu seçmişsin. Daha tartışmasız veya nört bir örnek kullanırsan düşünceleri ana temadan ayırma tehlikesi de azalır. (Üstelik örnek biyolojik olarak da tam doğru da değil: çift cinsiyetli insanlar da var.)

Alıntı:

>

Sizce de atomdan insanlara kadar hep bir ikilik düzen yok mu?

Benim dikkatimden kaçmış olan bir konu; öğrenmek isterim. :)

Ali

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

September 10, 2012

Alıntı (Salih Dinçer):

>

Sonuçta bir canlı başka bir canlıya ihtiyaç duymadan (eşeysiz üreme) çoğalamıyorsa biyolojik olarak ya erkektir ya da kadın. Ortası olduğunu zannetmiyorum. Ama bilmediğim bir şey olabilir tabi...:)

Eşeysiz üremeyi zaten sen söylemişsin. Ne erkek ne dişi konusu da canlılar arasında mevcut:

http://en.wikipedia.org/wiki/Hermaphrodite

Ali

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