Sayfalar

26 Nisan 2015 Pazar

Diziler

          TEK BOYUTLU DİZİLER

Diziler işlerimizi oldukça kolaylaştırmaktadır. Şöyle ki birden dazla değer girileceğinde tek tek değişken ataması yapmak yerine yerine tek bir dizi kullanarak bu işi kolaylıkla halledebiliriz.

Örneğin 4 kişilik bir sınıfımız olsun bu sınıftaki her öğrencinin notlarını tek tek kaydetmemiz oldukça zor olacak. Diziler burada yardımımıza koşuyor. 4 elemanlı bir dizi oluşturarak işimizi rahatlıkla hallederiz. Buradaki sayının 4 değilde 100 olduğunu düşünün.

Dizileri tanımlamanın birden fazla yolu vardır.

1.- Gösterim:
Dizi[0]=12;
Dizi[1]=25;
Dizi[2]=36;

2.- Gösterim: 
Dizi[]={12,58,78};
Dizi[]={'E','k','r','a','n','c','i','k','t','i','s','i'};
Not: Bu şekilde tanımlama yaptığımızda dizinin boyutunu belirlemek zorunda kalmayız.Not: Dizilerin ilk indisi 1 değil 0'dır. Her dizinin ilk indisi 0'dır.

#include "stdafx.h"
#include <iostream>

using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
    int dizi[4];
    cout << "Not giriniz"<<endl;
    for (int i = 0; i < 4; i++)
    {
        cin >> dizi[i];
    }
    for (int i = 0; i < 4; i++)
    {
        cout << dizi[i]<<"  ";
    }
    system("pause");
    return 0;
}





ÇOK BOYUTLU DİZİLER

 Mantık olarak tanımlama aynıdır. Çok boyutlu diziler matris mantığı ile çalıştıklarından dolayı birinci indeks satır, ikinci indeks sütunları temsil etmektedir.

Not: Küçük bir ayrıntı olarak dizi tanımlarken ilk indisin içinin boş bırakılabileceğini bilelim. Nasıl kullanıldığını buraya bir satır kod yazarak göstereceğim. 
dizi[][15]={"Pazartesi","Salı","Çarşamba"}; Siz ekledikçe derleyici ilk kutuyu kendisi dolduracaktır.

dizi[a][i]     Dizide istediğimiz indise bu şekilde ulaşıyoruz. Kaçıncı sütun ve kaçıncı satır olduğunu dışarıdan girebiliyoruz.


#include "stdafx.h"
#include <iostream>

using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
    int dizi[3][3];
    cout << "Not giriniz"<<endl;
    for (int i = 0; i < 3; i++)
    {
        for (int a = 0; a <3 ;a++)
        {
            cin >> dizi[a][i];
        }
    }
    for (int i = 0; i < 3; i++)
    {
        for (int a = 0;a<3;a++)
        {
            cout << dizi[a][i] << "  ";  //Dizide istediğimiz indise bu şekilde ulaşıyoruz.
        }
        cout << endl;
    }
    system("pause");
    return 0;
}


Not: Yukarıdaki bütün kodlar Visual Studio da yazılmıştır. Kodları direkt olarak kopyalayarak çalıştırabilirsiniz.



25 Nisan 2015 Cumartesi

For

      For çok kullanışlı bir kod olup neredeyse her yerde kullanılabilir. Kullanım alanını sınırlamak pek mümkün değildir, bir çok şey yapılabilir.

      Öncelikle for kodunun yazımının nasıl olduğuna bakalım.

 for(Değer Atamaları ; Koşul ; Artırma yada Azaltma)
{
 Komutlar;
}

-for kendinden sonraki gelen ilk satırı kendi satırı olarak kullanır, buraya süslü parantez açarak içine başka komutlarda yerleştirilebilir.
-Koşul kısmı boş bırakılırsa derleyici buraya her zaman 1 (true) değerini koyar ve sonsuz döngüye girer. Fakat komut satırına başka koşullar yazarak çıkış sağlanabilir.

