Tek boyutlu diziler
int[] A=new int[dizi boyutu]
string[] A=new string[dizi boyutu]
double[] A=new double[dizi boyutu] şeklinde tanımlanabilirler.
Dizi boyutu yazılan yere örneğin 5 yazarsak; bu dizi maksimum 5 eleman kabul edebilir.Dizilerde her elemanın bir index numarası vardır.Dizimiz 5 elemanlı interger tip tutan bir dizi olsun.İçindeki değerler
10
15
20
25
30 olsun.Dizilerde index numaraları 0 dan başlar.Buarada dizimizin elemanı olan 10 değerinin index numarası 0'dır.15 değerinin index'i ise 1 dir.En son 25 değerinin index numarası 4 tür.Diziler 0 dan başladığı için dizi boyutu-1 e kadar gider.Şimdi örnek programımıza geçebiliriz.
Resimdeki gibi bir form hazırlıyoruz.Daha sonra formumuza şu kodları ekliyoruz:
int[] dizi = new int[5];// 5 elemanlı bir dizi tanımlanıyor
int sayac = 0;// kaç adet eleman girildiğini tutmak için tanımlandı
private void button1_Click(object sender, EventArgs e)
{
if(sayac==0)
label2.Text = "";// sayac 0 ise label2 nin içeriği temizleniyor
dizi[sayac] = Convert.ToInt32(textBox1.Text);// butona her basıldığında dizinin indexine girilen değer atanıyor
sayac++;// sayacı 1 arttırıyoruz ki her defasında aynı indexin üzerine yazmasın
textBox1.Text = "";
textBox1.Focus();// Textbox a değer girilip butona basıldıktan sonra imlecin yine textboxta kalması sağlanıyor.
if (sayac == 5)// dizinin kapasitesi 5 ti.5 ten fazla girilmesine engel oluyoruz.
{
Array.Sort(dizi);//dizi burada sıralanıyor
for (int i = 0; i < dizi.Length; i++)
{
label2.Text += " "+dizi[i].ToString();// buradada dizinin bütün içeriği yazılıyor
}
sayac = 0;// yeniden işlem yapabilmek için sayac sıfırlandı
}
}
Dizi ve sayac tanımlamamızı global alanda tanımlıyoruz.Eğer bunları butonun içinde tanımlamış olsaydık butona her basıldığında başlangıç değerlerini almış olacaklardır.Buda bizim işimize yaramayacaktır.
Butona her basılışta sayac değerimiz (sayac++;) komutuyla birer birer arttıyor.Sayac değerimizi arttırmamız butona her basışta dizinin farklı bir index'ine değer atamamızı sağlar.Şöyle ki ;
dizi[sayac] kodunun anlamı aslında,sayac değeri 0 iken dizi[0], 1 iken dizi[1] diye gider.Bu yüzden textbox'a girilen değer her defasında dizinin farklı bir index'ine atılır.
Array.Sort(dizi); komutuyla dizimizin içeriğini otomatik olarak küçükten büyüğe doğru sıralar.Eğer büyükten küçüğe sıralamak istersek Array.Reverse(dizi); komutunu ekleyerek bu işlemi yapabiliriz.
Programın en sonunda dizinin içeriğini label 'a yazırmak kalıyor.for döngüsü içindeki i değişkeni birer birer arttığı için dizinin içeriğini sırayla yazdırmış oluyoruz.Ve son olarak sayac değişkenini 0 yaparak yeni işlem yapılmasını sağlayabiliyoruz.
Hiç yorum yok:
Yorum Gönder