Basit C Programları - Bir Metni Yazdırmak
İsterseniz basit bir programla başlayalım. İlk örneğimiz, bir satırlık bir metni bilgisayarda yazdırmak ile ilgilidir. Program ve programın bilgisayardaki çıktısı aşağıdaki şekilde gösterilmiştir
Örnek Program
/*Ekrana basit bir yazı yazdıran C programı*/
#include <stdio.h>
int main(){
printf("Merhaba Dunya\n");
return 0;
}//main
Program Çıktısı
Merhaba Dünya
olacaktır.
Her ne kadar basit bir program olarak gözükse de C'nin çok önemli bir kaç özelliğini bu sayede tanımış oluyoruz. Şimdi programı satır satır, daha detaylı bir biçimde inceleyelim.1 ve 2 numaralı satırlar /* ile başlayıp */ ile bitmektedir. Bu işaretler arasına yorumlar yazılır. Yorumlar yazmak, okunurluğu artırmak amacıyla özellikle uzun programlarda kullandığımız bir özelliktir. Yorum satırlarında bilgisayar hiçbir işlem yapmaz çünkü C derleyicileri bu satırları atlar. Dolayısıyla, yorum satırları için makine diline çevrilmiş kodlar oluşturulmaz. Programımızdaki yorum satırı ise şekil numarasını, dosya adını ve programın amacını açıklamaktadır.Yorumlar, diğer kişilerin programınızı anlamasında yardımcı olur ancak çok fazla yorum programın okunurluğunu azaltır.
Genel Programlama Hataları 2.1
Yorum satırının sonuna */ işaretini koymayı unutmak
Genel programlama hataları 2.2
Yorum satırına */ ile başlamak ve /veya yorum satırını /* ile bitirmek.
3. satırda karşılaştığımız
#include <stdio.h>
C önişlemcisine bir emir göndermektedir. # işaretiyle başlayan satırlar, program derlenmeden önce önişlemci tarafından işlenirler. Bu satır, önişlemciye standart giriş/çıkış öncü dosyasının (stdio.h) içeriğini programa eklemesini söyler. Bu öncü dosya, derleyicinin printf gibi standart giriş/çıkış fonksiyonlarını derlerken kullanacağı bilgi ve bildirimleri içerir. Öncü dosya ayrıca, derleyicinin kütüphane fonksiyonu çağrılarının doğru yapılıp yapılmadığını anlamasında yardımcı olan bilgiler içerir. Öncü dosyalar hakkında daha detaylı bilgiyi 5.ünitede vereceğiz.
İyi Programlama Alıştırmaları 2.1
<stdio.h> öncü dosyasının eklenmesi tercihe bağlıdır fakat standart giriş/çıkış fonksiyonlarının kullanıldığı programlara eklenmelidir. Bu sayede, derleyici, hataları derleme anında bulabilecektir. Aksi takdirde, hatalar programın çalıştırıldığı anda ortaya çıkar. Bu tür hataların düzeltilmesi oldukça güç olur.5.satırdaki
int main( )
her C programının bir parçasıdır. main kelimesinden sonraki parantezler main'in fonksiyon adı verilen program oluşturma bloklarından biri olduğunu gösterir. C programları bir veya birden fazla fonksiyon içerebilir ancak bunlardan biri mutlaka main olmalıdır. C'de her program main fonksiyonunu çalıştırarak başlar.
İyi Programlama Alıştırmaları 2.2
Her fonksiyondan sonra fonksiyonu anlatan bir yorum satırı yazılmalıdır.
Küme parantezi, { , her fonksiyonun gövdesinin başına yazılır. Diğer küme parantezi , } , ise her fonksiyonun sonuna yazılmalıdır. Bu iki parantez arasında kalan program parçacığına blok denir. Bloklar C'de önemli program birimleridir.
7.satırdaki
printf ( "C'ye hoş geldiniz!\n" ) ;
bilgisayara bir iş yaptırır. Yaptırdığı iş, iki tırnak işareti arasındaki karakterleri ekrana yazdırmaktır. Yazdırılacak karakterlerin tümüne karakter dizesi ( string ), mesaj ya da hazır bilgi ( literal ) denir. printf, parantezler içindeki bağımsız değişkenler (argument) ve noktalı virgülden oluşan bu satıra ifade denir. Her ifade noktalı virgül ile bitmelidir.(Noktalı virgüle ifade sonlandırıcı da denir) Az önceki printf ifadesi çalıştırıldığında ekrana, C'ye hoş geldiniz! yazdırır. printf ifadesindeki tırnak işaretleri arasındaki karakterler aynen ekrana yazdırılır. Ancak \n karakterlerinin yazdırılmadığına dikkat ediniz. Ters eğik çizgi ( \ ), çıkış karakteri olarak adlandırılır ve printf'in farklı bir iş yapması gerektiğini belirtir. printf, ters çizgi işaretiyle karşılaştığında, bu işaretten sonraki karaktere bakar ve bu karaktere göre bazı özel işler yapar.Ters çizgi işareti ( \ ) ve bu işaretten sonra gelen karaktere çıkış sırası denir.
\n çıkış sırası, yeni satır anlamına gelir ve imlecin yeni satıra geçmesine sebep olur.Diğer çıkış sıraları Şekil 2.2'de gösterilmiştir. Şekil 2.2'deki bazı çıkış sıraları garip gözükebilir. printf, ters çizgi işaretini ( \ ) çıkış karakteri olarak algıladığından printf ile ters çizgi işareti yazdırmak istediğimizde iki tane ters çizgi işaretini ( \\ ) birlikte kullanmalıyız. printf ile tırnak işaretini yazdırmak da bir sorun gibi gözükmektedir çünkü tırnak işareti printf ile kullanıldığında, yazdırılacak karakterlerin sınırlarını belirler. printf ile tırnak işareti yazdırmak istersek, \" çıkış sırasını kullanmalıyız.
Küme parantezi , } , main fonksiyonunun sonuna ulaşıldığını gösterir.
Genel Programlama Hataları 2.3
printf yerine print yazmak hatadır.
printf’in bilgisayara bir iş yaptırdığını söyledik. Her program çalıştırıldığında bir çok çeşitli işlem yapar ve kararlar verir. Bu ünite sonunda karar verme üzerinde duracağız ve 3. ünitede
karar verdirme modellerini daha ayrıntılı açıklayacağız.
printf ve scanf gibi standart kütüphane fonksiyonlarının C programlama dilinin bir parçası olmadığını bilmek oldukça önemlidir. Bu yüzden, derleyici printf ve scanf yanlış yazılırsa hata bulamaz. Derleyici, printf gibi bir kütüphane fonksiyonu gördüğünde makine diline çevrilmiş programda boşluk bırakır ve bu boşluğa kütüphaneye gidileceğini belirten bir işaret koyar. Çünkü, derleyici kütüphanenin nerede olduğunu bilemez. Fakat bağlayıcı bilir. Böylelikle, bağlayıcı çalıştığında makine diline çevrilmiş programdaki boşluklara uygun kütüphane fonksiyonlarının kodlarını yerleştirir ve makine diline çevrilmiş programı tamamlar. Artık program çalıştırılmaya hazırdır. Bağlanmış programlara çalıştırılabilir (executable) program denir.Eğer fonksiyon ismi yanlış yazılırsa hatayı bağlayıcı bulabilir. Çünkü programda yazılan fonksiyon ismiyle kütüphane fonksiyonunun ismini eşleyemez.
Çıkış Sırası Tanım
\n Yeni satır.İmleci yeni satırın başına geçirir.
\t Yatay tab.İmleci bir sonraki tab başlangıcına taşır.
\a Alarm.Sistemdeki zili çalar.
\\ Ters çizgi. printf içinde ters çizgi karakterini yazdırır.
\" Tırnak . printf içinde tırnak karakterini yazdırır.
Şekil 2.2 Bazı çıkış sıraları
İyi Programlama Alıştırmaları 2.3
Yazdırma işlemi yapan bir fonksiyon tarafından yazdırılan son karakter ( \n ) olmalıdır.Bu sayede fonksiyonun, ekran imlecini yeni satırın başlangıcına götürmesi sağlanır. Bu tarz bize, yazılım geliştirme ortamlarında temel amaç olan yazılımın yeniden kullanılabilirliğini artırma fırsatı verir.
İyi Programlama Alıştırmaları 2.4
Fonksiyon bloklarının içini yazmaya, küme parantezlerinden daha içerde başlamak (3 boşluk bırakarak) fonksiyonun gövdesini daha belirgin hale getirir. Bu sayede, programımız daha okunur hale gelecektir.
İyi Programlama Alıştırmaları 2.5
Kendinize göre bir girinti miktarı belirleyin ve gerekli tüm yerlerde bu girinti miktarını kullanın. Girintiler yaratmak için tab tuşu kullanılabilir ancak kimi zaman tab başlangıçları sorun yaratabilir. Bu sebepten, en iyisi 3 boşluk bırakarak girintiler oluşturmaktır.
printf fonksiyonu kullanılarak, C'ye hoş geldiniz! mesajı farklı biçimlerde yazdırılabilir. Örneğin, Şekil 2.3'teki program, Şekil 2.1'deki programla aynı çıktıyı üretir. Çünkü her printf, kendi mesajını yazdırmaya, eğer bazı özel çıkış dizileri kullanılmamışsa, diğer printf'in kaldığı yerden başlar. 7. satırdaki ilk printf , C'ye kısmını ve bir adet boşluk karakterini yazdırır. 8.satırdaki printf yazdırmaya bu boşluktan sonra başlar. Tek bir printf ile Şekil 2.4'te olduğu gibi birden fazla satır yazdırmak mümkündür. Her seferinde \n çıkış sırası imleci yeni satıra geçirir ve yazım işleminin yeni satırdan devam etmesini sağlar.
1 /*Şekil 2.3:prog02_03.c
2 Tek bir satıra iki ayrı printf ifadesiyle yazdırma yapmak*/
3 #include <stdio.h>
4
5 int main( )
6 {
7 printf( "C'ye " );
8 printf( "hoş geldiniz!\n" );
9
10 return 0;
11 }
C' ye hoş geldiniz!
Şekil 2.3 Tek bir satıra ayrı printf ifadeleriyle yazdırma yapmak.
1 /*Şekil 2.4:prog02_04.c
2 Tek bir printf ile birden fazla satırda yazdırma işlemi yapmak*/3 #include <stdio.h>
45 int main( )
6 {7 printf("C'ye\nhoş geldiniz!\n");
89 return 0;
10 }
C'ye
hoş geldiniz!
Şekil 2.4 Tek bir printf ile birden fazla satırda yazdırma yapmak
Bilinmesi Gerekli
Arduino

Arduino ile bilgisayar programlarınızı gerçek dünyaya taşıyabilirsiniz.
İlk Transistör

Bell laboratuvarlarında icat edilen ilk transistör







