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)

8 Kasım 2016 Salı

Chio Yöntemi Akış Diyagramı ve C++ Kodu


#include <iostream>
using namespace std;

int main(){
    int n;

    do{cout << "Matris boyutu..:";
        cin >> n;
    }while(n<2);

    int a[n][n];
    int b[n-1][n-1];

    for(int i=0;i<n;i++){
      for(int j=0;j<n;j++){
        cout << i + 1 << ".satır " << j + 1 << ".sütun = ";
        cin >> a[i][j];
        b[i][j]=0;
      }
    }

    int us=n-2;

    int sayac=0;

    do{
    for(int i=0;i<n;i++){
      for(int j=0;j<n;j++){
        b[i][j] = a[0][0]*a[i][j] - a[0][j]*a[i][0];
      }
    }
    for(int i=1;i<n;i++){
        for(int j=1;j<n;j++){
        a[i][j]=b[i][j];
        }
    }
    n--;
    us--;
    sayac++;

    }while(n > 2);

  int det=(int)(a[0][0]*a[1][1]-a[1][0]*a[0][1]);

    for(int y=0;y<sayac;y++){
        det*=1/(a[0][0]^us);
    }

    cout<<"determinant="<<det<<endl<<endl;
    return 0;
}


error: lvalue required as increment operand Hatası Çözümü

8. satırdaki işlem sonucu alınan hata.
#include <iostream>

using namespace std;

int main(){
    int sayi[] = {1,2,3,4,5,6,7,8,9,10};

    int* p = &sayi[0];

    cout << "*++p++ = " << *++p++ << endl;
 
    return 0;
}
Çözüm olarak yapılması gereken *++p++ işleminin doğru şekli *(++p)++ şeklinde kullanımıdır.

C++ İki Sayının Yer Değiştirmesi (Pointer)

#include <iostream>

using namespace std;

void Degistir(int*, int*);

int main(){
    int sayi1, sayi2;

    sayi1 = 34;
    sayi2 = 27;

    cout << "Sayi 1 : " << sayi1 << endl;
    cout << "Sayi 2 : " << sayi2 << endl;

    Degistir(&sayi1, &sayi2);

    cout << "Sayi 1 : " << sayi1 << endl;
    cout << "Sayi 2 : " << sayi2 << endl;

    return 0;
}

void Degistir(int* sayi1, int* sayi2){
    int temp = 0;
    temp = *sayi1;
    *sayi1 = *sayi2;
    *sayi2 = temp;
}

5 Kasım 2016 Cumartesi

error: 'atoi' was not declared in this scope Hatası Çözümü

atoi fonsksiyonunun tanımlı olması için stdlib kütüphanesini eklemelisiniz, aksi halde program derlenme sırasında error: 'atoi' was not declared in this scope hatasını verecektir.

#include <stdlib.h>

Ücretsiz Programlama Kitapları

Aşağıdaki linke giderek GitHub üzerinden paylaşılan İngilizce olan ücretsiz programlama kitaplarına ulaşabilirsiniz.

https://github.com/vhf/free-programming-books/blob/master/free-programming-books.md

3 Kasım 2016 Perşembe

Basit Sayı Tahmin Etme Oyunu | JavaScript | Uygulama 1

JavaScript Kodu

//Oyun Değişkenleri
var dogruSayi = 60; // translate: "correcNumber" - "dogruSayi" 
var oyuncuTahmini = 0; // translate: "playerGuess" - "oyuncuTahmini"

//giriş ve çıkış alanlar
var input = document.querySelector("#input");
var output = document.querySelector("#output");

//buton
var button = document.querySelector("button");
button.style.cursor = "pointer";
button.addEventListener("click", clickHandler, false);

function clickHandler(){
 oyunOyna();
}

function oyunOyna(){
 oyuncuTahmini = parseInt(input.value);

 if(oyuncuTahmini > dogruSayi)
 {
  output.innerHTML = "Çok Yüksek";
 }
 else if(oyuncuTahmini < dogruSayi)
 {
  output.innerHTML = "Çok Düşük";
 }
 else if(oyuncuTahmini === dogruSayi)
 {
  output.innerHTML = "Doğru Tahmin!";
 }
}

HTML Kodu

<p id="output">0-99 sayıları arasında bir sayı tahmin et.</p>
<input type="text" id="input" placeholder="Sayı tahmini girin...">
<button>Tahmin et</button>

2 Kasım 2016 Çarşamba

C++ Çarpım Tablosu (1-9)

#include <iostream>
#include <iomanip>

using namespace std;

int main(){
    int i,j;
    for(i=1;i<10;i++){
        for(j=1;j<10;j++){
            cout << i*j << setw(5);
        }
        cout << "\n";
    }
    return 0;
}

İç içe iki for döngüsü kullanarak 9 satır 9 sütun olacak şekilde çarpım sonuçlarını 1'den 9'a kadar düzgün bir şekilde yazdırdık. iomanip kütüphanesi ekleyerek setw fonksiyonunu çarpım tablosunun satır içerisindeki boşluklarını düzgün göstermek için kullandık.

jQuery Giriş

jQuery, bir JavaScript Kütüphanesidir. jQuery, JavaScript programlamayı büyük ölçüde kolaylaştırır. Öğrenmesi kolaydır.

jQuery kullanımının amacı çok daha kolay bir şekilde JavaScript'i web sitelerinde kullanabilmektir.

Bilmeniz Gereken Diller

  • HTML
  • CSS
  • JavaScript

jQuery'i öğrenmeden önce yukarıdaki dilleri bilmeniz gereklidir. Eğer bilmiyorsanız bu yazıyı okumanızın bir anlamı yoktur. Bilmiyorsanız öğrenin ve tekrar gelin.


jQuery Nedir?


jQuery daha az kodla, daha fazla iş yapabilme mantığıyla oluşturulmuş JavaScript kütüphanesidir. Biraz önce okunduğu gibi jQuery'de amaç web sitelerinde JavaScript'i çok daha kolay kullanabilmektir. JavaScript kodu ile yazılana birden fazla satırı, jQuery ile tek satır metod halinde yazabiliriz.


Neden jQuery?


Çok fazla JavaScript framework vardır. Ancak aralarında en popüler olanı jQuery'dir.
Teknoloji dünyasının birçok büyük şirketleri web sayfalarında bile kullanılmaktadır.

1 Kasım 2016 Salı

JavaScript Fonksiyon Örnekleri

Tek Argumentli Uygulama


JavaScript Kodu
function dayTime(txt){
 alert(txt);
}
HTML Kodu
<form>
    <input type="button" onclick="dayTime('Günaydın!')" value="Sabah">
    <input type="button" onclick="dayTime('Tünaydın')" value="Öğle">
    <input type="button" onclick="dayTime('İyi Geceler')" value="Akşam">
</form>


Çift Argumentli ve Dönüşlü (return) Uygulama


JavaScript Kodu
var x = topla(12,45);

function topla(x, y){
 return x + y;
}

document.getElementById("islem").innerHTML = x;
HTML Kodu
<p id="islem"></p>