11 Kasım 2016 Cuma

C++ Girilen Sayının En Büyük Değeri ve Baştan Sırası ile En Küçük Değeri ve Sondan Sırası

Kullanıcıdan alınan 10 tamsayı değerinin en büyük değeri ve baştan sırasını, en küçük değeri ve sondan sırasını ve girilen sıfır sayı miktarını hesaplayan program kodu.
#include <iostream>

using namespace std;

int main(){
    int a[10];
    int eb = 0, ek = 0;
    int bs = 0, ss = 0;
    int sifir = 0;

    for(int i=0; i<10; i++){
        cout << i+1 << ". sayi : ";
        cin >> a[i];

        if(i==0){
            eb = a[i];
            ek = a[i];
        }
        else if(eb <= a[i]){
            eb = a[i];
            bs = i+1;
        }
        else if(ek > a[i]){
            ek = a[i];
            ss = (10-(i+1))+1;
        }
        else if(a[i] == 0){
            sifir++;
        }
    }
    cout << endl;
    cout << "en buyuk deger : " << eb << endl;
    cout << "en buyuk degerin bastan sirasi : " << bs << endl;
    cout << endl;
    cout << "en kucuk deger : " << ek << endl;
    cout << "en kucuk degerin sondan sirasi : " << ss << endl;
    cout << endl;
    cout << "girilen sifir sayisi miktari : " << sifir;
    cout << endl;

    return 0;
}

C++ Girilen Pozitif, Negatif ve Sıfır Sayılarının Ayrı Ayrı Hesaplanması

Aşağıdaki program kodunda kullanıcı tarafından girilen 10 sayıdan pozitif olan sayıların miktarı ve toplamı, negatif olan sayıların miktarı ve toplamı ile sıfır girilen sayıların miktarı hesaplanmaktadır.
#include <iostream>

using namespace std;

int main(){
    int sayi[10];
    int pozitif = 0, negatif = 0, sifir = 0;
    int ptoplam = 0, ntoplam =0;

    for(int i=0;i<10;i++){
        cout << i+1 << ". sayi : ";
        cin>>sayi[i];
        if(sayi[i]>0){
            pozitif++;
            ptoplam += sayi[i];
        }else if(sayi[i]<0){
            negatif++;
            ntoplam += sayi[i];
        }else{
            sifir++;
        }
    }
    cout << endl;
    cout << "Pozitif girilen sayi miktari : " << pozitif << endl;
    cout << "Negatif girilen sayi miktari : " << negatif << endl;
    cout << "Sifir girilen sayi miktari : " << sifir << endl;
    cout << endl;
    cout << "Pozitif sayilarin toplami : " << ptoplam << endl;
    cout << "Negatif sayilarin toplami : " << ntoplam << endl;

    return 0;
}

C++ Matrisin Transpozu

#include <iostream>

using namespace std;

int main(){
    int m,n;
    cout << "m (satir sayisi) : ";
    cin >> m;

    cout << "m (sütun sayisi) : ";
    cin >> n;

    int x[m][n];
    int i,j;

    for(i=0;i<m;i++){
        for(j=0;j<n;j++){
            cout << "x[" << i+1 << "][" << j+1 << "] = ";
            cin >> x[i][j];
        }
    }
    for(j=0;j<n;j++){
        for(i=0;i<m;i++){
            cout << x[i][j];
            cout << " ";
        }
        cout << endl;
    }
    return 0;
}

10 Kasım 2016 Perşembe

C++ Karakterin ASCII Kodunu Bulma

#include <iostream>

using namespace std;

int main(){
    char asciikodu;

    cout << "Bir karakter gir : ";
    cin >> asciikodu;

    cout << "ASCII karakter kodu : " << (int)asciikodu;

    return 0;
}

C++ Girilen Sayının Pozitif - Negatif Kontrolü

#include <iostream>

using namespace std;

int main(){
    int sayi;

    cout << "Sayi gir : ";
    cin >> sayi;

    if(sayi > 0){
        cout << "sayi pozitif";
    }
    else if(sayi == 0){
        cout << "sayi nötr";
    }else{
        cout << "sayi negatif";
    }
    return 0;
}

C++ İki Sayının Toplamı

#include <iostream>

using namespace std;

int main(){
    int sayi1, sayi2;
    int sonuc;

    cout << "Sayi1 : ";
    cin >> sayi1;
    cout << "Sayi2 : ";
    cin >> sayi2;

    sonuc = sayi1 + sayi2;
    cout << "Sonuc : " << sonuc;

    return 0;
}

9 Kasım 2016 Çarşamba

warning: deprecated conversion from string constant to 'char*' Uyarısı Çözümü

MinGW derleyicisinde karşılaşabileceğimiz bir uyarı. Örnek olarak şekildeki gibi recursive fonksiyon yazdım ancak derleme sırasında warning: deprecated conversion from string constant to 'char*' bu uyarısı karşımıza çıktı.  MinGW derleyicisinde bu şekilde bir yazım desteklenmiyor eğer visual studio üzerinde derlerseniz böyle bir sorunla karşılaşılmaz. visual studio hakkında tam bir bilgim yok aslında uzun zamandır kullanmıyorum. Güncelleme sırasında 2012 sürümlerinden itibaren bu uyarıyı vs'de almakta muhtemel olabilir. Şimdi hatalı kodu görelim.
void reverse(char *p, int length)
{
    if(length == 0)
        return;
    cout << p[length-1];

    reverse(p,length-1);
}

int main(){
    
    reverse("merhaba",7);

    return 0;

}
Uyarının nedeni parametredeki karakter dizisinin const olarak tanımlanmamasında kaynaklandı. Doğru kullanım aşağıdaki gibidir.
void reverse(const char *p, int length)