Skip to main content

C PROGRAMLAMA DİLİ DEITEL KITABI FULL INCELEME

C PROGRAMLAMA DİLİ DEITEL KITABI FULL INCELEME YAZISI -1

Bilgisayar nedir ? Yüksek Seviyeli diller nedir ? C ile programlamaya giriş nedir ? Hafıza konuları , C dilinde aritmetik vb. her başlığa yer verdiğimiz bu yazımızda sizlere C dilini tamamen tanıtmak ve anlatmak istiyoruz.

 

C PROGRAMLAMA DEITEL KITABI INCELEME YAZISI -1

 

Bilgisayar nedir ?

Bilgisayarlar hesaplamaları ve mantıksal kararlar vermeyi insanlardan milyonlarca hatta milyarlarca kez hızlı yapabilme yeteneğine sahip cihazlardır.

Yazılım Geliştirme Yöntemleri Nedir ?

Yapısal programlama , yukarıdan aşağıya adımsal iyileştirme , fonksiyonellik , nesne tabanlı programlama , nesneye yönelik programlama , event driven ve generic olarak ayrılırlar.

Bilgisayar Organizasyonu Nedir  ?

Giriş ünitesi , Çıkış ünitesi , Hafıza ünitesi , Aritmetik Mantık Ünitesi(ALU) , Merkezi İşleme Ünitesi(CPU) ve İkincil Depolama Ünitesidir.

Bilgisayar Dilleri Tipleri Nedir ?

Günümüzde genel tip olarak 3 çeşide ayrılır ; Makine dilleri , Assembly dilleri , Yüksek seviyeli diller

Herhangi bir bilgisayar doğrudan makine dilini anlayabilir.Makine dili bilgisayarın doğal dilidir.

Makine dillerinde yaşanan programlama zorlukları ya da yaşanan hatalar nedeniyle programcılar İngilizceye yakın kısaltmalar kullanmaya başlarlar.Bu kısaltmalar assembly dilinin temelini oluşturur.Assembler olarak adlandırılan çevirici programlar , assembly dilinde yazılmış programları makine diline çevirirler.

Makine Dilinde : +130042774 Assembly Dilinde : LOAD SAYI1

+14000593419                                                      ADD SAYI2

+1200274027                                                         STORE TOPLAM

 

Programlama sürecini hızlandırabilmek için Yüksek Seviyeli Diller geliştirildi.Derleyici(Compiler) olarak adlandırılan bu programlar , yüksek seviyeli dilleri makine dillerine çevirirler.

Örnek :  “ toplam = sayi1 + sayi2 “

C Dilinin Tarihçesi Nedir ?

Temelinde iki eski dil yatmaktadır. Bu diller BCPL ve B. BCPL.1967 Yılında Martin Richards tarafından geliştirilmiştir.Ken Thompson , BCPL çalışmalarının ardından  kendi yarattığı B dilini geliştirmiştir.

C dili 1972 yılında yine bu çalışmaların ardından Bell labaratuvarlarında Dennis Ritchie tarafından DEC PDP-11 bilgisayarlarında geliştirilmiştir.

Standart C Kütüphanesi Nedir ?

C programları fonksiyon adı verilen parçalardan ya da modüllerden oluşmaktadır.

C öğrenmede asıl olan iki kısım bulunmaktadır ;

1) C dilinin kendisini , 2) C Standart Kütüphanesindeki fonksiyonların kullanımı

C ile çalışırken kullanacağımız bloklar ; C standart kütüphane fonksiyonları , Kendi yazdığımız fonksiyonlar ve diğer programcıların yazdığı fonksiyonlar

İpucu : Kendi yazacağımız fonksiyonlar yerine , ANSI standart kütüphane fonksiyonlarını kullanmak programın performasını arttırır.Çünkü bu fonksiyonlar verimli çalışma adına dikkatle yazılmıştır.

Diğer Yüksek Seviyeli Diller Nedir ?

Önemli olan birkaçına göz atacak olursak ;

FORTRAN (Formula Translator) : IBM tarafından 1954 ve 1957 yıllarında geliştirilen ve bilimsel uygulamalarda kullanılan , mühendislik uygulamalarında kullanılan bir programdır

