C++ programlama

Programlama ile alakalı öğrenmeniz gereken bilgiler kaynağı

30.03.2016

IDE Nedir?

Hiç yorum yok :

Top 10 IDE’s For C_C++

IDE (Integrated Development Environment)

IDE, "integrated development environment" kelimelerinin kısaltılmışıdır. Türkçesi ise "tümleşik geliştirme ortamı"dır. 

IDE bilgisayar programcılarının hızlı ve rahat bir şekilde yazılım geliştirebilmesini amaçlayan, geliştirme sürecini organize edebilen birçok araç ile birlikte geliştirme sürecinin verimli kullanılmasına katkıda bulunan araçların tamamını içerisinde barındıran bir yazılım türüdür.

Yazılımcıların programlamada kullandığı en önemli araç IDE lerdir. Hangi IDE yi kullanacağını seçme bir yazılımcı için çok önemli bir konudur. Çünkü yazılımcının seçtiği IDE ye göre kodun yazılma kolaylığı, derleme kalitesine de değişir. Bu da demek oluyor ki seçtiğimiz IDE ye göre bizim programlamayı sevmemiz değişecektir. Bu yüzden programa yapacağımız IDE yi seçerken özelliklerini iyi bir şekilde araştırmalıyız. Peki bu özellikler nelerdir?

IDE leri bir metin editörlerinden farklı yapan özellikler vardır. Bu özellikler:

  • Derleyici, yorumlayıcı
  • Hata ayıklama (Debugging) mekanizması
  • Programlama diline göre sözdizimi renklendirmesi yapabilen bir kod yazım editörü
  • Birden farklı kod dosyalarının eşzamanlı görünümü
  • Yazılımın derlenmesi, bağlanması, çalışmaya tümüyle hazır hale gelmesi
  • Birçok işi yapabilmesi için küçük araç gereç

Verilen özellikler IDE leri metin belgelerinden ayırır. Bu özelliklerin kalitesine göre IDE lerin popülerliği de artar. Günümüzde en çok kullanılan IDE ler : Eclipse, Code:Blocks, GNAT Programming Studio, CodeLite, NetBeans, Qt Creator, Dev C++, C++ Builder, Anjuta, MonoDevelop  


29.03.2016

Global ve Local Değişkenler

2 yorum :
Global ve Local

C++ Değişkenlerin Etkili Olduğu Alanlar

Global ve local değişkenlerin kullanıldığı etki alanı vardır. Bir değişkeni kendi etki alanı altında kullanmalıyız. Bir yerde değişken tanımlayıp diğer farklı yerde kullanmaya çalışırsak program derleme hatası verir. Örneğin for içinde tanımladığımız değişkenleri for un dışında kullanamayız. While, if ve fonksiyonlarda da bu böyledir.

Etki alanlarını iki grupta toplayabiliriz:

Blok tanınabilirlik alanı. (Block scope): Bir değişkenin tanımlandıktan sonra, derleyici tarafından, yalnızca belirli bir blok içinde tanınabilmesidir.
Dosya tanınabilirlik alanı (File scope) : Bir değişkenin tanımlandıktan sonra tüm kaynak dosya içinde, yani tanımlanan tüm fonksiyonların hepsinin içerisinde tanınabilmesidir.


Değişkenleri de tanınabilirlik alanlarına göre ikiye ayırabiliriz :



Yerel değişkenler (local variables)
Global değişkenler (global variables)


Yerel Değişkenler (Local Variables)

Fonksiyonların içinde tanımlanan değişkenlere yerel değişkenler denir. Yerel değişkenlere sadece içinde olduğu fonsiyonlardan erişilir. Kısacası süslü parantezler ( {} ) içerisinde tanımlanan değişkenler yine o parantezler içerisinde geçerlidir. For gibi operatörlerde tek satırla yazılan kodlarda süslü parantez yoktur. Ama biz onu süslü parantez içinde olduğunu düşüneceğiz. Yani tek satırlık for, if, while gibi operatörlerde tanımlanan değişkenleri o operatörün dışında kullanamayız.

Operatör içinde operatör olan durumlar da vardır. Bu durumlarda kullanılan bir yerel değişken o operatördeki tanımlanmış bir değişkeni ifade edebilir veya kullanıldığı operatörü içine alan bir operatörde tanımlanmış bir değişkeni ifade eder. 

Aynı isimli değişkenler aynı operatörlerde tanımlanamaz ama iç içe tanımlanmış operatörlerde tanımlanabilir. Bu durumda x isminde tanımlanmış bir değişken en son tanımlanmış x ismindeki değişkeni ifade eder.