#include "stdafx.h"
#include <iostream>

using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
    int sayi=0,maxsayi;
    cout << "Tepe deger...: ";
    cin >> maxsayi;
    for (sayi = 0;   ; sayi += 2)
    {
        if (sayi >= maxsayi+1)
            break;
        cout << sayi<<"  ";
    }
    system("pause");
    return 0;
}


-Değer atamasını for içinde yapmak yerine dışarıda da yapabilirsiniz.

#include "stdafx.h"
#include <iostream>

using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
    int sayi=0,maxsayi;
    cout << "Tepe deger...: ";
    cin >> maxsayi;
    for (  ;sayi<=maxsayi; sayi += 2) //Değer kısmını boş bıraktık çünkü zaten en üstte tanımlamıştık.
    {
        cout << sayi<<"  ";
    }
    system("pause");
    return 0;
}

-Artma yada azalma kısmı boş bırakılabilir.

#include "stdafx.h"
#include <iostream>

using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
    int sayi=0,maxsayi;
    cout << "Tepe deger...: ";
    cin >> maxsayi;
    for (sayi=0;sayi<=maxsayi;  )  //Artırma işlemini bir alt satırda yaptık.
    {
        cout << sayi<<"  ";
        sayi += 2;
    }
    system("pause");
    return 0;
}


Yukarıda for döngüsünün kulanım şekillerinde bazılarını anlattık. for döngüsünü şimdi tam olarak nasıl kullanıldığına dair bir kaç örnek yazalım.

#include "stdafx.h"
#include <iostream>

using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
    int sayi=0,maxsayi;
    cout << "Tepe deger...: ";
    cin >> maxsayi;
    for (sayi = 0; sayi <= maxsayi; sayi += 2)
        cout << sayi<<"  ";
    system("pause");
    return 0;
}

 Not: Yukarıdaki bütün kodlar Visual Studio da yazılmıştır ve hepsinin ekran çıktısı aynıdır. Kodları direkt olarak kopyalayarak çalıştırabilirsiniz.

Do While

        Do while yapısı çok kullanılan bir yapı değildir.
        Kullanımını hemen bir örnekle anlatalım.

#include "stdafx.h"
#include <iostream>

using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
    int sayi=0,maxsayi;
    cout << "Tepe deger...: ";
    cin >> maxsayi;
    do
    {
        cout << sayi<<"  ";
        sayi += 2;
    }
    while (sayi <= maxsayi);
    system("pause");
    return 0;
}



Not: Kodlar Visual Studio da yazılmıştır. Kodu direkt kopyalayıp çalıştırabilirsiniz.

24 Nisan 2015 Cuma

Switch-case

          Swtich-case seçim aracıdır. Şöyle anlatayım; ekranda bir yazı belirdi ".... işlemini gerçekleştirmek için a'ya basınız, .... işlemi için b'ye basınız." yada ".... işlemini gerçekleştirmek için 1'e basınız, .... işlemi için 2'ye basınız." gibi bir ifade çıktı seçiminizi yaptıktan sonra bu yapımızla kolaylıkla seçme işlemini yapacağız. Kod üstünde gösterince daha rahat anlayacaksınız.

#include "iostream"
using namespace std;

int main()
{
    int a,b,c,sonuc=0;
    cout<<"1-Toplama\n2-Cikarma\n3-Carpma\n4-Bolme\n";
    cin>>a;
    if(a==1)
    {
    cout<<"Toplanacak sayilari giriniz"<<endl;
    cin>>b>>c;
    sonuc=b+c;
    cout<<"Sonucunuz...:"<<sonuc<<endl;
    }
    if(a==2)
    {
    cout<<"Cikarilacak sayilari giriniz"<<endl;
    cin>>b>>c;
   
    sonuc=b-c;
    cout<<"Sonucunuz...:"<<sonuc<<endl;
    }
    if(a==3)
    {
    cout<<"Carpilacak sayilari giriniz"<<endl;
    cin>>b>>c;
    sonuc=b*c;
    cout<<"Sonucunuz...:"<<sonuc<<endl;
    }
    if(a==4)
    {
    cout<<"Bolunecek sayilari giriniz"<<endl;
    cin>>b>>c;
    sonuc=b/c;
    cout<<"Sonucunuz...:"<<sonuc<<endl;
    }
   
    system("pause");
    return 0;
   
}
                                       