COBOL (Common Bussiness Oriented Language) : 1959 yılında bilgisayar üreticileri , devlet ve endüstriyel bilgisayar kullanıcıları tarafından geliştirilmiştir.Daha çok büyük verilerin kullanımını gerektiren ticari uygulamalar da kullanılır.

Pascal ve C aynı zamanlarda , Profesör Niklaus Wirth tarafından akademik kullanım amacıyla geliştirilmiştir.

C Dili Program Geliştirme Ortamı Temelleri Nedir ?

Bu sistemler genellikle birkaç kısımdan oluşmaktadır ;

Program geliştirme ortamı , Dilin kendisi , C standart kütüphanesi

Tipik bir C programı çalışmadan önce  6  safhadan geçmektedir ;

Yazım (edit) , Önişleme(preprocess) , Derleme (compile) , Bağlama (link) , Yükleme (load) ve Çalıştırma (execute).

İpucu : 0’a bölme gibi hatalar programın çalışması esnasında ortaya çıkmaktadır.Bu yüzden bu hatalara çalışma zamanı hataları yani ‘Runtime/Execution Time Error’ denilir.0’a bölmek ölümcül hata anlamına gelir ve  programın başarılı bir şekilde tamamlanmadan sonlanması anlamına gelir.Ölümcül olmayan hatalar ise programın yanlış sonuç verecek biçimde çalışmasına sebep olur.

C ile Programlamaya Giriş Nedir ;

‘/* ‘ ile başlanan yorum satırının sonuna ‘ */ ’ işaretini koymayı unutmayın

Main () : main’den sonra bulunan parantezler main’in fonksiyon adı verilen program oluşturma bloklarından biri olduğunu gösterir ve her programda fonksiyonların içinde en az biri ‘main’ olmalıdır.

Printf (“     \n”) ; tırnaklar içindeki karakterleri aynen ekrana yazdırır. ‘ \ ‘ ters eğik çizgi , çıkış karakteri olarak adlandırılır.

‘ \n ’ ise yeni satır anlamına gelir ve imleci yeni satırın başına taşır.

‘ \t ’ ise yatay tab anlamına gelir.İmleci bir sonraki tab başlangıcına taşır.

‘ \a ’ ise alarm anlamına gelir.Sistemdeki zili çalar.

‘ \\’ ise ters çizgi anlamındadır.Printf içindeki ters çizgi karakterini yazdırır.

‘  \”  ’  ise tırnak anlamındadır.Printf içerisindeki tırnak karakterini yazdırır.

