C Programlama Diline Giriş

Programlama Nedir?

Genel olarak programlama, kullanıcıların isteklerini karşılayacak muhasebe, stok, oyun, işletim sistemi gibi programları oluşturacak alt yapıyı (kodları) hazırlamaktır. Bu alt yapıyı oluşturan kişilere programcı denir.

Bir programın çalışması demek, mikroişlemciye daha önceden hazırlanmış bir kod yığınının gönderilmesi demektir. Bu kodlar işlemcinin anlayacağı ASM dilinde yazılmış kısa kodlardır, ASM en hızlı programlama dili olmakla beraber, kullanılması en zor programlama dilidir. ASM dilinde kullanılan tüm komutlar sadece işlemciye ve donanıma hitap etmektedir ve programı yazan kişinin tüm donanımı bilmesi gerekmektedir. Örnek vermek gerekirse A markalı bir ekran kartı için yazılmış bir program B markaları bir ekran kartında çalışmaz, çünkü donanımsal olarak farklılıklar vardır. ASM dili için kısaca bilgisayarın anadili diyebiliriz, çünkü CPU sadece ASM kodlarını anlayacak bir yapıya sahiptir.

PC işlemcilerinin ilk çıktığı günlerde sadece ASM dili olduğu için program yazmak gerçekten çok zordu. Her değişen donanım yada işlemci için tekrar program yazılması gerekiyordu, donanımsal zorluklar dışında yazılımsal zorluklar da vardı, Ekrana sadece A yazmak için bile bol miktarda kod yazılıyordu. Bu tip sorunları kaldırmak için kullanılması kolay üst seviye programlama dilleri oluşturuldu.  ( C, Basic, Pascal, Cobol v.s. gibi)

Üst Seviye programlama dilleri ile yazılan kodlar işlemci tarafından anlaşılamayan kodlardır, bu kodlar Compiler(Derleyici) tarafından işlenerek CPU’nun anlayacağı kodlara (ASM) çevrilir.

Programlamaya geçmeden önce probleme yönelik birden fazla çözüm içerisinden bir tanesinin seçilmesi gerektiğini ve buna yönelik bir algoritma geliştirilmesi gerektiğini belirtmiştik. Bu yazıda geliştirilen algoritmanın bilgisayar tarafından uygulanacak yapıya dönüştürülmesi çalışmalarından bahsedilecektir… Programlamada kullanacağımız dil ise C programlama dili…

C Programlama Dilinin Bazı Özellikleri

*Yazılımda kullanılacak olan her fonksiyon için ilgili başlık dosyası programın başına ilave edilmedlidir.

* C programlama dilinde büyük harf ve küçük harf çok önemlidir.

*C programlama diline ait komutlar daima küçük harfle yazılır.

*Bir C programlama dilinin başlangıç noktası main() dir. Main deki parantezler bu aşamada herhangi bir parametre kullanılmadığını ifade etmektedir. Bir başka ifade ile bir C programı fonksiyon adı verilen irili ufaklı birçok program parçasından oluşur.  Her bir fonksiyonun bir adı ve kullandığı parametreler vardır. Bilgisayar, içinde birçok fonksiyonu barındıran bir programı, adı main olan fonksiyondan başlatır.  Bu nedenle bir C programında main adında bir fonksiyon mutlaka bulunmalıdır.

*Program içinde kullanılacak olan değişkenler ve sabitler mutlaka tanımlanmalıdır.

*{

} bir fonksiyonun gövdesini, yani başlama ve bitiş bölgesini gösterir. Büyük parantezler fonksiyon içinde birden fazla C komutunu gruplamak veya sınırlarını göstermek amacıyla da kullanılır.

* Birkaç istisna dışında C program komutu ; (noktalı virgül) ile sona erer.

*Açıklama operatörü /* */ sembolleridir.

*

Temel Giriş/Çıkış İşlemleri (BASIC I/O) – Örnekler


#include <stdio.h>
main ()
{
printf("Program yazmak kolaydir.\n");
} 

