C Dili – 2. Konu

ILK C PROGRAMINIZ

En basit C programı:

main()
{
}

Bu bir programdır, ve bunu kısaltmanın, basitleştirmenin bir yolu yoktur. işin kötü tarafı, bu program hiç bir şey yapmaz. Buradaki en önemli kelime, main() sözcüğüdür. Her programda olması gereken bu sözcük, daha sonra göreceğimiz gibi, ilk satırda olmak zorunda değildir, fakat bir giris noktası sağlaması nedeni ile her programda olması gereklidir. Bunu takiben, iki tane “süslü” parantez vardır. Bunlar da, main’in bir fonksiyon olduğunu belirtir. (Bir fonksiyonun tam olarak nelerden oluştuğunu daha sonra göreceğiz) Programın kendisi ise, iki küme işareti arasında yer alır.

BİRSEYLER YAPAN BİR PROGRAM:

Daha ilginç bir program:

main()
{
printf("Bu bir satirlik yazıdır.");
}

Bu programın, ayni diğer program gibi, main, ve küme işaretleri vardır. İçinde yer alan fonksiyonun, bir satiri ekrana getirmesi için, satiri ” ” işaretleri arasına alıyoruz. Ayrıca fonksiyonun parametresi olduğunu belirtmek için de, çevresine parantez koyuyoruz.  Satirin sonundaki noktalı virgüle dikkatinizi çekerim: Bir komut satırının bittiğini derleyiciye bildirmek için, C dilinde ; noktalı virgül kullanılır.

ipucu
Bu programı derleyip çalıştırın; göreceksiniz ki çoğu derleyici şikayet edecek, ancak çalıştıracaktır programı.
Şikayet etmelerinin sebebi, “printf” in ne demek olduğunu derleyici ilk bakışta anlayamamasındandır. “İkinci” bakışta yani Link aşamasında printf’i bulmaktadır; ancak ilk anda tanımadığı için şikayet etmektedir. Bu şikayete mani olmak için dilerseniz programın en başına boş bir satır açıp şunu yazabilirsiniz:  #include <stdio.h> 




DAHA ÇOK ŞEY YAZAN BİR PROGRAM

main()
{
printf("Bu bir satirlik yazıdır.\n");
printf("Bu bir baska ");
printf(" satirdir.\n");
printf("Bu üçüncü satirdir.\n");
}

Bu programda, 4 tane islenecek komut vardır. Satırlar bu sırada islenir. İlk satirin sonundaki tuhaf ters bolu işareti, ondan sonra gelecek karakterin bir kontrol karakteri olduğunu belirtiyor. Bu durumda n harfi, yeni bir satir isteğini belirtir (İngilizce “newline”). Yani, cursor, ekranın sol başına, ve bir satir aşağıya kayar. Katarın herhangi bir yerinde yeni bir satir isteyince, “\n” komutunu verebilirsiniz. Hatta bir kelimenin ortasına bile koyup,
kelimeyi iki satıra bölebilirsiniz.

İlk komut, metini ekrana yazar, ve bir satir asagi iner. İkinci komut, yazdıktan sonra, yeni satir yapmadan, üçüncü komutun içindekileri ekrana yazar. Bu komutun sonunda, yeni satıra geçilir. dördüncü komut ise, üçüncü satiri yazar, ve bir return karakteri sunar.

RAKAMLAR YAZALIM

main()
{
int index;
index = 13;
printf("Indexin değeri simdi %d\n",index);
index = 27;
printf("Indexin değeri simdi %d\n",index);
index = 10;
printf("Indexin değeri simdi %d\n",index);
}