[ int  tamsayi1 , tamsayi2 , toplam ; ] satırındaki kod ile ‘Bildirim’ yapmış oluyoruz.Burada tamsayi1 ya da tamsayi2 değişkendir.Değişkenlerin kullanılabilmesi  için bu değişkenlerin isim ve değişken tipiyle beraber main fonksiyonunu belirten ‘{ ’ küme işaretinden sonra tanımlanmaları gerekmektedir.

Örnek : main {  int tamsayi1  ,  …

Diğer bir ifade Scanf (” %d ” , &tamsayi1) ; Burada %d dönüşüm belirtecidir ve verinin tamsayı olması gerektiğini belirtir. ‘ & ‘ karakterine ise adres operatörü denilmektedir.

Printf (“Toplam %d dir\n”, toplam); satırında ise ‘%d’ dönüşüm belirtecini  içerir.Bir tamsayının yazılacağını gösterir.

Return 0 ; 0 değerini programın çalıştırıldığı işletim sistemi ortamına gönderir ve böylece  programın başarılı bir şekilde çalıştığını gösterir.

Hafıza Konuları Nedir ?

Scanf operatörü ile bir tamsayi değeri aldığınızı düşünelim.Kullanıcı 40 tamsayısı girdiğinde bu değer , daha önceden o hafıza konumunda bulunan değerin üzerine yazılır.Bu işleme de ‘destructive read-in’ adı verilir.

Bir hafıza konumundan okuma işlemi yapıldığında ise buna non-destructive read-out adı verilir.

Dipnot :

Bilgisayar programlarında ifadelerin çalıştırılma sıralarını belirlemeye program kontrolü denir.

Sahte kod ise programcıların algoritma geliştirmelerine yardımcı olan yapay bir dildir.Sahte kodlar günlük konuşma diline yakın olup , bilgisayarda çalıştırılmazlar.

Akış grafiği , algoritmanın grafik ile gösterimidir.Akış grafikleri dikdörtgen , çember gibi özel sembollerden oluşur.

Programların çoğu mantıksal olarak 3 kısma ayrılabilir ;

Programların değişkenlerinin bildirildiği ve değişkenlere ilk değer atandığı bildirim safhası;

Girilen verilerin değerlerinin işlendiği ve program değişkenlerinin ayarlandığı işleme safhası ;

Sonuçların hesaplandığı ve yazdırıldığı sonlandırma safhası .

C Programlama Dilinde Aritmetik :

Toplama = ‘+’

Çıkarma = ‘ – ’

Çarpma = ‘ * ’

Bölme = ‘ / ’

Mod Alma = %

İşlem Sırası ise ;

Önce parantez içi hesaplanır , ardından çarpma , bölme ve mod alma işlemleri hesaplanır.En sonda ise toplama ve çıkarma işlemi gerçekleşir.

Eşitlik ve Karşılaştırma Operatörleri  :

Eşitlik operatörleri ;

‘ == ‘ ; x==y    (X eşittir Y anlamındadır)

‘ != ’ ; x!=y   (X eşit değildir Y anlamındadır)

Karşılaştırma Operatörleri ;

‘ > ‘ ;  x>y  (X büyüktür Y)

‘ < ’ ; x<y (X küçüktür Y)

‘ ≤ ’ ; x <= y (X küçüktür ya da eşittir Y)

‘≥’ ; x >= (X büyüktür ya da eşittir Y)

Örnek Program ;

#include <stdio.h>

#include <stdlib.h>

int main()

{

float ortalama ;

int sayici,not,toplam ;

toplam=0;

sayici=0;

printf(“Notu gir :”);

scanf(“%d”,&not);

while (not !=1) {

toplam = toplam + not;

sayici = sayici +1;

printf(“Notu Giriniz : “);

scanf(“%d”,&not);

}    if (sayici !=0 ){

ortalama = (float) toplam/sayici;

printf(“Sınıf ortalaması %2f”,ortalama);

}

else

printf(“Not girilmedi! \n”);

return 0;   }

Bu programda sayıcı kontrollü döngülerle sınıf ortalaması bulan bir program oluşturulmuştur.

Ortalama sonucunun ondalıklı olması durumu için float veri tipi’de kullanılmıştır.Yine bu programda dikkat edilmesi gereken bir yer olan ’ %2.f ‘ ifadesidir.

Burada ‘f’ ondalıklı bir değer yazdırılacağını bildirir ve önünde bulunan ‘ .2 ‘ ise  hassasiyeti belirtir.Yine burada belirtildiği gibi virgülden sonra 2 basamak geleceğini ifade eder.

Atama Operatörleri :

‘ += ‘ operatörü : c += 7 -> c = c+7

‘ -= ’ operatörü : d -=4 -> d = d – 4

‘ *= ’ operatörü : e *=5 -> e = e*5

‘ /= ’ operatörü : f /=6 -> f = f/6

‘ %= ‘ operatörü : g %=7 -> g = g%7

Arttırma ve Azaltma Operatörleri ;

Tekli Artırma (++) ve Tekli Azaltma (–);

Ön arttırma (Preincrement)

Ön azaltma (Predecrement)

Son artırma (Postincrement)

Son azaltma (Postdecrement)

Örnek : ‘ ++a ’ ifadesi , a’yı bir arttır ve a’nın yeni değerini a’nın içinde bulunduğu deyimde kullan anlamına gelir.

‘a++’ ifadesi ise , a’nın değerini a’nın içinde bulunduğu deyimde kullan ve daha sonra a’yı bir arttır.

Üs Almak İçin Yöntemler :

C dilinde üs almak için özel bir operatör bulunmasa da bunun yerine standart kütüphane fonksiyonlarından ‘pow’ fonksiyonu bu amaçla kullanılabilir.

Pow (x,y) komutu x’in y’ninci kuvvetini hesaplar.Bu fonksiyon double tipte iki eleman alır ve double tipinde bir sonuç döndürür.

Pow vb. matematik fonksiyonu programda kullanıldığında , math.h dosyasının programa eklenmesi gerekmektedir.Aksi takdirde sistem hatalı çalışabilir.

GetChar Komutu kullanımı :

While ((not =getchar()) !=EOF  ) ; satırında ilk önce parantez içerisindeki atama olan (not =getchar) çalıştırılır.getchar fonksiyonu (standart giriş/çıkış kütüphanesi içindedir) ve klavyeden bir karakter okur ve bu karakteri not tamsayı değişkeni içerisinde depolar.(EOF : End of file)

Karakter genellikle char tipinde saklanırlar.C dilinde yine en önemli özelliklerden biri de bu karakterlerin tamsayı veri tip ile saklanabilmesi özelliğidir.

Örnek olarak : printf (“ (%c) karakteri  %d değerine sahiptir. \n” , ‘a’ , ‘a’);

Unix sistemleri ve ya diğer sistemlerde EOF değeri ; <return> ya da <ctrl-d> kombinasyonu ile girilir.

Switch Yapısında ;

Case ‘\n’ : case ‘ ’ ;

Break;    satırları programın boşluk karakterini ve yeni satır karakterlerini atlamasını sağlatır.

C dili Mantıksal Operatörleri  :

&& (Mantıksal  Ve ) anlamındadır

|| (Mantıksal Veya) anlamındadır

! (Mantıksal Değil) anlamındadır.

Not : ‘ ==  ‘(Eşitlik)  // ‘ = ’ (atama) operatörleridir ve karıştırılmamalıdır.

C Dili Fonksiyonlar :

C dilinde modüllere fonksiyon adı verilir.

Fonksiyonlar , fonksiyon çağrıları sayesinde çağrılırlar.Fonksiyon çağırmak demek fonksiyonu kullanmamız gerektiği anda onu programa dahil etmek demektir.

Matematik Kütüphanesindeki Fonksiyonlar :

Burada bulunan kütüphane fonksiyonları , genel matematik işlemlerini yapmasını sağlar.

Örneğin ; 900.0 sayısının karekökünü bulmak ve yazdırmak isteyen bir programda , kullanıcı ‘sqrt’ fonksiyonu ile bu işlemi gerçekleştirebilir ( printf (“%.2f”, sqrt(900.0)); )

Sqrt fonksiyonu double tipte argüman kullanır ve aslında Matematik kütüphanesinde bulunan fonksiyonların hepsi double veri tipini döndürürler.

Matematik Kütüphanesi Fonksiyonları ve Tanımları ;

Sqrt (x) : x’in karekökü

Exp (x) : e^x üssel fonksiyon

Log (x) : x’in e tabanına göre logaritması

Log10 (x) : x’in 10 tabanına göre logaritması

Fabs (x) : x’in mutlak değeri

Ceil (x) : x’i kendinden büyük ilk tamsayıya yuvarlar

Floor (x) : x’i kendinden küçük ilk tamsayıya yuvarlar

Pow (x) : x^y  ‘x üzeri y’

Fmod (x,y) : x/y işleminin kalanını bulur

Sin (x) : x’in sinüsünü hesaplar (x radyan)

Cos (x) : x’in cosinüsünü hesaplar (x radyan)

Tan (x) : x’in tanjantını hesaplar (x radyan)

 

Bir Fonksiyon Tanımının Biçimi ;

Geri dönüş tipi   fonksiyonun ismi (parametre listesi)

{

Bildirimler

İfadeler

}

Not : Void tipinde geri dönüş değeri , fonksiyonun herhangi bir değer geri döndürmeyeceğini gösterir.

Veri Tipleri :

Printf ile Kullanılan : Long double (%Lf ) ,Double (%f), Float (%f) , Unsigned long int (%lu) , Long int (%ld) , Unsigned int (%u) , İnt (%d) , Short (%hd) , Char (%c)

Scanf ile Kullanılan : Long double (%Lf ) ,Double (%lf), Float (%f) , Unsigned long int (%lu) , Long int (%ld) , Unsigned int (%u) , İnt (%d) , Short (%hd) , Char (%c)

Öncü (Header) Dosyalar ;

Her standart kütüphane , o kütüphanedeki her fonksiyonun prototiplerinin yer aldığı ve bu fonksiyonlar tarafından kullanılabilecek çeşitli veri tipleriyle , bazı sabitlerin bulunduğu bir öncü dosyaya sahiptir.

Standart kütüphane öncü dosyası ;

<assert.h>  : Programın hatalarının ayıklanmasında yardımcı olması için eklenen teşhislerin makroları ve bilgilerini içerir.

<ctype.h> : Karakterleri belli özelliklere göre test eden fonksiyonların ve küçük harfi büyük harfe çeviren fonksiyonların (terside geçerlidir) prototiplerini tutar.

<errno.h> : Hata mesajlarını iletmek için gereken makroları tanımlar

<float.h> : Sistemin ondalıklı sayılar için limitlerini tutar

<limits.h> : Sistemin integral limitlerini tutar

<locale.h>  : Programın çalıştırıldığı yerdeki yerel bilgilere göre değiştirilebilmesini sağlayan fonksiyon prototiplerini ve bunların ihtiyaç duyabileceği bilgileri içerir.Yerel gösterimler bilgisayar sisteminin tarih, zaman , para birimleri ve dünya üzerindeki büyük sayılar için değişik gösterim biçimlerini doğru bir şekilde kullanılmasını sağlatır.

<math.h> : Matematik kütüphane fonksiyonlarının prototiplerini tutar

<setjmp.h> : Fonksiyon çağrıları ve geri dönüşleri arasındaki geçişlere izin veren fonksiyonların prototiplerini tutar

<signal.h> : Programın çalıştırılması esnasında oluşabilecek çeşitli durumları gerçekleştiren makroları ve fonksiyon prototiplerini tutar.

<stdarg.h> : Sayısı ve tipleri belli olmayan argüman listesine sahip fonksiyonların çalışmasını sağlayan makroları tutar

<stddef.h> : C’de belli hesaplamaları yaptığımız tiplerinin genel tanımlarını tutar ve standart giriş/çıkış kütüphane fonksiyonlarının prototiplerini ve bunlar tarafından kullanılan bilgileri tutar

<stdio.h> : Standart giriş/çıkış kütüphane fonksiyonlarının prototiplerini ve bunlar tarafından kullanılan bilgileri tutar.

<stdlib.h> : Sayıları yazılara, yazıları sayılara çeviren , rastgele sayılar üreten , hafıza ayrılmasını sağlayan fonksiyonların prototiplerini tutar.

<string.h> : String işlemlerini yapan fonksiyonların prototiplerini tutar

<time.h> : Zamanla ve tarihle ilgili işlemler yapan fonksiyonların prototiplerini tutar

Not : Programlama yapan kişide öncü dosyalar oluşturabilir.Bu dosyalar ‘ .h ‘ uzantısı ile bitmelidir.

Fonksiyonları çağırmak adına 2 yol bulunmaktadır ;

Değere göre çağırma ve Referansa göre çağırma

C dilinde tüm çağırmalar değere göre yapılır.

Rand Komutu :

Rand fonksiyonu  0 ile RAND_MAX (<stdlib.h> öncü dosyasında tanımlı sembolik sabit) değeri arasında bir tamsayı yaratır.

6 yüzlü bir zar atıldığını düşündüğümüzde ;

Rand ()%6  işlemi 0 ile 5 dizisindeki (0,1,2,3,4,5) tamsayılarını üretecektir.Bu işleme derecelendirme yani scaling denilmektedir.Burada ‘6’ rakamı ise derecelendirme faktörü olarak geçmektedir.Burada önceki sonuca ‘+1’ ekleyerek sayıların dizilerini kaydırıyoruz.

Rand fonksiyonu gerçekte sahte rastgele sayılar üretir.Rand fonksiyonunu tekrar tekrar çağırmak , rastgele gibi görünen bir dizi sayı oluşmasına sebep olur.Bu işleme ‘Rassallaştırma’ adı verilir ve bu işlem standart kütüphane fonksiyonu olan ‘Srand’ ile yapılır.Srand fonksiyonu ‘unsigned’ tipte bir tamsayıyı argüman olarak kullanır.

Depolama Sınıfları :

C dili auto , register , extern ve static depolama sınıfları belirteçleriyle belirlenebilen dört depolama sınıfına sahiptir.

Auto ve register anahtar kelimeleri , otomatik depolama süreçli değişkenleri kapsar

Extern ve static anahtar kelimeleri ise , statik depolama süreçli değişken ve fonksiyon tanıtıcıları için kullanılırlar.

C PROGRAMLAMA DİLİ DEITEL KITABI FULL INCELEME YAZISI -1 SONUÇ :

Bugünki yazımızda sizlere C Programlama dili deitel kitabı full inceleme yazısı ile bu incelemenin ilk bölümünü yayımlıyoruz.C diline ait her parametreyi öğrenmek adına başladığımız bu yazımızda umuyoruz sizlere faydalı olabiliriz.

C Programlama Dili

C PROGRAMLAMA DİLİ ÖĞREN

C Dili Nedir ?.Nerelerde kullanılır ?.C dili nasıl öğrenilir ?.C dili ile ilgili inceleme yazılarımızın bulunacağı bir seriye başlıyoruz.

Bu içerik bir eğitim setininin özetini içermektedir.

 

C PROGRAMLAMA DİLİ

İlk karşımıza çıkacak olan ifadelerden birisi #include <stdio.h>’tır.Bu işlem aslında derleyicinin derleme işlemini yaptığı esnada C derleyicisinin kurulu olduğu dosyaların içinde bulunan ‘include’ dosyası içerisindeki kütüphaneyi açar.

Karşınıza çıkacak olan sıradaki ifade int main () olacaktır.İnt main () programda çalıştırılan ilk fonksiyondur.

Pekala karşınıza çıkan “ \n ” ifadesi ne anlama gelmektedir.Bu ifade programda geldiğinde bir alt satıra geçme işlemini gerçekleştiren ifadedir.

Açıklama satırı ise karşınıza  “ // ” şeklinde ve ya “ /*  */  ” şeklinde çıkabilir.İkiside kullanılabilir.

Veri  Tipleri ;

Somut nesnelerin -> soyutlaştırılmış halleri’dir.

Char : Tek bir karakter için kullanılır ve kullandığı alan 1 Byte’dır.

İnt : Tamsayı için kullanılır ve kullandığı alan 2 – 4 Byte’dır.

Float : Tek duyarlı gerçel sayı için kullanılır ve kullandığı alan 2 – 4 Byte’dır.

Double : Çift duyarlı gerçel sayı için kullanılır ve kullandığı alan 4 -8  Byte’dır.

Pekala burada karşınıza çıkacak olan bir ifade daha bulunmaktadır -> “ %d ”

“ %d ” integer olan bir ifadenin ekrana çıktı verilmesi adına kullanılır.

Karakter için = %c

Kısa tamsayı , tamsayı , uzun tamsayı  için =  %d

İşaretsiz tamsayı = %u

İşaretsiz uzun tamsayı = %1u

Virgüllü sayı = %f

Uzun virgüllü sayı = %1f

# Char -> Değer atarken tek tırnak kullanılarak (‘  ’) değer atanır.Örnek olarak : char a = ‘a’ ;

Dinamik Veri Tipleri :

Değişken değerlerini kullanıcı belirler.

Scanf -> Değişkenlere değer atar.

Örnek : scanf(“%d” , &sayı1);      [& : Bu operatör girilen sayıyı değişkene atar.]

Örnek olarak : float PI : 3,1423; Burada PI değeri hiç değişmeyen ve değiştirilmemesi gereken bir değerdir.

Hiç değişmemesi ya da değiştirilememesi için yapılması gereken işlem ;

Const float PI : 3,1423; olarak yapılmalıdır.

Tip Dönüşümleri :

Bu konuyu örnek bir program üzerinde göstermeye çalışacağım.

İnt bolunen = 12 ; int bolen =8 ;

Float bolum ;

Bolum = Bolunen / bölen ;

Şeklinde devam eden bir program düşünelim.

Burada işlemi çalıştırdığınızda printf fonksiyonu ile , ekranda 1 çıktısını alacaksınız.Ancak sonuç 1.5 şeklinde olmalıydı.Burada Float olan sonuç integer tipinde gözükemeyeceği için ekrana integer olarak 1 çıktısını verir.

Yapılması gereken işlem :   bolum =(float) bolunen / bölen ;   *

ifadenin başına eklenen (float) komutu çıktıyı float olarak gösterecektir.

İf-Else Yapısı :

İf yapısında  ;   koşul doğru ise komutlar çalışır ve çıkışa gider.Eğer yanlışsa direk çıkışa gider.

İf-Else yapısında ; koşul doğru ise komutlar çalışır ve çıkışa gider.Eğer yanlışsa else yapısı içindeki komutlar çalışır ve ardından çıkışa gider.

Switch-Case Yapısı :

Burada ‘Case’ ifadesi bir durumu bildirir.Ve her bir kod satırının sonuna ‘Break’ konulmalıdır.Son olarak ise buraya ait olan bir ifade ‘Default’ bulunmaktadır.Eğer hiçbir durum uymuyorsa kullanılır.’Else Mantığı’.

Diğer bir kullanılabilir karşılaştırma operatörü ise ;

İnt sayı = 5;

(sayı < 6 )  ? printf(….) : sayi++ ;      şeklindedir.

Burada da ifelse mantığı hakimdir.6’dan küçükse yazdırıyor , büyükse iki noktadan sonrası çalışıyor.

C Kodları Temel Özellikleri ve Detaylar ;

Burada yine önemli noktalara vurgu yapılmaktadır.

Her C programı ‘main’ fonksiyonu ile başlar.

Satır sonu ‘;’ noktalı virgül konulması zorunludur.

‘{ }’ bu parantezlerin açıldığı ve kapandığı yerler dahil açık kapalı sayılarının eşit olup olmadığını kontrol ediniz.

C dilinde büyük küçük harf farketmektedir.Dikkat ediniz.

Program açıklamalarını mutlaka yazmalısınız.Geriye dönüp baktığınızda açıklamalarla çok daha kısa sürede sorunu çözebilir hatayı görebilirsiniz.

C  Deyimleri :

Değişken ismi olarak kullanılamazlar.

Auto  / break / case / char / const / continue / default / do / double / else / enum / extern / float / for / goto / if / int / long / register / return / short / signed /  sizeof / static / struct / switch / typedef / union / unsigned / void / volatile / while

Rastgele Sayı Üretme (Rand) Komutu :

Öncelikle #include <time.h> kütüphanesi eklenmelidir.

İnt degisken = rand ();

Şeklinde kullanılır.Bu komut sürekli aynı rakamı çıktı verir.Rastgele olması adına “srand  (time(NULL))” eklenmelidir.

Belirli iki rakam arasında rastgele sayılar istiyorsak eğer , int degisken = rand () %100 ; denilerek 0 ila 100 arasında rakam çıktısı alınır.

20 ile 100 arasında rakam çıktısı almak isteseydik ,

İnt degisken = 20 + rand () % 80 ;  şeklinde kullanmamız gerekirdi.

While Döngüsü ;

Dikkat edilmesi gereken 3 aşama ;

While döngüsünde ; 1) Başlangıç değeri , 2) Koşul ve 3) Arttırma aşamaları olmalıdır.