#include Bu önişlemci, verilen dosyanın içeriğini, kullanıldığı yerde kaynak dosyasının içine ekler. Çoğunlukla derleyiciye ait komut kütüphanelerinde bulunan fonksiyonların prototiplerinin ve diğer çeşitli tanımlamaların bulunlunduğu (h uzantılı) başlık dosyalarının programa dahil edilmesinde kullanılır.

C dilinde kullanılan Yönergeler (önişlemci komutları) şunlardır:

#include #undef #if
#define #ifdef #else
#pragma #ifndef #elif
#error #endif

#include <stdio.h> ile stdio.h kitaplık klasörü içinde yer alan fonksiyonların kullanılacağı ifade edilmektedir. iki şekilde yazılabilir. #include <stdio.h> veya #include stdio.h

C dilinde bir program yazılırken, başlık dosyası (header file) olarak adlandırılan bir takım dosyalar #include önişlemcisi kullanılarak program içine dahil edilir. C kütüphanesinde bulunan birçok fonksiyon, başlık dosyaları içindeki bazı bildirimleri kullanır. Bu tür dosyaların uzantısı .h dir. ANSI C’deki standart başlık dosyaları şunlardır:

  assert.h    locale.h     stddef.h
  ctype.h     math.h       stdio.h
  errno.h     setjmp.h     stdlib.h
  float.h     signal.h     string.h
  limits.h    stdarg.h     time.h

main () bir programdaki ana fonksiyondur.Olmazsa olmaz yani…

printf fonksiyonu stdio.h içinde yer alır. printf ile ekrana sabit yazı veya değişken değerleri yazdırılır. Eğer sabit yazı ekrana yazdırılacak ise  yazdırılacak yazının ” ”  içerisinde kullanılması gerekir.

\n yazma işleminden sonra ekranda yeni bir satıra geçilmesini sağlamak içindir.

Kaynak Kod ve Derleme

Bir probleme ilişkin geliştirilen algoritmanın bilgisayar programı haline dönüştürülmesine “kaynak kod” denir.

Kaynak kod için “editör” kullanılır. not defteri bile yeterlidir mesela…

Hazırlanan kaynak kodun çalıştırılabilmesi için derlenmesi gerekir. Böylece kaynak kod, bilgisayarca işlenebilecek amaç koda dönüşmüş olur. (1 ve 0 lara yani) Derleme işlemi sırasında kaynak kodun, kullanılan programlama dilinin dilbilgi kurallarına uygun olup olmadığı araştırılır. Hata yoksa derleme tamamlanır, varsa editöre dönülüp düzeltilir ve yeniden derlenmesi sağlanır.

Bir C kaynak kodunu derlemek için kullanılabilecek birçok derleyici (compiler) mevcuttur.

Lİnux/Pardus için GCC, Netbeans (ayrıntı için tıklayın…)

Windows için en yaygınları: Turbo C, BloodshedDev-C++ ve Microsoft Visual C++

—————****———————-****—————-

Bu sayfada Bloodshed üzerinden anlatım yapılacaktır… Editör olarak da bloodshed kullanılacaktır. Aşağıdaki adresten indirilip windows a kurulabilir : http://www.bloodshed.net/dev/devcpp.html

Fakat ilerleyen derslerde Linux/Pardus kullanıcısı olduğum için GCC ile çalışacağım. Nadiren farklılıklar olsa da aynı şeyler… Örnek kodları bloodshed  de de çalıştırabilirsiniz.

—————****———————-****—————-

Bloodshed programının ekran görüntüsü aşağıdaki gibi

—————****———————-****—————-

Yeni Kaynak Kod Oluşturmak

File – New – Source File yolunu izliyoruz…

karşımıza gelen boş editör alanına kaynak kod yazılır…

—————****———————-****—————-

Kaynak Kodu Derlemek

Execute-Compile yolu izlenir…

derleme işleminin başlatılabilmesi için kaynak programa bir isim verilmesi ve bu isim adı altında kaydedilmesi gerekmektedir. bu örnekte kaynak program prog1 ismiyle örnekler klasörüne kaydedildi…

