Diziler (Array)
Çok sayıdaki değişken değerinin birkaç kez yeniden kullanılabilmesi için bellekte saklanması gerekmektedir.
Bu amaçla dizilerin kullanılması en uygun yol olarak ortaya çıkmaktadır.
Dizinin Tanımlanması
<veri tipi> [ ] <değişken adı>;
deyimi ile derleyiciye bir dizinin kullanılacağı belirtilmektedir.
Ancak, bu dizinin kaç elemanlı olacağı
<değişken adı> = new <veri tipi>[<tamsayı>];
deyimi ile ya da kısaca
<veri tipi> [ ] <değişken adı> = new <veri tipi>[<tamsayı>];
deyimi ile gerçekleştirilebilir.
Örnekler
int [ ] ogrenci;
ogrenci = new int[50];
string [ ] isimler;
isimler = new string[40];
bool [ ] kontrol = new bool[5];
ÖNEMLİ NOT:
<değişken adı> = new <veri tipi>[<tamsayı>]; deyimi ile tanımlanmış bir dizinin elemanları klasik C derleyicisinde olduğu gibi 0 ile <tamsayı> - 1 arasında değer almaktadır.
Kullanılacak döngü deyimlerinde buna özellikle dikkat edilmesi gerekmektedir.
ÖRNEK;
string satir;
int [ ] ogrenci;
ogrenci = new int[5]; // altsıra 0, 1, 2, 3, 4 olacaktir
int i;
for (i = 1; i <= 5; i++)
{
satir = Console.ReadLine();
ogrenci[i] = Convert.ToInt32(satir);
}
Dizilere İlk Değer Atama
int [ ] liste;
liste = new int[5] {10, 45, 23, 19, 46};
string [ ] gunler = new string[7] {“Pazartesi”, “Sali”, “Carsamba”, “Persembe”, “Cuma”, “Cumartesi”, “Pazar”};
Dizilere İlişkin Özel Metotlar
Dizilerin elemanlarını sıralamak için
Array.Sort
Dizide bir elemanı aramak için
Array.BinarySearch
Array.IndexOf
Dizi elemanlarının sıralanışını ters çevirmek için
Array.Reverse
Array.Sort Fonsiyonu Örnek Kullanım Şekli
int [ ] liste;
liste = new int[10] {10, 45, 23, 19, 46, 35, 20, 49, 11, 21};
int i;
Array.Sort(liste);
for (i = 0; i <= liste.GetUpperBound(0); i++)
{
Console.WriteLine(liste[i]);
}
Array.BinarySearch Fonsiyonu Kullanımı
Bir dizi içerisinde ikili arama tekniğini (binary search) kullanarak arama yapar.
Dizinin mutlaka daha önceden sıralanmış olması gerekmektedir.
Bulunan değer için dizideki yer, bulunamayan değer için -1 sayısı döndürülür.
Array.BinarySearch Örnek Kullanım Şekli
int [ ] liste;
liste = new int[10] {10, 45, 23, 19, 46, 35, 20, 49, 11, 21};
int x, yer;
x = 19;
yer = Array.BinarySearch(liste, x);
Console.WriteLine("Dizideki yeri = " + yer);
Array.Sort(liste);
yer = Array.BinarySearch(liste, x);
Console.WriteLine("Dizideki yeri = " + yer);
Array.IndexOf Fonsiyonu Kullanımı
Bir dizi içerisinde sıralı arama tekniğini (sequential search) kullanarak arama yapar.
Dizinin daha önceden sıralanmış olması gerekMEmektedir.
Bulunan değer için dizideki yer, bulunamayan değer için -1 sayısı döndürülür.
Array.IndexOf Fonsiyonu Örnek Kullanım Şekli
int [ ] liste;
liste = new int[10] {10, 45, 23, 19, 46, 35, 20, 49, 11, 21};
int x, yer;
x = 46;
yer = Array.IndexOf(liste, x);
Console.WriteLine("Dizideki yeri = " + yer);
Array.Reverse Fonsiyonu Örnek Kullanım Şekli
int [ ] liste;
liste = new int[10] {10, 45, 23, 19, 46, 35, 20, 49, 11, 21};
int i;
Array.Reverse(liste);
for (i = 0; i <= liste.GetUpperBound(0); i++)
{
Console.WriteLine(liste[i]);
}