Koşul yanlış ise çıkış verir , doğru ise komutlar çalışır ve çıkış verir.

FOR Döngüsü ;

Örnek kullanım ;

For (i=0 , i<10; i++); şeklindedir.Burada ‘i’ ifadelerinin toplamını ise “ toplam  += i “ şeklinde yapabilirsiniz.For komutunun Türkçe karşılığı ‘için’dir.

Do-While Döngüsü  ;

do {

} while ();   şeklinde kullanılır.While parantezinin içerisindeki koşul gerçekleştiğinde do { } içerisindeki ifade gerçekleşir.

Break / Continue / Goto Deyimleri ;

Break geldiğinde içinde bulunduğu döngüyü iptal eder.Break’ı iptal gibi düşünebilirsiniz.

Continue geldiğinde döngüyü sonlandırmak yerine koşula yönlendirir.Önünde bulunan ifade geldiğinde onu gerçekleştirmez yani atlar diyebiliriz.Continue’yi devam , ilerle gibi düşünebilirsiniz.

Goto kullanımı tavsiye edilmemektedir.

Diziler (Tek Boyutlu Dizi Atama);

Bir dizi atamanın birden fazla yolu bulunmaktadır.

İnt dizi [3];

Dizi [0]=1;

Dizi [1]=2;