Örnek 

int main() {
    
    {
        int sonuc = 10;
        cout << sonuc;
        {
            int sonuc = 20;
            cout << sonuc;
        }
    }
    
}
Burada iki tane sonuc yerel değişkeni tanımladık. İlk sonuc değişkeni birinci ve ikinci parantezde kullanılabilir, ikinci sonuc değişkeni ise ikinci parantezde kullanılabilir.

Yerel değişkenlerin tanımlandığı yerleri daha iyi anlamak için doğru ve yanlış kullanımlarıyla ilgili örnek verelim.

Yanlış Kullanım

int main() {
    
    int x = 5;
    if (x==5) {
        int dogru = 1;
    }
    else int dogru = 0;
    cout << dogru;
    
}
dogru değişkenini if içinde tanımladıysak if içinde kullanmak zorundayız. Yukarıda olduğu gibi cout << dogru yazarak if dışında kullanırsak derleme hatası verir. Peki bu kodun doğrusu nasıl yazılır?

Doğru Kullanım

int main() {
    
    int x = 5;
    int dogru;
    if (x==5) {
        dogru = 1;
    }
    else dogru = 0;
    cout << dogru;
    
}

dogru değişkenini main fonksiyonunda kullanılabilir olarak tanımladık. Böylelikle if ve else içinde de kullanılabilir oldu. 


Tanımlanmış bir yerel değişkeni ondan önce kullanamayız.

Örnekler

int main() {
    
    int a;
    float a;
    
}

Aynı etki alanda iki tane aynı isimli değişken tanımlanmıştır. Yanlış kullanım

Etki Alanları Örnek

int main() {
    
    // a nın etki alanı değil
    
    int a;
    
    // a nın etki alanı
    
    {
        // a nın etki alanı
        // b nin etki alanı değil

        int b;
        
        // a nın etki alanı
        // b nin etki alanı
        
        {
            // a nın etki alanı
            // b nin etki alanı
            // c nin etki alanı değil
            
            int c;
            
            // a nın etki alanı
            // b nin etki alanı
            // c nin etki alanı

        }
    }
}

Farklı void, int vb. fonksiyonlarda aynı isimli yerel değişkenler tanımlanabilir ama tanımlanan değişkenler kendi fonksiyonundan çağrılabilir.

void ornek()
{
    int  k;

}

void ornek1()
{
    int  k;
    
}

void ornek2()
{
    int  k;
    
}

Global Değişkenler (Global Variables)

Tüm fonksiyonların dışında tanımlanan değişkenlere global değişkenler denir. Bu tür değişkenler tanımlandıktan sonraki her yerde kullanılabilir.

Örnek

#include <iostream>

using namespace std;

// global değişken burada tanımlanabilir

int a;

void ornek()
{
    // a burada kullanılabilir
    // b burada kullanılamaz

}

// global değişken burada tanımlanabilir

void ornek1()
{
    // a burada kullanılabilir
    // b burada kullanılamaz

}

// global değişken burada tanımlanabilir

int b;

void ornek2()
{
    // a burada kullanılabilir
    // b burada kullanılabilir

    
}

// global değişken burada tanımlanabilir

int main() {
    
    // a burada kullanılabilir
    // b burada kullanılabilir

}

Not : Yerel değişkenler etki alanı olarak global değişkenlerden büyüktür. Yani aynı isimli değişken hem global hem de yerel olarak tanımlanmış ise yerel olanın olduğu operatörde yerel olanın etkisi olacaktır. Tabiki yerel değişkenin altında olan yer o yerel değişkenin etki alanına dahildir. Bir operatörde yerel değişkenden önce o isimde bir değişken kullanılırsa global değişkenin etki alanına girer.


25.03.2016

2016 Mart En Çok Kullanılan Programlama Dilleri

Hiç yorum yok :
Yazılım endüstrisinin hızlı değişmesi sonucu kullanılan programlama dilleri de değişir. 2016 Mart'ta en çok kullanılan 10 programlama dillerine baktığımız zaman fazla bir değişiklik olmadığını görürüz. Tek farklılık Visual Basic, PHP ve Perl dillerinin ilk 10'da C#, Python ve JavaScript dilleri ile birlikte yer değiştirmesidir.

Objective-C son 10 yıldır ilk 10'a girmişti hatta 3. sıraya kadar yükselmişti. Ama Apple'ın duyurusundan hemen sonra Objective-C ile Swift yer değiştirdi.

