C PROGRAMLAMA DİLİ
C Programlama Dilinin Temelleri C Programlama Dili'ni popüler kılan önemli nedenler aşağıda listelenmiştir: C, güçlü ve esnek bir dildir. C ile işletim sistemi veya derleyici yazabilir, kelime işlemciler oluşturabilir veya grafik çizebilirsiniz. C, iyi bir yazılım geliştirme ortamına sahiptir. C, özel komut ve veri tipi tanımlamasına izin verir. C, taşınabilir bir dildir. C, gelişimini tamamlamış ve standardı oluşmuş bir dildir. C, yapısal bir dildir. C kodları fonksiyonolarak adlandırılan alt programlardan oluşmuştur. C, Java, JavaScript, JavaApplet, PHP, C#,... gibi diller C dilinden esinlenmiştir.
C Programlama Dilinin Temelleri Çeviri Kaynak kod Compiler Obje kod
C Programlama Dilinin Temelleri Kaynak kod: Kurallara göre yazılmış komutları içeren bir metin dosyasıdır. Obje kod: Bilgisayarın anladığı 0' ve 1 lerden oluşan dilde (makine dilinde) yazılmıştır. Compiler kaynak kodu, Object koda çeviren bir çevirici programdır. Çalıştırılabilir kod: 0 ve 1, dizilerinden oluşur. Object kod la beraber başka modullerde içinde bulunur.
C Programlama Dilinin Temel Kuralları C programlarında kullanılan sözcüklerin (keywords) özel anlamları vardır. Değişken olamaz.(ör: int, main, void, return) Program içinde kullanılacak olan değişkenler ve sabitler mutlaka tanımlanmalıdır. Yazılımda kullanılacak olan her fonksiyon için ilgili başlık dosyası programın başına ilave edilmelidir. Her C programı main() fonksiyonunu içermelidir. C programlarında her komut satırının sonunda noktalı virgül vardır. (;)
C programlarında komutları gruplandırmak için küme parantezi kullanılır. {} C dilinde yazılan kodlarda küçük-büyük harf ayrımı vardır (case sensitive). Örneğin A ile a derleyici tarafından farklı değerlendirilir. Açıklama operatörü /* */ sembolleridir. Giriş veya Çıkış deyimi bulunan her C programında mutlaka #include <stdio.h> (standart input-output) satırı bulunur.
İlk C Programı
Program komutları #include <stdio.h> #include <conio.h> getch(); komutunun çalışması için gereklidir. Olmazsa ekran çıktısı görünmez. main() ; ana program bloğu { printf() ; yazdırma komutu }
Ekrana adınızı, soyadınızı yazdıran programı yazınız?
#include <stdio.h> #include <conio.h> main() { printf("ahmet GOKCEN"); getch(); }
Ekrana adınızı, soyadınızı yazdıran ve alt satıra nereli olduğunuz yazdıran programı yazınız?
#include <stdio.h> #include <conio.h> main() { printf("ahmet GOKCEN\n"); printf("iskenderun\n"); getch(); }
Satır boşluğu bırakmak için; #include <stdio.h> #include <conio.h> main() { printf("ahmet GOKCEN\n"); printf("\n"); printf("iskenderun\n"); getch(); }
Ekrana MUSTAFA KEMAL ÜNİVERSİTESİ ELEKTRİK ELEKTRONİK MÜH. BİLGİSAYAR PROGRAMLAMA dersi Yazdıran programı yazınız.
#include <stdio.h> #include <conio.h> main() { printf("mustafa KEMAL UNIVERSITESI\n"); printf("elektrink ELEKTRONIK MUH.\n"); printf("programlama dersi\n"); getch(); }
Her satır arasında boşluk bırakarak yazmak için yapılması gereken aşağıdaki gibidir #include <stdio.h> #include <conio.h> main() { printf("mustafa KEMAL UNIVERSITESI\n"); printf("\n"); printf("elektrink ELEKTRONIK MUH.\n"); printf("\n"); printf("programlama dersi\n"); getch(); }
Başlık Dosyaları 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.
Conio.h kütüphanesi kullanılmazsa getch() komutu yerine getchar() komutuda aynı işlevi görür. Bazı derleyiciler de sorun çıkabilir. Kullanılacak fonksiyon veya komutlara göre kütüphane(header file) eklemek gereklidir.
Veri Tipleri, Değişkenler ve Sabitler Veri tipi (data type) program içinde kullanılacak değişken, sabit, fonksiyon isimleri gibi tanımlayıcıların tipini, yani bellekte ayrılacak bölgenin büyüklüğünü, belirlemek için kullanılır. Bir programcı, bir programlama dilinde ilk olarak öğrenmesi gereken, o dile ait veri tipleridir. Çünkü bu, programcının kullanacağı değişkenlerin ve sabitlerin sınırlarını belirler.
C programlama dilinde dört tane temel veri tipi bulunmaktadır. Bunlar: char int float double Fakat bazı özel niteleyiciler vardır ki bunlar yukarıdaki temel tiplerin önüne gelerek onların türevlerini oluşturur. Bunlar: short Long unsigned
Bu niteleyiciler sayesinde değişkenin bellekte kaplayacağı alan isteğe göre değiştirilebilir. Kısa (short), uzun (long), ve normal (int) tamsayı arasında yalnızca uzunluk farkı vardır. Eğer normal tamsayı 32 bit (4 bayt) ise uzun tamsayı 64 bit (8 bayt) uzunluğunda ve kısa tamsayı 16 biti (2 bayt) geçmeyecek uzunluktadır. NOT : Kısa ve uzun tamsayı tutacak tanımlayıcılar için int anahtar kelimesinin yazılmasına gerek yoktur. shorts; /* shortints; anlamında */ long k; /* long intk; anlamında */
Değişken tipleri ve bellekte kapladıkları alanlar Bellekte işgal ettiği Veri Tipi Açıklama Alt sınır Üst sınır boyut (bayt) char Tek bir karakter veya -128 127 1 unsigned char küçük tamsayı için 0 255 short int -32,768 32,767 Kısa tamsayı için 2 unsigned short int 0 65,535 int -2,147,483,648 2,147,483,647 Tamsayı için 4 unsigned int 0 4,294,967,295 - long int 9,223,372,036,854,7 Uzun tamsayı için 8 75,808 unsigned long int 0 float double 9,223,372,036,854,7 75,807 18,446,744,073,709, 551,615 Tek duyarlı gerçel 4 sayı için (7 basamak) -3.4e +/-38 +3.4e +/-38 Çift duyarlı gerçel sayı için (15 8-1.7e +/-308 +1.7e +/-308 basamak)
Değişkenler bilgisayarın geçici belleğinde bilginin saklandığı gözlere verilen sembolik adlardır. Bir C programında, bir değişken tanımlandığında bu değişken için bellekte bir yer ayrılır. Her değişkenin tuttuğu değerin nasıl bir veri olduğunu gösteren (önceki bölümde anlatılan) bir veri tipi vardır. Değişkenler (ve sabitler) programın başında bulunmalıdır.
Değişkenler C da bulunan veri tiplerinden önemli bir kaçı aşağıdadır: double: reel sayı int: tamsayı char: bir harf veya klavyedeki bir karakter
Örnek: double x; int X,y, z; chard; C büyük-küçük harfe duyarlı Değişken isimleri boşluk içermez. Mutlaka harf ile başlar ve içinde harf, sayı, veya _ karakteri gibi bir sembol bulunabilir.
Bazı uygulamalarda değişkenin bir başlangıç değerinin olması istenir charisim='x', z; /* değer atamak zorunlu değil */ int sayi=0, n; floattoplam=0.0, sonuc=22.14;
Değişken isimleri verirken bazı kurallara uymak zorunludur. Bunlar: Değişken adları en fazla 32 karakterden oluşabilir. 32 karakterden uzun değişken adları ilk 32 karakteri değerlendirilir. Geriye kalan karakterler işleme tabi tutulmaz. Değişken adları İngiliz alfabesinde bulunan karakterler (A-Z) veya (a-z) yada rakamlar (0-9) ile yazılmalıdır. Türkçe karakter kullanılamaz. Değişken adları herhangi bir rakam ile başlayamaz. İlk karakter bir harf olmalıdır.
Aşağıda verilen kelimeler ANSI C 'nin anahtar kelimeleridir (key words) ve değişken ismi olarak kullanılamaz.
Değişkene değer atama Bir değişken bir işleme eşitlenirse, aşağıdaki gibi çalışır: önce, Sağ taraftaki hesaplanır. sonra, Hesaplanan değer sol taraftaki değişkene atanır
Örnek: doublex, y; inti, k; x = 2.8; y = -1.4*x; i = 9; k = (i % 2) * (7 + 5*i); Hesaplanmış değer soldaki değişkene atanır Sağdaki işlemin sonucu hesaplanır
Sabit tanımlama Bir sabit tanımlarken veri tipinden önce const keyword ünü yazmak gerekir. Örnek: const double pi = 3.1415;
Sabit tanımlama Sabitler Program içinde değer değiştirmez. Genellikle programın başındatanımlanırlar. Tanımlanırken değer ataması yapılır.
Değişken Bildirim Yerleri ve Türleri Yerel (local) Bildirim Yerel değişkenler kullanıldığı fonksiyon içerisinde bildirilir. Yalnızca bildirildiği fonksiyon içerisinde tanınır ve kullanılabilir. inttopla(inta,intb) { /* yerel (local) değişken c ninbildirimi */ intc; c = a + b; returnc; }
Genel (general) Bildirim Genel değişkenler bütün fonksiyonların dışında bildirilir. Bir değişken program boyunca sürekli olarak kullanılıyorsa genel olarak bildirilmelidir. #include <stdio.h> intm,n; main() { m=7; n = m*m; printf("%d ninkaresi %d dir",m,n); }
Tip Dönüşümleri Bir formül içerisinde bir çok değişken veya sabit olabilir. Bu değişken ve sabitler birbirinden farklı tipte olursa, hesap sonucunun hangi tipte olacağı önemlidir. Bir bağıntıda, içeriği dönüşüme uğrayan değişkenler eski içeriklerini korurlar. Dönüştürme işlemi için geçici bellek alanı kullanılır; dönüştürülen değer kullanıldıktan sonra o alan serbest bırakılır.
Bir değişkenin sabit değerin veya bağıntının önüne tür veya takı (cast) yazılarak sonucun hangi tip çıkması istendiği söylenebilir. Genel yazım biçimi: (tür tipi) bağıntı; Örneğin: intx=9; floata,b,c; doubled;... a = x/4; b = x/4.0; c = (float) x/4; işleminin sonucunda a değişkenine 2.0, b ve c değişkenlerine 2.25 değeri aktarılır. Yani 9/4 ile 9/4.0 farklı anlamdadır.