Dizi [2]=3; şeklinde atanabilir.

İnt dizi2 [3] = {1,2,3}; şeklinde atanabilir.

İnt dizi3 [] = {1,2,3}; şeklinde atanabilir.

Örnek olarak ; printf(“1.dizinin 1. Elemanı : %d\n” , dizi[0]); şeklinde dizi elemanını gösterebilir, çıktısını alabilirsiniz.

İki Boyutlu ve Dinamik Diziler :

İnt dizi[3] ; Tek boyutlu bir dizi olarak geçmekteydi.Hemen üstte açıkladık.

İnt dizi [3] [2]; İki boyutlu bir dizi iken , int dizi [3] [2] [1] ; üç boyutlu bir dizidir.

Dinamik yapılı diziler ise ; tek bir noktadan değiştirilebilir olanlardır ve sabit olmalıdır.

Ör : #define TEKBOYUT

#define ÇIFTBOYUT    * Burada define ile sabitler tanımlanabilir.Büyük isimle tanımlanmasının sebebi ise ayırt edilebilmesini sağlamak içindir.

Örnek olarak; int dizi [TEKBOYUT] [ÇİFTBOYUT] * Define alanından değiştirilebilir dizilerdir.

String ;

Char dizi []  ; şeklinde tanımlamalar String olarak adlandırılır.String aslında harf , isimlerden oluşan yapılardır.Bir isim-soyisim vb. tanımlarken ‘String’ olarak tanımlama yapılmalıdır.