Derleme sonunda herhangi bir hata bulunmamış ise tamamlandı (done) mesajı verilir. Böylece amaç program çalıştırılmaya hazır hale gelmiş olur. Hatalar var ise düzeltilip tekrar derleme işleminin yapılması gerekir…

Kaynak Kodu Çalıştırmak

Amaç programı çalıştırmak için Execute menüsünden Run komutu verilmelidir.  Fakat bu örneğimizde ekranda çıktı görmemiz mümkün olmayacaktır.  Nedeni ise kullandığımız C derleyicisidir. Aslında ekrana yazma işlemi yapılmış ve geri dönülmüştür. Ancak bu çok hızlı gerçekleştiğinden görememekteyiz. Bu nedenle ekranın yazma işleminden sonra bir tuşa basılıncaya kadar durmasını sağlamak için system(“pause”) fonksiyonunu ekleyeceğiz. Bu fonksiyon stdlib.h dosyasında yer almaktadır…

Fonksiyonu ekledikten sonra programın son hali şu şekil…

Amaç programı çalıştırdığımızda ekrana gelecek çıktı aşağıdaki gibi olacaktır…

C programı fonksiyonlar topluluğudur. Her fonksiyon görevini tamamladığında dışarıya bir tür mesaj iletilir. Şimdi programımıza return 0; fonksiyonu ekliyoruz. Bunun anlamı main() isimli fonksiyon görevini tamamladı demek. return 0; komutu nedeniyle main() yerine  int main() yazdık. Bu durumlar ileride açıklanacak. Programımızın son hali aşağıdaki gibi…

Mevcut Bir Kaynak Kod İle Çalışmak

Daha önce hazırlanmış bir kaynak kod üzerinde değişiklikler yaparak çalıştırmak istediğimizde Dev-C ++ programı açılır ve File menüsünden Open Project or File  seçilir.  İlgilendiğiniz program hangi klasörde ise o klasörü bulup programı açmamız gerekmektedir.

SORULAR

Soru1:

#include <stdio.h>
main ()
{
printf("Merhaba");
printf(Nasılsınız?\n);
}

Yukarıdaki programın çalışması halinde ekrana aşağıdakilerden hangisi yazılır?

A: Merhaba

Nasılsınız?

B: Merhaba Nasılsınız?

C: Nasılsınız?

D: Merhaba

Soru 2: Aşağıdaki C programında hata nedir?

#include <stdio.h>
main ()
{
printf("Merhabaaaa");

a. printf içinde \n kullanılmamış

b. #include <stdlib.h> kullanılmamış

c.  } kullanılmamış

d. return 0; kullanılmamış

Soru 3: Aşağıdaki C programında hata nedir?

#include <stdio.h>
main ()
{
printf ("Merhabaaaa");
system ("pause");
}

a. printf içinde \n kullanılmamış

b. #include <stdlib.h> kullanılmamış

c. int main () kullanılmamış

d. return 0; kullanılmamış

Soru 4: Aşağıdaki C programı çalıştığında ekrana ne yazılır?

#include <stdio.h>
#include <stdlib.h>
{
printf ("Ders\nCalismak\n");
system("pause");
}

a.Ders\ncalismak

b. Ders

Calismak

c. Ders Calismak

d. DersCalismak

Soru 5: Aşağıdaki C programı çalıştığında ekrana ne yazılır?

#include <stdio.h>
#include <stdlib.h>
main ()
{
printf("Ders\nCalismak\n");
printf("\ngereklidir\n");
system("pause");
}

a. Ders\ncalismak

gereklidir

b. Ders

Calismak gereklidir

c. Ders Calismak gereklidir

d. Ders

Calismak

gereklidir

CEVAPLAR

1. B

  (köşeli parantezlerin kapatılması gerekiyor)2. C

(“pause” kullanılıyorsa stdlib.h kullanılmak zorunda)3. B

4. B

5. D

5 Yorum

Filed under C Programlama

5 responses to “C Programlama Diline Giriş

  1. murat

    güzel paylaşım olmuş teşekkürler : )

  2. 5 soruda 4 doğru 😀 stdlib.h fark etmemişim

  3. Anonim

    Teşekkürler

  4. Gökcan

    Hepsi Doğru

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s