Bu programda ise, ilk defa olarak bir değişken kullaniyoruz. main() ve { işaretlerine artık alışmış olmalısınız. Bunun altında “int index” diye bir satir yer alıyor. Bu satir, “index” isimli bir tamsayı değişkenini tanımlıyor.

YANİ: Değişkenleri bilgisayarın belleğinde birer kutu gibi düşünün. “index” lafı, bu kutuya verdiğimiz isimdir, ve bu kutunun içine bir bilgi koyabiliriz. “int index” dediğimizde bir kutu yaratmış oluyoruz. Gerçek hayatta da kutu üretmek böyle kolay olsa!

Çoğu mikrobilgisayarlar icin, ‘int’ tipi bir değişkenin alabileceği değerler,  -2^15+1 ila +2^15-1  arasındadır. Yani, -32000 küsurla +32000 küsur arasında birşey..
Fakat bilgisayar yapısına ve işletim sistemine göre  bile bu sınırlar değişiklik gösterir. Ancak bir sonu olduğunu bilin; yani devvv rakamları “int” değişkenlere koymaya çalışırsanız yarattığınız bu kutuya bu rakamların sığmayacağını hatırlayın..

‘index’ ismi ise, TANIMLAYICILAR da bahsettiğimiz kurallara uyan herhangi birşey olabilir. Bu satırın sonunda da, satirin bittiğini belirten ; noktalı virgül yer alır.

Bir satırda birden fazla tam sayı tanımlanabilir, fakat henüz biz bununla ortalığı karıştırmayacağız.

Programı incelerken, üç tane atama satırı olduğunu, ve bu satırların altında da değerlerin yazıldığını görüyoruz. Önce 13 atanır, ve ekrana yazılır, sonra 27 ve 10.

RAKAMLARI NASIL YAZARIZ

Sözümüze sadik kalmak için, tekrar printf komutuna donelim, ve nasıl çalıştığını görelim. gördüğünüz gibi, bütün satırlar, birbiri ile ayni, ve diğer örneklerden farkı, içindeki % işareti. Bu harf, printf’e ekrana yazmayı durdurup, özel bir şey yapmasını söyler. % işaretinden sonra gelen harf, d, bir tamsayı yazılacağını belirtir. Bundan sonra, yeni satıra geçiren tanıdık \n işaretini görüyoruz.

Den-denler arasında kalan bütün harfler, printf komutu ile ekrana çıkacakları tanımlar. Bundan sonraki virgül ve “index” sözcüğü yer alır. printf komutu buradan değişkenin değerlerini okur. Daha fazla %d ekleyerek ,ve bunları yine virgül ile birbirine ekleyerek, birden fazla değişkenin de bu komut ile görüntülenmesini sağlayabiliriz. hatırlamanız gereken önemli bir nokta, saha tanımlayıcı %d ile geçirdiğiniz değişken miktarı, ayni kalmalıdır, yoksa bir run-time hatası (yani programı çalıştırınca göçme veya yanlış çalışma) verir.

BILGI SATIRLARI NASIL EKLENIR

/* Bu satiri, derleyici kullanmaz */

main() /* Bir satir daha */
{
printf("Bilgi satırlarının nasıl ekleneceğini ");
/* Bilgi satırları,
bir satırdan uzun olabilir.
*/
printf("görüyoruz.\n");
}
/* Ve programın sonu... */

Programa açıklık katmak için, eklenebilecek bilgiler, derleyici tarafından üzerinden atlanır. Lütfen yukardaki programı, iyi bir örnek olarak almayın. Son derece dağınık bir şekilde katılmış bilgi satırları, sadece kullanımını göstermek amacı iledir. Bilgi satırları, /* işaretleri ile baslar, ve */ işareti ile sona erir.

Dikkat etmeniz gereken bir nokta, birkaç satırdan oluşan bilgi satırlarında bulunan program komutlarının, isleme konmayacağıdır.

Bilgi satırları, programın nasıl çalıştığını göstermesi bakımından çok önemlidir. yazdığınız bir programın, bir başkası tarafından okunabilmesi, yada siz nasıl çalıştığını unuttuktan sonra hatırlayabilmeniz için, mümkün olduğu kadar çok bilgi satiri eklemekte fayda vardır.

Bazı derleyiciler iç içe bilgi satırlarını kabul ederler, fakat genelde, iç içe bilgi satırları kabul edilmez.

IYI SAYFA DIZIMI

yazdığınız bir program, kolay anlaşılır olmalıdır. Bunun için, düzgün bir şekilde programlamak çok onemlidir. C derleyicileri, komutlar arasındaki boşlukları göz önüne almaz, ve bu nedenle de programlarınıza açıklık katmak için, dilediğiniz gibi boşluk ve boş satir bırakabilirsiniz.

Su iki programı karşılaştıralım:

main() /* Program buradan başlıyor */
{
printf("iyi yazış,");
printf("programın anlaşılmasını kolaylaştırır\n");
}

ve:

main() /* Program buradan başlıyor */ {printf("iyi yazış,"); printf
("programın anlaşılmasını kolaylaştırır\n");}

ÖNEMLİ TAVSİYE: Program yazarken, hem parantezlerin ne zaman kapanacağını ve kaç tane unutmamak hem de sonradan okumayı kolaylaştırmak için,
Her parantez açtığınızda:

  1. Yeni bir satıra geçin,
  2. Klavyenizdeki TAB tuşuna basarak üst satıra göre bir tab daha “içeri” girin. Aynı şekilde her parantez kapadığınızda yine ENTER e basın, ve ondan sonraki satırı da bir “tab” daha az (sola doğru) yapın.

C-Dili “anlaşılmaz kod” üretmeye çok müsaittir. Hatta bazı okullarda “en anlaşılmaz C kodu yarışması” düzenlenmektedir! O yüzden dikkatli olmak ve düzgün görünüşlü program yaratmak C de çok önemlidir!

Ödev:

  1. Ekrana kendi isminizi yazacak bir program yazın.
  2. Programa ayrı satırlarda, iki “printf” satiri daha ekleyerek, adresinizi ve telefon numaranızı da yazdırın (rastgele bilgiler olabilir, doğru adres ve telefonunuzu yazmayabilirsiniz.)
  3. Bir program daha yazın. Bunun başında  “int yas”  komutuyla bir tamsayı değişkeni yaratın, sonra bu değişkene kendi yaşınızı atayın, ve bir printf komutuyla ekrana yaşınızı yazdırın.

Bir Sonraki Konu