String kullandığınızda Scanf fonksiyonunda ‘&’ operandı kullanılmaz.

Fonksiyon Tanımlama :

Örnek olarak main bir fonksiyondur.Yine örnek olarak void’de bir fonksiyondur.

Void fonksiyonu geriye değer döndürmez , değer tipi dönmez.

Örnek : void isimYaz () {   şeklinde bir ifade de aslında siz bir fonksiyon yazmış oluyorsunuz.

C programlama dilinde prototipler bulunmaktadır.

Siz program içerisinde önceden programların fonksiyon prototiplerini tanımlamak zorundasınız.

Değer döndüren fonksiyona örnek verecek olursak ;  main () fonksiyonunu örnek verebiliriz.

Değer Bildirim Yerleri ve Türleri ;

Lokal ve Global olarak ikiye ayrılır.Lokal olanlar ; main içerisindeki fonksiyonu düşündüğünüzde bir alandan diğer alana ulaşılamayan durumlardır.

Global olanlar  ; main fonksiyondan daha önce tanımlananlara denilir.

 C Programlama Dili Öğren Sonuç :

Bugünki yazımızda C programlama dili öğren adlı içeriği sizlerle paylaşıyoruz.Bu içerik bir eğitim setinden alınan önemli detayları içermektedir.Basic seviyede olan bu bilgiler aslında temeli oluşturmaktadır.C ile ilgili diğer inceleme yazılarımızıda peyderpey sizlere ulaştırmaya çalışacağız.İyi çalışmalar.