Yazılımın Temelleri – Başlangıç 1

Hangi Programı İndireceğim?

Bu, hangi platformda ne için yazacağınıza bağlı. Ben burada C üzerinden giriş yapacağım. Ancak, “Ağbi, her şeyin başı ‘Si’ ya” mantığıyla C’ye başlamak ve C temelli çalışmak akıl işi değil. Ancak, yazılımın temelini anlamak için iyi bir başlangıçtır C.

Microsoft, IDE ve editör olarak bize Visual Studio’yu sunuyor. Hem tasarımı ve hem kullanım kolaylığı dolayısıyla iyi bir IDE de olsa, benim pek tercih ettiğim bir IDE değil. Ben genellikle Python, Javascript, Java, Swift, HTMLCSSJSXMLSADFASG.. Yani kısacası o an ne gerekliyse, Google’a bildiğiniz “C# Tutorial” falan yazıyorum. Çıkan en net anlatımdan ilerliyorum. Yazılım zaten, amaçlaşmış bir araçtır. Ancak işimi görmesi için Python’u daha çok tercih ediyorum, çünkü benim derdimi anlıyor.

Başlamak istiyorsanız, siz de Google’a Dev-C yazıp, programı indirip, C üzerinde 2 3 satır kod karalayacağınız bir program indirebilirsiniz. CodeBlocks da  olur ama, o biraz şey. Anlarsınız işte, sorun çıkarmayı sever. “Napacağım” derken, üşenir bırakırsınız.

İşte tam bu noktada Doğal Seçilim devreye giriyor. Üşenip bırakanlar, yazılımla uğraşmıyor, ve yazılımla uğraşanlar nedense hiç üşenip bırakmayan azimli sıçanlar oluyor -burada fiil anlamında kullanılmıyor, isim anlamında kullanılıyor 😉 -. Dolayısıyla, ya birazcık azimli olacaksınız ki, azimli olmadan şu dünyada az şeyde başarılı olabilirsiniz, ya da kendinizi birazcık zorlayacaksınız.

Kod İstiyom Gel Beni Al!

Bloodshed’in Dev-C programını indirdiyseniz, açın ve bir C projesi oluşturun. Kodun üstünde include ile çekilmiş kütüphaneler olacak. Hani hep diyoruz ya, her şey C ile yazılmışsa, C ne ile yazılmış? İşte o stdlib ve stdio kütüphaneleri, C’nin  temel fonksiyonlarını kapsayan kütüphanelerdir. Onları yapmaya bizim aklımız ermez, ilmimiz yetmez. O yüzden nimetlerinden faydalanıp hikmetinden sual etmeyelim.

İlk anlayacağımız şey, parantezlerdir. Parantezler; süslü, köşeli veya çembersel olabilirler. Çembersel parantezler, “(” “)” aritmetik ifadelerde; yani (2+4)*6 gibi kullanılabilir, bilinmelidir ki, kodda işlem önceliği çarpma ve bölmededir. O yüzden parantezler ÇOK HASSAS olunması gereken bir konudur. Hataların büyük bir çoğunluğu, açılan parantezlerin kapatılmamasından veya yanlış kapatılmasından kaynaklanır. Bu çember parantezlerin tek işlevi bu değildir, şart belirtme satırlarında veya fonksiyon belirtme satırlarında da mantık ifadeleri için kullanılır. Örneğin; eğer -> (1 veya (0 ve 1)).

Oluşturduğunuz boş projede gördüğünüz int main() ise, main, yani ana fonksiyonun içine gönderilen argümanlardır. Bir şey anlamamanızı umuyorum ancak merak etmeyin, hepsine değineceğim. 🙂

Süslü parantezlerin arası, {} kod bloklarıdır. İşlem bloklarıdır. Her bir işlemin sonuna ; koyulur. {} arasında da, işlem kümeleri saklanır.

