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. ]