C++ Diziler

Dizi(Array), sıralı bir şekilde bellek konumunda yer alan aynı tür verilerin tamamına denir. Dizi içerisinde veriler sıralı bir şekilde depolanır. Dizi, doğrusal bir veri yapısıdır.

Dizi yapısının bize sağladığı kolaylık ne? Örnek üzerinden düşünelim, yüz kişilik bir çalışan grubunun her birisinin yaşlarını kaydedip ortalamasını alan bir program yapmalıyız. Her yaş değerini depolamak için yüz tane değişken tanımlamak yerine bir dizi tanımlaması ile gereksiz tanımlamalardan kurtulmuş oluruz. Dizi içerisinde bulunan verilere indis ile ulaşabiliriz. Örneğin dizimizin boyutu a olsun. Bu durumda ilk elemanımız 0. indis konumunda, son elemanımız ise (a-1). indis konumunda olacaktır. Daha anlaşılır olması için aşağıdaki yapıyı inceleyin:
                    ---------------------------------------------------------
                    |       |       |       |       |       |       |       |
Dizi Öğeleri ->     |   12  |   1   |   4   |   14  |   7   |  80   |   15  |
                    |       |       |       |       |       |       |       |
                    ---------------------------------------------------------
İndis ->                 0      1       2       3       4       5       6
Diziler tek boyutlu olabildiği gibi çok boyutlu da olabilir. İlk önce tek boyutlu diziler üzerinden ilerleyeceğiz.

Dizi Tanımlama

Dizi tanımlaması aşağıdaki yapıya uygun şekilde yapılır.
veri_tipi dizi_ismi[dizi_boyutu];
Örneğin yaslar isminde int türünde bir dizi tanımlayalım. Boyutu ise 100 olsun.
int yaslar[100];
Derleyici, bu durumda diziye 100 adet int boyutunda bellekte yer tahsis edecektir.

Diziyi en başta tanımlarken değer ataması da yapabiliriz. Aşağıda olduğu gibi:
int a[] = {12,1,4,14,7,80,15};
int türünde olan a dizisinde boyut bildirmemize gerek yok. Bunun nedeni ise değer atamalarının yapılmasıdır. Derleyici diziye en başta atanan değerleri dizin olarak alacak ve dizinin toplam eleman sayısını hesaplayarak, bellekte o kadar yer tahsis edecektir. Değerler ise o tahsis edilen yerleri dolduracaktır. Yukarıda dizi yapısının temsil edildiği gibi.

Diziye Değer Atama

Diziye değer atamayı aşağı görüldüğü gibi en başta yapabiliriz.
int a[] = {12,1,4,14,7,80,15};
Bir diğer atama yöntemi ise şu şekilde olabilir:
int a[3];

int a[0] = 12;
int a[1] = 1;
int a[2] = 4;
a[0], a[1] ve a[2] aslına bakılırsa bir değişkendir.

Beş kişinin yaş ortalamasını bulmak için program kullanıcıdan beş kişininde yaşını istiyor. Daha sonrasında ise yaşların toplamı ile kişi sayısına bölümü ile ortalama bulunuyor.
#include <iostream>

using namespace std;

int main(){
    int yaslar[5];
    int toplamYas = 0;
    int ort;

    for(int i=0; i<5; i++){
        cout << "yasi gir: ";
        cin >> yaslar[i];
        toplamYas += yaslar[i];
    }

    ort = toplamYas / 5;
    cout << "Yas ortalamasi: " << ort;

    return 0; 
}
Dizi elemanlarının adresi ardışıktır. Örneğin integer türünde dizinin ilk elemanının adresi A ise ikinci elemanın adresi A+4'tür. 4 eklememizin sebebi int türünün 4 byte yer kaplamasından dolayıdır. Eğer double veri tipinde olsaydı ikinci adresi elde etmek için 8 eklememiz gerekirdi.

Hiç yorum yok:

Yorum Gönderme