DİZİLER Bellekte sıralı bir şekilde bulunan ve aynı türden bilgilerin saklandığı veri yapısına dizi (array) denir. Örneğin kullanıcıdan 7 kişinin not ortalamasını almak istiyoruz. Bu durumda; int ortalama1, ortalama2, ortalama3, ortalama4, ortalama5, ortalama6, ortalama6; şeklinde değişkenlerimizi tanımlamamız gerekiyor. İşte bu durumda dizileri kullanmak işlerimizi kolaylaştıracaktır: int ortalama[7]; /* şeklinde 0’dan başlarayak 6’ya kadar giden 7 elemanlı bir dizi tanımı, yukarıdaki değişken tanımlamamız ile aynı işlevi görecektir.
int ortalama[7]; TEK BOYUTLU DİZİLER DİZİ BELLEK Ortalama[0] 1. ortalama Ortalama[1] 2. ortalama Ortalama[2] 3. Ortalama Ortalama[3] 4. Ortalama Ortalama[4] 5. Ortalama Ortalama[5] 6. Ortalama Ortalama[6] 7. ortalama int ortalama[7]; TEK BOYUTLU DİZİLER Toplu olarak bir grup halinde bulunan sayı veya karakter verilerini içeren dizilere tek boyutlu diziler denir. Diziler de bir veri türü olduğu için doğal olarak bunlarında değişkenler gibi tanımlanmaları gerekmektedir.
C++ da dizi tanımlaması: int a[100]; Dizinin tipi Dizinin Adı Dizinin boyutu (Dizi elemanlarının tipi ) (Dizideki Eleman Sayısı) Örnekler: int sayilar[10]; // bu ifade ile 10 adet tamsayıdan oluşan bir dizi tanımlandı. char harfler[5]; //bu ifade ile 5 adet karakterden oluşan bir dizi tanımlandı. double x[20]; 20 elemanlı ve elemanları double türünden olan bir dizi tanımlandı. int a[50], b[30], c[10]; //a,b ve elemanları tam sayı türünden olan dizilerdir. int a[50], b,x;
Diziler indeks mantığı ile çalışmaktadır Diziler indeks mantığı ile çalışmaktadır. Bir dizideki her bir elemana bir index verilir. Ancak indexler sıfırdan başlayarak ilerler. Bu nedenle bir dizinin ilk elemanı aslında sıfırıncı indextir. Bunun nedeni de dijital ortamda sayma işleminin 1’den değil sıfırdan başlamasıdır.
Örnek: #include <iostream> using namespace std; int main(){ int a[4]; a[0]=15; a[1]=25; a[2]=15; a[3]=25; cout<<"Dizi elemanları asagida listelenmistir:"<<endl; cout<<a[0]<<endl<<a[1]<<endl<<a[2]<<endl<<a[3]<<endl; system("pause"); return 0; }
Örnek: #include <iostream> using namespace std; int main (){ int a[4]={15,25,67,43 }; cout<<a[0]<<endl<<a[1]<<endl<<a[2]<<endl<<a[3]; system("pause"); return 0; }
Örnek: #include<iostream> using namespace std; int main(){ int a[6]={15,25,67,43,55,66}; for(int i=0;i<6;i++){ cout<<a[i]<<endl; } system("pause"); return 0;
Örnek: #include<iostream> using namespace std; int main(){ char harf[6]={'E','d','i','r','n','e'}; for(int i=5;i>=0; i--){ cout<<harf[i]<<endl; } system("pause"); return 0;
Eğer int a[4]={0}; tarzında bir ifade kullanırsak bütün değişkenler 0 değerini alır. #include<iostream> using namespace std; int main(){ int toplam=0; int sayi[3]={3,2,1}; for(int i=0;i<3;i++){ toplam=toplam+sayi[i];//bu ifade toplam+sayi[i] şeklinde de yazılabilirdi. } cout<<"Dizideki sayilarin toplami:"<<toplam<<endl; system("pause"); return 0;
#include<iostream> using namespace std; int main(){ char isim1[6]={'Y','A','G','M','U','R'}; char isim2 [4]={'U','M','U','T'}; for(int i;i<4;i++){ isim1[i]=isim2[i]; } for(int i=0;i<6;i++){ cout<<isim1[i]; cout<<endl; system("pause"); return 0;
ÇOK BOYUTLU DİZİLER Çok boyutlu dizilerin tanımlanması da mantık olarak tek boyutlu dizilerle aynı şekildedir. Çok boyutlu diziler, matris mantığı ile çalışırlar. Bu nedenle iki adet farklı indeks kullanılır. Birinci indeks satır elemanlarını tutarken, ikinci indeks sütun elemanlarını tutacaktır. (Veri tipi) (Dizinin adı[][]) veya (Veri tipi) (Dizinin adı[][]={ }; şeklinde tanımlanabilir. Örneğin; int sayilar[ ][ ]; int sayi[3][3]={{1,4,7},{2,5,8},{3,6,9}};
int sayi[3][3]={{1,4,7},{2,5,8},{3,6,9}}; Bu durumda şöyle biz sayı dizisi oluşturulmuş olur: sayi[0][0]=1 sayi[0][1]=4 sayi[0][2]=7 sayi[1][0]=2 sayi[1][1]=5 sayi[1][2]=8 sayi[2][0]=3 sayi[2][1]=6 sayi[2][2]=9
#include<iostream> using namespace std; int main(){ int sayi[4][2]={{1,2},{3,5},{4,2},{1,0}}; cout<<"Dizi elemanlari:\n"; for(int i=0;i<4;i++){ for(int j=0;j<2;j++){ cout<<"["<<i<<"]["<<j<<"]:"; cout<<sayi[i][j]<<endl; } system("pause"); return 0;