Kategori: C Programlama Dili

  • C Programlama Dili If ve If-Else Yapıları

    C Programlama Dili If ve If-Else Yapıları

    If ve if-else yapıları programlama dillerinde karşılaştırmalar ve bu karşılaştırmaların sonucunda gerçekleşmesi istenen işlemlerin kontrolü için kullanılmaktadır. If kelimesinin İngilizce karşılığı “eğer”dir. Biz de if yapıları ile iki durum arasında eğer karşılaştırmaları yaparız. Daha önce ki dersimiz olan C Programlama Dili Operatörler ve Kullanımları yazımızda gösterdiğimiz karşılaştırma operatörlerini sık sık if yapılarının içerisinde kullanacağız.

    If yapısının kullanımı oldukça basittir ve temel mantığa dayanmaktadır, bildiğimiz gibi bilgisayarda yapılan işlemler temel mantığa dayandığını için benzeri durumu if yapılarında da görebiliyoruz. If yapılarında öncelikle elimizde iki durum/değişken olmalı ve bunları bir karşılaştırma operatörü ile karşılaştırmalıyız, daha sonra da eğer karşılaştırma doğruysa yapılacakları, yanlışsa yapılacakları belirtmeliyiz. If yapısı sadece kendi başına kullanıldığında, yalnızca karşılaştırma doğru olduğunda yapılacakları belirtebiliriz.

    if (karşılaştırma){
    işlemler;
    }

    Basit bir örnek kodla bilgilerimizi pekiştirelim;

    #include <stdio.h>
    int main(){
    int a=10;
    int b=5;
    if (a>b){
    printf("A Sayisi B Sayisindan Buyuktur.");
    }
    return 0;
    }

    Bu kodda yaptığımız işlem daha önce tanımlanmış olan a ve b sayıları arasında “a>b” karşılaştırmasını yapmak ve eğer karşılaştırma doğru ise ekrana “A Sayisi B Sayisindan buyuktur.” yazdırmak.

    Ancak öyle durumlar oluyor ki sadece karşılaştırmanın doğru olması durumunda işlem yapmak yetmiyor, aynı zaman da karşılaştırma yanlışsa da işlem yapmamız gerekebiliyor. İşte böyle durumlarda ise if-else yapılarını kullanıyoruz. Temel olarak kullanımı aşağıda ki gibidir.

    if (karşılaştırma){
    işlemler;  //karşılaştırma doğruysa yapılacak işlemler
    } else {
    işlemler;  //karşılaştırma yanlışsa yapılacak işlemler
    }

    Şimdi de az önce yaptığımız örneği if-else yapısına uygun olarak tekrardan yazalım.

    #include <stdio.h>
    int main(){
    int a=10;
    int b=5;
    if (a>b){
    printf("A Sayisi B Sayisindan Buyuktur.");
    } else {
    printf("A Sayisi B Sayisinden Kucuktur.");
    }
    return 0;
    }

    Konuyu biraz daha pekiştirmek amacıyla yaşı girilen birinin yaşının ehliyet alıp alamaya müsait olup olmadığını belirleyen programı yazalım.

    #include <stdio.h>
    int main(){
    int yas;
    printf("Yasinizi Giriniz: ");
    scanf("%d",&yas);
    if (yas>=18){
    printf("Yasiniz Ehliyet Almaya Musait");
    } else {
    printf("Yasiniz Ehliyet Almaya Musait Degil");
    }
    return 0;
    }

    If ve if-else yapılarının temeli bu kadardır, if ve if-else yapıları C programlama dilinde oldukça sık kullanılan yapılardır ve bu yüzden kesinlikle mantığını iyi öğrenmelisiniz. Konuyu pekiştirmek için sitemizde ki örnek sorular ve çözümlerine göz atmanızı tavsiye ederiz.

  • C Programlama Dili Operatörler ve Kullanımları

    C Programlama Dili Operatörler ve Kullanımları

    Her programlama dilinde olduğu gibi C programlama dilinin temelleri de matematiksel işlemler ve karşılaştırmalara dayanmaktadır. Bu işlem ve karşılaştırmaları yapmak için kullandığımız terimlere ise operatör deriz, kendi başlarına herhangi bir ifade etmeyen bu operatörler birlikte kullanıldıkları değişkenler ile anlam ifade ederler. Örneğin “-“ operatörü bilgisayar için tek başına bir anlam ifade etmezken “5-3” bilgisayar için çıkarma işlemini ifade eder ve sonuç olarak 2’yi verir. Bu ve benzeri birçok işlemi, karşılaştırmayı yapmak için operatörler kullanılır, çoğu programlama dilinde operatörler farklılıklar gösterebileceği gibi genellikle birkaç istisna dışında aynıdırlar. Bu yazımızda ise sizlere C programla dilinde operatör çeşitlerinden ve kullanımlarından bahsedeceğiz.

    Atama Operatörü

    C programlama dilinde herhangi bir değişkene bir değer atamak için “=” operatörü kullanılır. Bir değişkene bir sabit atayabileceğiniz gibi başka bir değişkenin değerini bir değişken üzerine atayabilirsiniz.

    #include <stdio.h>
    int main(){
        int x,y;
        x=5;   // x değişkenine 5 değerini atıyor.
        y=x;   // y değişkenine x değişkenin değerini atıyor.
        return 0;
    }

    Aritmetik Operatörler

    Gerçek hayatta yaptığımız basit matematiksel işlemleri bilgisayara aktarmak için kullandığımız operatörlerdir. X ve Y’yi bir değişken olarak kabul edersek kullanımları ve işlevleri şu şekildedir.

    Operatör
    İşlev
    Kullanım
    +Toplamax+y
    Çıkarmax-y
    *Çarpmax*y
    /Bölmex/y
    %Mod Almax%y
    ++Sayıyı bir arttırmax++ veya ++x
    Sayıyı bir azaltmay– veya –y

    ++ veya — operatörleri genellikle gelecek konularda anlatacağımız döngüler içerisinde sayaç değerlerini her turda bir defa arttırmak için kullanılırlar. “x++” ile “++x” arasında ki temel fark şudur; “x++” ifadesi kullanıldığında x değişkeni mevcut değeriyle işleme girer ve işlem bittikten sonra x değişkeninin değeri bir arttırılır, “++x” kullanıldığında ise önce ilk değişkenin değeri bir arttırılır daha sonra işleme girilir. Benzer kullanım — operatörü içinde geçerlidir.

    #include <stdio.h>
    int main(){
        int x,y;
        x=5;    // x değişkenine 5 değerini atıyor.
        y=10;   // y değişkenine 10 değerini atıyor.
        printf("%d",x++);  // Önce x değişkenini ekrana yazdırıp sonra değerini bir arttıyor.
        printf("%d",++y);  // Önce y değişkeninin değerini bir attırıp sonra ekrana yazdırıyor.
        return 0;
    }

    Programın çıktısı şu şekildedir.

    5
    11

    Aritmetik Atama Operatörleri

    C programlama dilinde bulunan büyük kolaylıklardan birisi de aritmetik atama operatörlerinin sağladıkları faydalardır. Atama operatörü ile aritmetik operatörlerin işlevlerinin bir arada kullanıldığı bu operatörler kod yazarken bizlere büyük kolaylık sağlamakta.

    Operatör
    İşlev
    Kullanım
    Açılım
    +=Verilen iki sayıyı topla, sonucu soldakine ata.x+=yx=x+y
    -=Soldaki sayıdan sağdaki sayıyı çıkar, sonucu soldakine ata.x-=yx=x-y
    *=Verilen iki sayıyı çarp, sonucu soldakine ata.x*=yx=x*y
    /=Soldaki sayıyı sağdaki sayıya böl, sonucu soldakine ata.x/=yx=x/y
    %=Soldaki sayının sağdaki sayıya göre modunu, soldakine ata.x%=yx=x%y
    #include <stdio.h>
    int main(){
        int a,b,x,y,z;
        a=22;
        b=15;
        x=5;    
        y=10; 
        z=2;  
        a+=b; // a ile b değişkenini toplayıp sonucu a değişkenine atıyor.
        b-=x; // b değişkeninden x değişkenini çıkarıp sonucu b'ye atıyor.
        x*=y; // x ve y değişkenlerini çarpıp sonucu x değişkenine atıyor.
        y/=z; // y değişkenini z değişlenine bölüp sonucu y'ye atıyor.
        printf("%d - %d - %d - %d",a,b,x,y);  
        return 0;
    }

    Bu işlemlerin sonucu sırasıyla aşağıdaki gibidir. 

    37 - 10 - 50 - 5

    Karşılaştırma Operatörleri

    Bu operatörleri genellikle bir sonra ki derste göreceğimiz if yapıları veya döngüler de kullanacağınız, temel amaç verilen iki değişken veya değişken grubunu belirtilen şarta göre karşılaştırmak. Bu karşılaştırmalar ayrı türde ki değişkenler arasında olmalıdır.

    Operatör
    İşlev
    Kullanım
    >Büyüktürx>y
    >=Büyük eşittirx>=y
    <Küçüktürx<y
    <=Küçük eşittirx<=y
    ==Eşittirx==y
    !=Eşit değildirx!=y

    Yapılan karşılaştırmalar doğruysa “1” yanlışsa “0” sonucunu döndürür. Örnek kodlama aşağıdaki gibidir.

    #include <stdio.h>
    int main(){
        int a=10,b=11,c=9,d=11,e=9; 
        printf("%d %d %d %d %d %d", a<b, a>b, a>c, b==d, c!=e, c<=e);  
        return 0;
    }

    Sonuçlar aşağıda ki gibi ekrana yansıyacaktır.

    1 0 1 1 0 1

    Mantıksal Operatörler

    Mantıksal olarak değişken durumlarını karşılaştırmak için kullanılır, temel olarak matematikte ki ve, veya kullanımı ile aynıdır.
    Operatör
    İşlev
    Kullanım
    &&Mantıksal vex&&y
    ||Mantıksal veyax||y
    !Mantıksal değil!x
    Mantıksal operatörlerin sonucu şu şekilde olacaktır. Eğer x&&y kullanılıyor ise her iki değişkenin değeri sıfır ise sonuç sıfır olacaktır aksi halde sonuç bir olur, eğer x||y kullanılıyor ise her iki değişkenden biri sıfırdan farklı ise sonuç bir olacaktır aksi halde sonuç sıfır olur, eğer !x kullanılıyor ise değişkenin değeri bir ise sonuç sıfır, sıfır ise sonuç bir olacaktır.
    Bu dersimizde anlatacaklarımız bu kadar, bundan sonra temel olarak kullanacağımız operatörler bunlardır. Birkaç tane daha gelişmiş operatör türü vardır ancak onlar konuları geldikçe açıklanacaktır, önümüzde ki dersimize if yapılarından devam edeceğiz.
  • C Dili Temel Giriş-Çıkış İşlemleri

    C Dili Temel Giriş-Çıkış İşlemleri

    C programlama dili ile ilgili derslerimize kaldığımız yerden devam ediyoruz, bu dersimiz de C programlama diline ait temel giriş-çıkış işlemleri nasıl yapılır onları anlatacağız. Öncelikle bir önce ki derste bahsettiğimiz gibi C programlama dili gereksiz fonksiyonların boşuna yer işgal etmemesi adına bu tarz fonksiyonlar kütüphaneler aracılığıyla ihtiyaç duyulması halinde çağırılarak kullanılabilecek şekilde tasarlanmıştı. Bizde temel giriş-çıkış işlemlerini gerçekleştirebilmek yani bu fonksiyonların çalışmalarını sağlayabilmek için öncelikle kod dosyamızın başında aşağıda ki kütüphane çağırma işlemini gerçekleştirmeliyiz.

    #include <stdio.h>

    Bu işlev “standart input output” kütüphanesini çağırarak bizim kodlamamız içerisinde temel giriş-çıkış işlemlerini gerçekleştirmemizi sağlayacaktır. C dilinde temel giriş birimi klavye olmakla beraber, standart çıkış birimi ise ekrandır. Şimdi programımızı kullanacak kullanıcılardan nasıl veri alabileceğimiz ve sonuçları kullanıcılara nasıl gösterebileceğimize bir bakalım.

    Standart Giriş Fonksiyonları

    Standart olarak C programlama dilinde programımızı kullanacak kullanıcılardan veri almak için temel olarak scanf() ve gets() fonksiyonlarını kullanırız. gets() fonksiyonu daha çok karakter dizilerinde (string) kullanıldığı için, kullanımı daha sonra detaylı olarak anlatılacaktır. Şimdi gelelim scanf() fonksiyonumuzun kullanım yapısına;

    scanf(“%degiskenturu”, &degiskenadi);

    scanf() fonksiyonumuz yukarıda ki örnekte gösterildiği gibi kullanılmaktadır. İlk bölümde ki tırnak işareti bulunan alanda değişkenin türünü belirtmekteyiz, değişkenin türünü belirtirken başına % işareti koymayı unutmamalıyız! Diğer bölüme geçtiğimizde ise kullanıcıdan alacağımız değeri saklayacağımız değişkenin adını belirtiyoruz. Bu bölümde ise değişken isimlerimizin başına & işareti koymayı unutmamalıyız, C dilinde en çok karşılaşılan hatalardan birisidir. Değişken türlerini daha önce ki dersimizde gördüğümüz için bu fonksiyonun kullanımı ile ilgili birkaç örneği şu şekilde verebiliriz.

    Standart Çıkış Fonksiyonları

    Şimdi ise kullanıcıdan değerleri aldık peki aldığımız değerleri işledikten sonra oluşan sonuçları kullanıcıya nasıl göstereceğiz bunu öğrenelim. Öncelikle giriş fonksiyonlarında olduğu gibi çıkış fonksiyonlarında da ağırlıkla kullandığımız iki tane fonksiyon var; printf() ve puts(). puts() fonksiyonunun kullanımı daha çok stringler ile ilgili olduğu için kullanımı o konu içerisinde detaylı olarak açıklanacaktır. printf() fonksiyonumuz aşağıda ki yapıda kullanılmaktadır.

    printf(“istegebagliyazi %degiskenturu”, degiskenadi);

    Yapıda gördüğümüz gibi bu sefer bu fonksiyonun içerisinde normal yazı da yazabiliyoruz. Bu fonksiyon ile ister sadece yazı yazabiliriz, ister sadece değişken türünü gösterebiliriz, istersek de her ikisini bir arada kullanabiliriz. Fonksiyonumuzun içerisinde degişken türlerini belirtirken başlarında % kullanmayı unutmamalıyız, diğer yandan da “scanf();” fonksiyonundan farklı olarak “printf();” fonksiyonumuzda degişken adlarından önce & işareti kullanmıyoruz! printf(); fonksiyonunun kullanımına dair örnekleri aşağıda ki görselde bulabilirsiniz.

    Ekrana yazdırma işlemlerinde eğer satır atlamak isteseniz “n” ifadesini yazı içerisinde kullandığınızda ifade bir satır aşağı kayacaktır. İfadeyi yazıya bitişik yazmanız önemli değildir. Örneğin;

    printf("\nToplam: %d",toplam);
    

    C ile ilgili bu dersin de sonuna geldik, aklınıza takıldığınız yerleri sormak için veya eklemeler yapmak için yorum bölümünü kullanabilirsiniz. Bir sonraki dersimizle eğitime kaldığımız yerden devam edeceğiz.

  • C Programlama Dili Değişkenler

    C Programlama Dili Değişkenler

    C programlama dilini kullanırken kullanıcıdan alacağımız verileri saklayacağımız veya yaptığımız işlem sonuçlarını saklayacağımız veri türlerine (değişken) ihtiyaç duymaktayız. Değişkenler dediğimiz bu veri türleri, kullanıcıdan alınacak veriye veya üzerinde işlem yapılan değerlere göre bellek üzerinde verileri kayıt altında tutmak için açılan alanlardır. Değişkenler temel olarak saklayabilecekleri veri türlerine bağlı olarak birkaç ana türe ayrılmaktadır.

    Basit Değişken (Veri) Türleri

    • int : tamsayı türünde ki verileri saklamak için kullanılır. (4 byte alan kaplar.)
    • float : kesirli sayıları saklamak için kullanılır. (4 byte alan kaplar.)
    • double : kesirli sayıları (daha büyük) saklamak için kullanılır. (8 byte alan kaplar.)
    • char : karakter (harf vb.) saklamak için kullanılır (1 byte alan kaplar.)
    • enum : değer içermeyen veriler.

    Bazı değişken türleri de kendi içlerinde short, long, signed, unsigned olarak dört farklı şekilde nitelendirilebiliyor. Bu niteliklerin ne olduklarını ve hangi aralıklarını içerdiklerini temel programlama derslerimizden öğrenebilirsiniz.

    Kodlamalarda, özellikle giriş-çıkış işlemlerinde (gelecek dersin konusu) değişkenleri aşağıda ki kısaltmaları kullanarak ifade edeceğiz.

    • int : %d
    • float: %f 
    • double: %lf 
    • char: %c

    İlerleyen konularla birlikte string gibi başka değişken türleri ve ifade ediliş biçimleri de göreceğiz.

    Değişken Tanımlama

    Temel olarak değişken tanımlama aşağıda ki kalıba uygun olarak yapılır;
    degiskenturu degiskenadi;

    Eğer birden fazla değişken mevcut ise bunlar arasına virgül koyulur;
    degiskenturu degiskenadi, degiskenadi2;

    Eğer bir değişkene başlangıç için bir  değer atamak isterseniz şu şekilde atama yapabilirsiniz;
    degistkenturu degiskenadi=deger;

    Değişkenlerin kullanımı hakkında daha detaylı örneklere aşağıda ki resimden ulaşabilirsiniz.

     

    Unutmayın:

    • Değişken isimleri rakamla başlamaz. (rakamla başlayan değişken türleri ileri seviye programlama da farklı amaçlar için kullanılabilmektedir.)
    • Değişken isimleri büyük-küçük harf duyarlılığına sahiptir. Örneğin “sayi” değişkeni ile “Sayi” değişkeni aynı değildir.
    Değişkenler dersimizde temel olarak anlatılacaklar bunlardır. Zaman içerisine konuda eklemeler veya çıkarmalar çıkarmalar olabilir. Herhangi bir sorunuz için veya eklemek istediğiniz bir şey için yorum bölümünü kullanabilirsiniz.