Bu kodda swtich-case çalışma mantığını analamanız için if kullandık switch-case kullanarak ise şöyle yapılır:

#include "iostream"
using namespace std;

int main()
{
    int a,b,c,sonuc=0;
    cout<<"1-Toplama\n2-Cikarma\n3-Carpma\n4-Bolme\n";
    cin>>a;
    switch(a) //Değer burada okunuyor. İlgili yere gönderiliyor.
{
    case 1: //Seçim bu ise buradaki kodu uyguluyor.
    {
    cout<<"Toplanacak sayilari giriniz"<<endl;
    cin>>b>>c;
    sonuc=b+c;
    cout<<"Sonucunuz...:"<<sonuc<<endl;
    }
    break;
    case 2:  //Seçim bu ise buradaki kodu uyguluyor.
    {
    cout<<"Cikarilacak sayilari giriniz"<<endl;
    cin>>b>>c;
   
    sonuc=b-c;
    cout<<"Sonucunuz...:"<<sonuc<<endl;
    }
    break;
    case 3:  //Seçim bu ise buradaki kodu uyguluyor.
    {
    cout<<"Carpilacak sayilari giriniz"<<endl;
    cin>>b>>c;
    sonuc=b*c;
    cout<<"Sonucunuz...:"<<sonuc<<endl;
    }
    break;
    case 4:  //Seçim bu ise buradaki kodu uyguluyor.
    {
    cout<<"Bolunecek sayilari giriniz"<<endl;
    cin>>b>>c;
    sonuc=b/c;
    cout<<"Sonucunuz...:"<<sonuc<<endl;
    }
    break;
    default:
    /* verilen değer dışında bir değer
    girilirse swtich buradaki işlemi yapar*/
    break; //En içteki fonksiyondan çıkmayı sağlar.
               //break dışında birde continue fonksiyonu var. Bu fonskiyonda devam etmeyi sağlar.
}
    system("pause");
    return 0;
   
}

 Not: Kodlar DevC++ da yazılmıştır. Kodu direkt kopyalayıp çalıştırabilirsiniz.
Basitce kullanımını görmüş olduk.

25 Şubat 2015 Çarşamba

While

Bu yazımızda while dögünüsünü işleyeceğiz.

While çok basit bir döngüdür. Eğer verdiğiniz değişkendeki değer şartı şağlıyorsa döngünün içine girilir.

Örnek olarak;

x=6;

while(x>5) /*x değeri 5 ten büyük bir sayı olduğu için içerisi 0 değerini alır yani yanlış olur bundan dolayı kod çalışmaz.*/
{

cout<<"Döngünün içindesiniz"<<endl;
}
Ve ya döngüye her türlü girmesinide sağlayabiliriz. Şarta 0 değeri yazılmadığı sürece derleyici her zaman şartı true olarak algılayacaktır ve döngünün içine girecektir.


Örnek olarak;

while(true)
{
cout<<"Sonsuz döngü"<<endl;
}

Bu döngüde ekrana sonsuz kere yazı yazılır. Programı kapatmadan çıkış yapılamaz.

Şimdi de bir ekran çıktısı yapalım.

0'dan 10'a kadar olan sayıları ekrana yazdıralım.

#include <iostream>
using namespace std;
int main()
{
int x=0;
while(x<=10) //x değeri 11 oluncaya kadar dönecek, 11 olduğunda program bitecek.
{
cout<<x<<endl;
x++;
}
system("pause");
return 0 ;
}


Not: Kodu DevC++ da yazılmıştır. Kodu direkt kopyalayıp çalıştırabilirsiniz.