Mar 2016Mar 2015ChangeProgramming LanguageRatingsChange
12changeJava20.528%+4.95%
21changeC14.600%-2.04%
34changeC++6.721%+0.09%
45changeC#4.271%-0.65%
58changePython4.257%+1.64%
66PHP2.768%-1.23%
79changeVisual Basic .NET2.561%+0.24%
87changeJavaScript2.333%-1.30%
912changePerl2.251%+0.92%
1018changeRuby2.238%+1.21%
1113changeDelphi/Object Pascal2.005%+0.85%
1228changeAssembly language1.847%+1.23%
1310changeVisual Basic1.674%-0.28%
1423changeSwift1.587%+0.77%
153changeObjective-C1.461%-5.23%
1620changeR1.285%+0.33%
1736changeGroovy1.193%+0.78%
1819changeMATLAB1.193%+0.19%
1917changePL/SQL1.193%+0.16%
2031changeD1.139%+0.64%

22.03.2016

Değişken İsimlerinin Tanımlanması

Hiç yorum yok :
değişkenler

Değişken İsimleri Tanımlarken Dikkat Edilmesi Gerekenler

Değişken isimlerini istediğimiz şekilde oluşturamayız. Değişken isimleri oluşturmanın da kuralları vardır. Bu kuralları şu şekilde sıralayabiliriz:
  • Değişken isimleri önceden bilgisayarda tanımlanmış isimler olmamalı. (int, void, return)
  • Değişken isimleri harfler (büyük harf veya küçük harf), sayılar ve alttan tire (_) ile oluşturulur. Yani semboller (+, *, - , / vb.) içeremez.
  • Değişken isimleri rakam ile başlayamaz.
  • Değişken isimleri büyük küçük harflere duyarlıdır. Yani bir kelime büyük harf ile başlarsa farklı bir tanımlama, küçük harf ile başlarsa farklı bir tanımlama olur. (int value ile int vAluE farklı tanımlama)
  • Değişken isimleri arasında boşluk olmamalıdır. (int araba hizi; // yanlış kullanım)
Tanımlanan değişken bir kelime olacaksa hepsini küçük harf ile yapmamız kodumuzun anlaşılabiliriliği açısından daha iyi olacaktır.

int deger; // daha kolay yazılabilir ve akılda tutulabilir
int Deger; // kullanımı daha zor olur

Aynı şekilde bir tanımlamanın harflerini büyüterek veya küçülterek yeni bir tane isim tanımlamamız kullanılabilirliği açısından daha zor olacaktır.

Eğer değişken ismini iki kelimeden oluşturmak istiyorsak şu şekilde yapabiliriz.

int arabaHizi;
int araba_hizi;

int atisSüresi;
int atis_süresi;


Yukarıda gösterilen iki türü de kullanabiliriz. Böylelikle değişkenler daha kolay aklımızda kalabilir. Koda bakıldığı zaman anlaşılabilirliği daha kolay olur.

21.03.2016

Birleşik ve İlişkisel Operatörler (&& || !)

Hiç yorum yok :
Birleşik ve İlişkisel Operatörler

İlişkisel (Relational) Operatörler

Bir koşulun doğruluğunu kontrol etmek için kullandığımız operatörlere ilişkisel operatörler denir. Bu operatörler aşağıda verilmiştir.

<
Küçüktür
>
Büyüktür
==
Eşittir
<=
Küçük eşittir
>=
Büyük eşittir
!=
Eşit değildir

Birleşik (Compound) Operatörler

Kontrol edeceğimiz koşul, tek bir parametreye bağlı olmadığı zaman birleşik operatörleri kullanmamız gerekir. Örneğin; bir sayının 10'dan büyük olup olmadığını tek bir parametre ile karşılaştırabiliriz ama 20'den küçük olup olmadığını da anlamak için ikinci parametreye ihtiyacımız olur, o zaman Birleşik/Birleştirici Operatörler'i kullanmamız uygun olacaktır.

Birleşik operator'ler aşağıdaki gibidir:
&&
and
ve
||
or
veya
!
not
tersi


Bu operatörlerin mantıksal (logical) doğruluk tablosu da şu şekildedir:

p
q
p&&q
p||q
!p
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0



Örnek 1


bir sayının 10 ile 20 arasında olup olmadığını bulmak istiyorsak birleşik operatörleri şöyle kullanırız:


int main() {
    
    int a = 0;
    cin >> a;
    if (a>10 && a<20cout << "10 ile 20 arasında";
    else cout << "10 ile 20 arasında değil";
    

}

Örnek 2


Bir sayının 0 olup olmadığını kontrol etmek için ! işaretini kullanırız:


int main() {
    
    int a = 0;
    cin >> a;
    if (!a) cout << "sayı 0";
    else cout << "sayı 0 değil";
    

}

Burada da görüldüğü gibi bir sayını başına ! işareti getirilirse sayının tersi alınır. Yani sayı 0 ise 1 olur sıfırdan farklı ise 0 olur. Negatif bir sayının tersi de 0 olur.

15.03.2016

For Döngüsü

Hiç yorum yok :
For Döngüsü

for(ifade1 ; ifade2 ; ifade3) {
işlem;
}

for dongüsünde ilk olarak ifade1 yapılır ve ifade1 bir daha döngü sırasındayken yapılmaz. Sonra ifade2'nin doğruluğu olursa işlem'i yapar ve son olarak ifade3'ü yapar. Döngü böyle gerçekleşir.


ilk olarak ifade1-sadece başlangıçta-

ifade2'nin doğruluğu - işlem - ifade3


For döngüsünde ifadelerin arasına noktalı virgül konulmasına dikkat edilmelidir. Konulmazsa derleme hatası verecektir.



Eğer for un içinde break yoksa döngü ifade2'nin yanlış olmasıyla sonlanır. İfade2 daima doğru olursa sonsuz bir döngü gerçekleşir.


For döngüsünün while döngüsü ile gösterimi



ifade1;

while(ifade2){
işlem;
ifade3;
}


Örnek


int main() {
    
    int a = 0;
    for (int i = 0; i < 10; i++) {
        a+=i;
    }
    cout << a;
    

}

a sayısı 1'den 9'a kadar olan sayılarla toplanır ve çıktı 45 olur. a sayısı 10 ile toplanmaz çünkü i < 10 olması durumunda a ile toplanır.

Üçlü Karşılaştırma Operatörü [? :]

Hiç yorum yok :
Üçlü Karşılaştırma Operatörü [? :]


? : Operatörü neden kullanılır?


? : operatörü, if-else operatörünün yerine kullanılır. if-else ile yazılan kod satırımızı hem kısaltmak hem de bu kodu daha kısa bir şekilde ifade etmek için ? : operatörü kullanılır.


? : Operatörü Kullanımı


Koşul ? işlem1 : işlem2;

? : operatörü, koşul sağlanırsa işlem1'i sağlanmazsa işlem2'yi yapar. Böylelikle if-else ile yapacağımız işlemi ? : operatörü ile tek satırda halletmiş olduk.

Örnek

int main() {
    
    int a;
    cin >> a;
    a>10 ? printf("sayı 10'dan büyük") : printf("sayı 10'dan küçük eşit");
    
}

Eğer girilen sayı 10 dan büyük ise ?'den sonraki işlemi değilse :'dan sonraki işlemi yapar.

13.03.2016

Switch-Case Operatörü

Hiç yorum yok :
Switch-Case Operarötü

Bir değeri birden fazla değerle karşılaştırmak istediğimizde switch-case operatörünü kullanacağız. Switch içerisinde yazan sayı hangi case ile aynıysa program o satırdan çalışmaya devam eder. Eğer hiçbir case ile uyuşmuyorsa default kısmına girer. Case içine yazılan sayılar birbirleri ile aynı olmamalıdır. Ayrıca bir case in sonunda break yoksa program switch fonksiyonunu yapmaya devam eder altındaki case i de çalıştırır.


Örnek

int main() {
    
    int a;
    cin >> a;
    
    switch (a) {
        case 1:
            cout << "1 girdiniz";
            break;
        case 2:
            cout << "2 girdiniz";
            break;
        default:
            cout << "sayınız 1 veya 2 değil";
            break;
    }
    

}

Girilen sayı 1 ise 1 girdiniz, 2 ise 2 girdiniz, ikisi de değilse sayınız 1 veya 2 değil yazar.


Case Sonuna Break Neden konulur?



int main() {
    
    int a;
    cin >> a;
    
    switch (a) {
        case 1:
            cout << "1 girdiniz ";
            
        case 2:
            cout << "2 girdiniz ";
            break;
        default:
            cout << "sayınız 1 veya 2 değil ";
            break;
    }
    
}

Eğer programımız böyle olsaydı yani case 1 de break olmasaydı girdi 1 olduğunda çıktı 1 girdiniz 2 girdiniz olacaktı. Bu hatayı yapmamaya dikkat edelim.

Switch-Case Operatöründe -default- kullanımı

Switch in içinde yazan değer hiçbir case ile eşleşmiyorsa default çağrılır. Bu durumu şu şekilde de düşünebiliriz: case ler if, else if ; default ise else. Yani hiçbir if e girilmezse en son olarak else içine girilir.