Köşeli parantezi dizilerde kullanacağız. Hayır, televizyon dizilerinde değil. Onları da mümkünse, kaliteli diziler yapılmaya başlandığında izleyin. Zira, şu ara televizyon açmak cesaret istiyor. İnsanın sinirleri dayanmıyor.

Değişkenler

Şimdi sakin bir nefes alın, varsa eğer kendinize bir sütlü kahve yapın. Ancak Coffe Mate kullanmayın mümkünse. Çünkü: Tam hidrojenize bitkisel yağlar.  Niçin o kadar ucuz sandınız?

Değişkenler, birer bilgi saklar. Örneğin 3. 3 bir bilgidir. 3 ne tip bir bilgidir? 3 bir sayıdır. Çok sayıda değişken tipi vardır. Bunlardan başlıcaları -genellikle iş görenleri-

  • int: Integer. Yani sayı. Düz sayı. Bildiğimiz sayı.
  • float: Float. Kesirli sayı. 3.1 gibi.
  • char: Char. Harf. Aslında bir sayı olarak tutulur ancak, program onun bir char olduğunu bilir.

Esasında, Python, JS, PHP gibi dillerde artık değişkenlerin tipleri önemsenmese de bunu bilmek boynumuzun borcudur. Bu konu önemli olmasaydı, anlatmaya Python’dan başlardım. Kolaycıyım çünkü.

Bu tipleri birbirine rahatlıkla dönüştürebilirsiniz. Esasında hepsi birer sayıdır. Ancak nasıl ki hafıza kısıtlı ise, bu değişkenlere verilen kapasite de sınırlıdır.  Örneğin, işaretsiz int sayısı sınırı, 65536’dır. Bu bilgiler genel kültürdür sadece, veya hata aldığınızda ileri düzeyde tespit etmeye yarar.

Örnek bir değişkeni, main fonksiyonunun kod  blogunun başında, yani { den sonra deneyelim.

int a;

Noktalı virgülü koymazsanız, program komutun devamını arayacaktır. “;” komut bitti demektir.

Bu satır ile, a diye bir satır değişkeni tanımlamış olduk. bir alt satıra indiğimizde,

a = 3;

dediğimizde, o değişkenin RAM’deki adresine gidip, oraya 1’lerle, 0’larla 3 yazılıyor.

Bunu ekranda görüntülemek için de,

println(“%d”,a);

komutunu kullanmamız gerekiyor. Bu sayede değişkeni konsolda gösterebiliyoruz. Bu kodları yazdıktan sonra, Derle ve çalıştıra basarsanız, Programınız başarıyla çalışacaktır.

Bakın, “Hello World” uygulaması yerine, 3 yazarak şimdiden sıra dışı bir başlangıç yapmış bulunuyorsunuz. Nasıl bir his? Yorumlara yazabilir misiniz?

Buradaki mantığı kısaca anlatayım. “” tırnakları içerisine yazdığınız %d ler, virgülden sonraki değişkenlerin değerlerini sırasıyla yerleştirip, ekrana yazdırmaya yarıyor. Niçin %d ? Bunu dili yazanlara sormak gerekir. %d, sayılar için kullanılır. %f, float için, %c ise, harfler için kullanılır.

Örnek olarak, int a; nın altına

char harf;

yazın. Alt satırına geçip, harf=’s’ yazın. Sonra da,

printf(“Harfim bu: %c”, harf);

yazın. Göreceksiniz ki, print in içine istediğiniz yazıyı yazabiliyorsunuz. Ha eğer hevesliyseniz, Hello World yazabilirsiniz.

Ha bu arada, printf fonksiyonu, yukardaki includelerden geliyormuş. 🙂

İkinci yazımda, kısaca if’i (eğer), döngüleri ve diğer minik fonksiyonları anlatacağım. Sonrasında Python’a geçeceğim.

İyi araştırmalar.

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Blog at WordPress.com.

Up ↑

%d bloggers like this: