DİZİLER 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. 5elemanlı bir tamsayı dizisi bellekte aşağıdaki gibi yerleştirilir. 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. Dizi Tanımlama VeriTürü[ ] dizi_adı; dizi_adı=new VeriTürü[Eleman Sayısı]; 2 türlü tanımlama yapılabilir : veya 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. Dizileri aşağıdaki gibi de tanımlamak mümkündür:
Dizilerin boyutu C ve C++ dillerinde derleme sırasında bilinmek zorundadır. Böylece derleyici, dizi için bellekte dizinin boyutuna göre yer ayırmaktadır. Ancak C# da dizilerin boyutlarını çalışma zamanında belirtmek mümkündür. Bir dizinin boyutu bir kez belirlendikten sonra artık değiştirilemez Yani boyutunu dinamik olarak değiştirmemiz mümkün değildir. Dizilerin indisleri sıfırdan başla r. Örnekteki isimler dizi sinin 4 tane String tipinden elemanı vardır. Dizilerin elemanlarına ulaşmak için, istenilen elemanın indisi verilmesi gerekir. string [ ] isimler = new string[ 10]; isimle r[0 ] = Ali ; isimle r[1 ] = Ahmet ; isimle r[2 ] = Mehmet ; isimle r[3 ] = Ayşe ; MessageBox.Show(isimler[3 ]); Dizilere tek tek değer atanabildiği gibi, tanımlarken de başlangıç değerleri atanabilir. string [ ] isimler = {"Ali "," Ahmet"," Mehmet ","Ayşe"}; Çok Boyutlu Diziler İki türlü çok boyutlu dizi bulunur. Her boyutta eşit miktarda elemanın olduğu düzenli diziler ( matrisler) ve her boyutta farklı sayıda eleman barındıran düzensiz diziler(jagged arrays). Aslında düzensiz diziler elemanları da dizi olan dizilerdir. Çok boyutlu dizi tanımlaması yaparken [,, ] şeklinde yazılır. Matris Dizileri VeriTürü [,,,, ] dizi_adı = new VeriTürü [boyut 1, boyut 2, boyut 3,..., boyut n ]; int [, ] dizi = { {1,2}, {3,4}, {5,6} }; Şeklinde tanımlanan bir 3x2 lik dizinin elemanları :
Düzensiz Diziler(Jagged Arrays) Dizilerin elemanları da farklı diziler olabilir. Bu durumda tanımlanan dizinin birbirinden farklı boyutlarda alt elemanları olabilir. Bu gibi yapılara düzensiz diziler ismi. Bu diziler şu şekilde tanımlanırlar: Düzensiz tanımlanan yukarıdaki dizinin yapısı şu şekildedir: Bazı dizi özellikleri ve metotları: Diziler,. NET Framework içinde tanımlı Array sınıfı temsil eder. Tüm diziler Array sınıfında tanımlı özellikleri ve metotları kullanırlar. Bunlardan bazıları aşağıdaki gibi kullanılır.
DÖNGÜLER Program içerisinde belirli işleri tekrar tekrar yapılmasını sağlayan kod bloklarıdır. Döngüler sonsuz olabileceği gibi belli bir koşul ile de kontrol etmek de mümkündür. C# dilinde dört tip döngü yapısı bulunur: for while dowhile foreach for Döngüsü En çok kullanılan döngü deyimlerinden biridir. Başlangıç değerinden itibaren belirtilen artış miktarı ile belirtilen sınıra kadar döngü içindeki komutları tekrar eden döngüdür. Kullanımı: for döngü tanımlamasında iki ; ile ayrılmış üç ifade bulunur. Bunlardan bazıları boş olabilir fakat mutlaka ; işaretleri kullanılmalıdır. İlk ifade bir defaya mahsus olmak üzere çalıştırılır. Genelde döngü değişkeninin tanımlanması ya da ilk değer ataması için kullanılır. İfade1: Başlangıç Değeri( i=0 ) İkinci ifade ise döngünün kontrol edildiği kısımdır. Buradaki ifade true değer ürettiği sürece döngü devam eder. İfade2: Sınır Değeri ( i<10 ) Son ifade ise genelde döngü değişkeninin değerinin değiştirildiği kısımdı r. İfade3: Artış Miktarı ( i++ ) Örnek Kullanımı:
while Döngüsü Bir başka döngü deyimidir. Belirtilen koşul doğru olduğu sürece çalışmasına devam eder. Kullanımı: Belirtilen koşul ifadesi True sonucunu ürettiği sürece döngü komutları tekrar ettirilir. Örnek: Birden ona kadar olan sayıların toplamını hesaplamak için, bir ve on arasındaki sayılar tek tek yazılıp toplanabilir. İyi bir yöntem olmasa da sonucu verir. Ancak kullanıcının girdiği bir sayıya kadar toplam almak için aşağıdaki gibi bir döngü kullanılmalıdır. Burada kullanıcının girdiği sayıdan itibaren sıfıra kadar giden bir döngü kurulmuştur. Döngü sayacın sıfırdan büyük olduğu her durum için çalışacaktır. Sayaç sıfırlandığında ise döngüden çıkılır. do-while Döngüsü for ve while döngülerinde koşul sağlanmadığı durumlarda döngü bloğu hiç çalıştırılmaz. Bazı durumlarda ise döngünün en az bir kez çalıştırılması gerekebilir. Bu durumda do while kullanılabilir. Kullanımı: Break ve Continue Çalışan bir döngüden break sözcüğü kullanılarak çıkılabilir. Program akışı döngüden sonraki satırlardan devam eder. break sözcüğü sadece döngü ve switch ifadelerinde kullanılabilir. continue sözcüğü ise döngünün bir sonraki tekrarına geçilmesini sağlar. Yani döngünün devam etmesini sağlar.
Uygulama 5: 3 elemanlı tam sayı dizisine değer aktarıp dizi elemanlarını ve dizinin aritmetik ortalama sını ekrana yazdıran program kodu aşağıdadı r. Uygulama 6: İki adet 5 elemanlı ondalık diziye değer aktaran ve dizilerin toplam ile fark dizilerini ekranda gösteren program kodu aşağıdadır.
Uygulama 7: 3x2 boyutundaki tamsayı matrisine değer girişi yapıp matrisin kendisini ve transpozesini ekranda gösteren program kodu aşağıdadır.