nesneye yönelik programlama

advertisement
NESNEYE YÖNELİK
PROGRAMLAMA
Dizi Kavramı

Bellekte ardı arda yer alan aynı türden
nesneler kümesine dizi (array) denilir.

Bir dizi içerisindeki bütün elemanlara
aynı isimle ulaşılır. Yani dizideki bütün
elemanların isimleri ortaktır.

Elemanlar arasındaki ayırt edici
özellik, bellekteki yeridir.
Dizi Kavramı

5 elemanlı bir tamsayı dizisi bellekte
aşağıdaki gibi yerleştirilir.
Diziler
C#’da diziler ayrı bir tür olarak
tasarlanmıştır.
 Bütün diziler System.Array sınıfından
türetilmiştir.
 Bir dizi tanımlandığında Array sınıfı
türünden bir nesne tanımlanmış olur.
 Dizinin sınırlarını aşan bir indeks
kullandığımızda derleme hatası
oluşmaz, ancak çalışma zamanında
hata oluşur.

Diziler

Dizi tanımlamak için kullanılacak syntax
şöyledir:
◦ türBelirleyici[] diziAdı= new türBelirleyici[ElemanSayısı];


türBelirleyici kullanmak istediğiniz veri türüdür.
Örnek:
◦ string [ ] names = new string [100];
◦ int [ ] myData = new int [10];
 int [] dizi;
 dizi = new int [19];
Diziler
new anahtar sözcüğü ile, dizinin her
elemanına temel veri türleri için
varsayılan değer, ilk değer olarak
verilmektedir.
 Bu ilk değer; referans türleri için null,
nümerik türler için 0, bool türü için ise
false’tur.

Dizilere İlk Değer Verme
days[0] = 31; // January
 days[1] = 28; // February
 days[2] = 31; // March


Tanım esnasında değer atamak için:
◦ Örnek:




int[] days = new int[12] {31,28,31,30,31,30,31,31,30,31,31};
string[ ] dizi1={“Bilgisayar”,“Mühendisliği”,“Bölümü”};
int [ ] dizi2={5,9,12,56,23};
float [ ] dizi3={8f,39f,324f,23f,2f};
Dizilere İlk Değer Verme
Varyasyonları

int [ ] days = new int [ ] {31,28,31,30,31,30,31,31,30,31,31};
◦ veya

int [ ] days = {31,28,31,30,31,30,31,31,30,31,31};

Derleyici, eleman sayısını hesaplayarak
parantezler arasını otomatik dolduracaktır.

Eleman sayısı belirlenen bir dizinin eleman
sayısı daha sonra değiştirilemez.
foreach anahtar sözcüğü

foreach yalnızca dizilere
uygulanabilen bir döngü yapısıdır.
Kullanımı şu şekildedir:
int[] dizi={3,2,6,7};
 foreach(int eleman in dizi)
Console.WriteLine(eleman);

Burada dizi dizisinin bütün elemanları
teker teker ekrana yazdırılıyor.
 Dizinin tüm elemanları ile aynı işlemler
yapılacaksa kullanılmalıdır.

Çok boyutlu diziler

Çok boyutlu diziler kısaca her bir
elemanı bir dizi şeklinde olan dizilerdir,
matris dizileri (düzenli diziler) ve
düzensiz diziler olmak üzere ikiye
ayrılır.
Matris Diziler
Her bir dizi elemanının eşit sayıda dizi
içerdiği dizilerdir
 İki boyutlu matris diziler
 3X2 boyutunda iki boyutlu bir matris
dizi aşağıdaki gibi tanımlanabilir:

◦ int[,] dizi=new int[3,2];

veya
◦ int[,] dizi={{1,2},{3,4},{5,6}};
Matris Diziler

İkinci dizinin elemanları indekslerine
göre aşağıdaki gibidir.

dizi[0,0]
dizi[0,1]
dizi[1,0]
dizi[1,1]
dizi[2,0]
dizi[2,1]
→
→
→
→
→
→
1
2
3
4
5
6
Matris Diziler

Bu diziyi matris olarak aşağıdaki gibi
gösterebiliriz:
Çok Boyutlu Dizilere İlk Değer
Verme

int [,] myData = new int [ , ] { {1,2,3}, {4,5,6} };

int [,] myData = new int [ 2 ,3 ] { {1,2,3},
{4,5,6} };

int [ ] myData = new int [,] {
{1,2,3},
{4,5,6}
};
İkiden fazla boyutlu matris
diziler

Üç boyutlu bir dizi:

int[,,] dizi=new int[3,2,2];
◦ veya

int[,,] dizi={{{1,2},{3,4}},{{5,6},{7,8}},{{9,10},{11,12}}};
Düzensiz Diziler

Her bir dizi elemanının farklı sayıda
eleman içerebileceği çok boyutlu
dizilerdir.

int[][] dizi=new int[3][];
dizi[0]=new int[3];
dizi[1]=new int[4];
dizi[2]=new int[2];
Düzensiz Diziler

Birinci satırda 3 satırı olan ancak sütun sayısı belli
olmayan iki boyutlu bir dizi tanımlanıyor. İkinci,
üçüncü ve dördüncü satırda da bu iki boyutlu
dizinin her bir satırının kaç sütun içerdiği ayrı ayrı
belirtiliyor.
Dizilerle Kullanılabilen
Metotlar

GetLength()
◦ Herhangi bir dizinin eleman sayısını int olarak tutar.

CopyTo(Array array, int index)
◦ Çağrıldığı dizinin elemanlarını indexten itibaren array dizisine
kopyalar

void Array.Copy(Array source, Array destination, int index)
◦ Source dizisini, destination dizisine indexten itibaren kopyalar.

void Array.Sort(Array array)
◦ Array dizisini sıralar

int Array.BinarySearch(Array array, object value)
◦ Array dizisinde value değerini arar.
Download