Visual Studio C# Dersleri | Visual Studio Kurulumu | C# Programlama Dersleri
Diziye Değer Girme
Bir dizi tanımlandıktan sonra sıra o diziye değer girmeye gelir. Bir diziye değer girişleri tanımlama esnasında yapılabildiği gibi, programın akışı esnasında da gerçekleştirilebilir. Dizi tanımlandıktan sonra, dizinin her bir elemanı için indeks değerleriyle elemana erişerek değer ataması şu şekildedir;
int[] notlar=new int[3];
notlar[0]=65;
notlar[1]=76;
notlar[2]=85;
Bir diğer yöntemde bir önceki konuda gördüğümüz, dizi oluşturulurken değer girmeyi tekrar hatırlarsak;
int[] notlar=new int[3]{65,76,85};
veya
int[] notlar= {65,76,85};
şeklinde tanımlama esnasında değer girişi yapabiliriz.
Yukarıda her iki örnekte de verilen notlar dizisinin kavramsal gösterimi şu şekildedir;
Char (karakter) türündeki bir dizinin ilk kullanımına hazırlanması da şu şekillerde gerçekleştirilir;
char[] harfler = new char[]{'r','T','h','Y'};
veya
char[] harfler=new char[4];
harfler[0] = 'r';
harfler[1] = 'T';
harfler[2] = 'h';
harfler[3] = 'Y';
String (metinsel) türdeki bir dizinin ilk kullanımına hazırlanması da şu şekillerde gerçekleştirilir;
string[] sebzeler = new string[] { "Marul", "Ispanak", "Biber", "Domates", "Salatalık" };
veya
string[] sebzeler=new string[5];
sebzeler[0] = "Marul";
sebzeler[1] = "Ispanak";
sebzeler[2] = "Biber";
sebzeler[3] = "Domates";
sebzeler[4] = "Salatalık";
Bir dizi içerisindeki elemanlara tek tek dizi indeksi yardımıyla erişilebilir. Dizi indeksi (array index), bir elemanın dizi içerisindeki konumunu ifade eder. Genellikle progrmalama dillerinde dizilerin ilk elemanının indeksi sıfır (0)’dır. Örneğin 10 elemanlı bir dizi varsa, bu dizinin indeks numaraları 0-9 arasındadır.
Dizinin tüm elemanlarına değil de bir kısmına değer girişi yapmamız isteniyorsa, ilgili değerin barındırılacağı indeksine değer atama işlemi gerçekleştirilir.
int[] plakalar=new int[10];
plakalar[2] = 43;
plakalar[5] = 16;
plakalar[6] = 66;
plakalar[9] = 6;
Yukarıda tanımlanan plakalar isimli dizinin 2,5,6 ve 9 numaralı indeks konumlarına değer ataması gerçekleştirilmiş ve kavramsal görüntüsü şu şekilde oluşmuştur.
Başlangıçta eleman sayısı belli fakat değerleri daha sonra girilecekse tanımlama şu şekilde yapılabilir. Örneğin sebzeler dizisinin eleman sayısı 5 değil de 8 olsun, başlangıçta da 4 adet değer girilecek olsun;
string[] sebzeler = new string[] { "Marul", "Ispanak", "Biber", "Domates","" ,"","","","" };
veya
string[] sebzeler = new string[] { "Marul", "Ispanak", "Biber", "Domates",null, null, null, null, null };
Yukarıda tanımlaması gerçekleştirilen sebzeler isimli dizinin kavramsal görüntüsü de şu şekildedir;
Dikkat ederseniz int türündeki dizilerde boş kalan dizi hücrelerine sıfır(0) değeri, string türündeki dizilerde de boş kalan hücrelere boş (null-“”) değer yüklenmektedir.
Örnek: Rakamlar isimli dizi içerisine 0-9 arası rakamları tersten bir döngü yardımıyla yükleyiniz.
int[] rakamlar = new int[10];
int i;
for (i = 0; i <= 9; i++)
rakamlar[i] = 9 - i;
Dizilerle çalışırken dikkat etmemiz gereken noktalardan en önemlisi dizi sınırlarına sadık kalmaktır. Eğer 10 elemanlı bir dizi tanımlamışsak ve bu dizi tanımlanırken belirlenen eleman sayısından fazla sayıda eleman değeri atamaya çalışırsak hata alırız.
Örnek: 10 elemanlı ciftSayilar isimli bir dizi tanımlayınız. İçerisine 0-25 arasındaki çift sayıları ekleyen kodu yazınız.
int[] ciftSayilar = new int[10];
int i,j;
j = 0;
for (i = 0; i <= 25; i = i + 2) {
ciftSayilar[j] = i; j++;
}
Yukarıdaki kodu çalıştırmak istediğimizde aşağıdaki gibi bir hata alırız.
Resimde görülen hata mesajı dizi sınırının aşıldığını belirten hata mesajıdır.
Örnek’de verilen kodlar incelendiğinde ciftSayilar isimli dizinin başlangıçta 10 elemanlı bir dizi olarak tanımlandığı görülmektedir. Ancak 0-25 arasındaki çift sayılar bu diziye bir for döngüsü yardımıyla (i değişkenin değeri olarak) eklenirken, dizinin 10. elemanı eklendikten sonra (j değişkeninin değerinin 10 olmasından sonra) döngünün devam etmesi sebebiyle 11. eleman eklemeye çalışılınca Resim 3-3’teki “Dizi Sınırlarının Dışı” hata mesajı ile karşılaşırız.
Dizi eleman sayısının üst limitini aşmak gibi alt sınır değerinin altına girilmeye çalışılması da hata mesajı almamıza sebebiyet verir.
Örnek: Örnek’deki kodlarda biraz değişiklik yapıp programın dizinin alt sınır değerinden daha düşük indeksine erişmeye çalışalım;
int[] ciftSayilar = new int[10];
int i,j;
j = 5;
for (i = 0; i <= 25; i = i + 2) {
ciftSayilar[j] = i;
j--;
}
j değişkenimizin başlangıç değerini 5 yapıp bu sefer döngümüz vasıtasıyla elemanlarımızı yazdırmaya çalıştığımızda, j indeksimizin j-- ifadesiyle döngü içerisinde her seferinde değerinin 1 azaltıldığını görüyoruz. Ne zaman ki j’nin değeri 0’ın altında negatif bir sayıya ulaştığında, programımız Resim 3-4’teki gibi bir hata mesajını bizlere verir.