1 / 38

Diziler

Diziler. Diziler. Aynı tipten bir grup verinin aynı değişken isminde bulunmasıdır. Grup içerisindeki verilerin hafızada sıralı olarak bulunduğu farz edilir. C# dilinde dilinde bütün diziler System.Array tipindedir. Yani System.Array sınıfının bütün fonksiyonlarını kullanabilirler. Diziler.

korbin
Download Presentation

Diziler

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Diziler

  2. Diziler • Aynı tipten bir grup verinin aynı değişken isminde bulunmasıdır. • Grup içerisindeki verilerin hafızada sıralı olarak bulunduğu farz edilir. • C# dilinde dilinde bütün diziler System.Array tipindedir. Yani System.Array sınıfının bütün fonksiyonlarını kullanabilirler.

  3. Diziler • Bir örnek olarak, haftanın günlerini bir boyutlu dizi olarak düşünebiliriz. İlk eleman, Pazartesi, son eleman da Pazar günü olacaktır. • Diğer bir örnek olarak, bir ayda bulunan günleri, iki boyutlu bir dizi olarak düşünebiliriz. Yatayda haftanın günleri bulunurken, düşeyde hafta sayısı vardır. • Bir yıldaki günleri de üç boyutlu bir dizi olarak düşünebiliriz. Haftanın günleri, ilk boyutu oluştururken, ikinci boyut haftaların numarasıdır. Üçüncü boyut da aylardır.

  4. Diziler • Tek boyutlu bir dizi, bir değişken ismi ve tip ve köşeli parantez içinde boyutu olarak tanımlanabilir. • Örneğin, int[]gun = new int[ 7 ]; gun isminde yedi elemanlı bir boyutlu dizi tanımlar. • Dizini tipi int olduğu için elemanları başlangıçta sıfır değerini alacaklardır.

  5. Dizinin Kullanımı • Dizi tanımlanınca, dizideki elemanlara dizinin ismi ve köşeli parantez içinde eleman numarasıyla erişilir. Örn. dizi_adi[index] • C# dilinde, dizideki ilk eleman 0'ıncı (sıfırıncı) sıradaki elemandır. Örneğin, gun dizisinin en az 0 ve en fazla 6'ıncı elemanlarına erişilebilir. • Köşeli parantez içindeki sayılara indeks numarası adı verilir.

  6. İndeks Numarası İnt[] gun = new int[7]; Örnekler: gun[5] = 1; if( gun[5] == 4 ) break; gun[5] = gun[6] - 1;

  7. Örnek for döngüsü içinde i değişkeninin değeri 0'dan 6'ya kadar gider

  8. Dizilere İlk Değer Atama • Değişkenler tanımlanırken, ilk değerlerinin verildiğinden bahsetmiştik. Benzer şekilde, dizilere de tanımlandıkları anda değer atanabilir. static void Main(string[] args) { int[] gun = { 0,2,4,6,8,10,11 }; .......... }

  9. Dizilere İlk Değer Atama static void Main(string[] args) { int[] gun = { 0,2,4,6,8,10,11 }; } Derleyici, buradaki sayıları sayar ve [] içindeki değerin 7 olması gerektiğini bulur ve programı int[] gun = new int[7] olarak derler.

  10. Dizilere İlk Değer Atama • Eğer, tanımladığımız dizinin elemanlarına başlangıç değeri yüklemiyorsak, o zaman dizinin elemanları tiplerine göre başlangıç değerleri alırlar. • Örneğin sayısal ifadeler sıfır değerini alırken, string ve diğer sınıf tipleri “null” eğeri alırlar. Uyarı : string tipindeki bir değişkeninin null değeri içermesinin boş satır anlamına gelmediğini unutmayınız. null ifadesi değişkenin için hafızada henüz herhangi bir yer ayrılmadığını ve bu sebeple bir işlem içerisinde değer olarak kullanılamayacağı anlamına gelir.

  11. Örnek • 10 tane double tipinde değer alabilen bir dizi tanımlayın ve içine 1.0 ile 10.0 arasında değerler koyun. Ve 9. ve 0. elemanların değerlerini birbiriyle değiştirin. static void Main(string[] args) { double[] dizi = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0}; double gecici; gecici = dizi[9]; dizi[9] = dizi[0]; dizi[0] = gecici; }

  12. Alıştırma • 100 tane sayıyı rastsal olarak üreterek bir diziye koyan bir programı yazınız. • Programınız, bu dizi içindeki değerlerin en yüksek ve en düşük değerlerini bularak ekrana yazacaktır. Ayrıca, ortalama değerini de hesaplayarak ekranda gösterecektir.

  13. Alıştırma - Çözüm Program en küçük ve en büyük değerleri bulmaktadır. Ortalama bulmayı programa ekleyiniz.

  14. Array.Length() • Dizinin uzunluğunu bulmak için kullanılır. • Doğrudan dizini adından sonra nokta “.” işaretinden sonra çağrılır. int[] myArray = new int[5]; int len = myArray.Length(); Console.WriteLine(len); Output : 5

  15. foreach • Dizi içerisindeki her bir eleman için tek tek ilerleyen döngüdür. • for döngüsüne benzemektedir.

  16. foreach • foreach ve for döngüleri birbirlerine dönüştürülebilir.

  17. Çok Boyutlu Diziler • Birden fazla boyutu olan dizilere çok boyutlu diziler denir. • Örneğin iki boyutlu bir dizi satranç tahtasını modellemekte kullanılabilir. • İki tip çok boyutlu dizi vardır. • Standart diziler • Çentikli diziler

  18. Standart Çok Boyutlu Diziler • Çok boyutlu dizilerin oluşturulması tek boyutlu dizilere benzer ve onlar kadar kolaydır. Fark köşeli parantezler arasında virgül bulunmasıdır. • int [,] sayılar; • string [,,] satırlar; • Örneğin ikiye üç boyutunda ve string tipinde bir dizi oluşturmak için • string[,] dizi = newstring[2,3]; yazmak yeterlidir.

  19. Standart Çok Boyutlu Diziler Standart dizilerde her bir boyut için satır ve sütun sayıları eşit olur. Bu sebeple standart diziler matrislere benzetilebilir. dizi

  20. Standart Çok Boyutlu Diziler İki boyutlu bir dizi oluşturup bir döngü içersinde dizinin elemanlarına değerler atayalım.

  21. Çentikli (Jagged) Çok Boyutlu Diziler • Dizilerin dizileri olarak ifade edilirler. • Dizinin her bir satırı bir başka dizidir. • Her bir satırdaki dizi farklı boyut alabileceği için çok boyutlu dizinin matris formunda olması gerekmez. • Bu sebeple çentikli (jagged) ismini almıştır.

  22. Çentikli (Jagged) Çok Boyutlu Diziler dizi

  23. Çentikli (Jagged) Çok Boyutlu Diziler string [] [] dizi = newstring [satir] []; dizi[0] = new string [2]; dizi[1] = new string [3]; dizi[2] = new string [1]; dizi[1] [2] = “çentikli";

  24. Çentikli (Jagged) Çok Boyutlu Diziler 2x3 boyutlu bir dizi oluştur Her bir boyutu farklı uzunlukta dizi olarak tanımla Her bir boyuttaki elemanlara değer ata Değerleri ekrana yazdır.

  25. Çentikli (Jagged) Çok Boyutlu Diziler Her bir boyuttaki elemanlara değer ata Değerleri ekrana yazdır.

  26. Dizi İşlemleri Dizide arama, sıralama

  27. Dizi İşlemleri • Dizi işlemleri, programlarda çok sık kullanılan programlama öğelerindendir. • IndexOf() • LastIndexOf() • Sort() • Reverse() • Array sınıfı yardımıyla kullanılırlar.

  28. IndexOf() - LastIndexOf() • IndexOf() : Aramayı baştan başlatarak aranan elemanın kaçıncı sırada olduğunu döndürür. • LastIndexOf() : Aramayı sondan başlatarak aranan elemanın kaçıncı sırada olduğunu döndürür. • Eğer aranan eleman bulunamazsa -1 döndürür.

  29. Array.IndexOf(), Array.LastIndexOf() Sonuç : 1 Sonuç : 4

  30. Array.Sort() Dizinin elemanlarını küçükten büyüğe sıralar. Sonuç : Ali Mehmet Pınar Zeynep

  31. Array.Reverse() Dizinin eleman sırasını terse çevirir. Sonuç : 45 32 9 5 3 2 1 Not : Array.Sort ve Array.Reverse birlikte kullanılmak zorunda değildir.

  32. Sorun • İhtiyacımız olan dizinin boyutunu daha önceden bilmiyorsak ne yapacağız? • Ya dizi dinamik olarak genişliyorsa?

  33. Derlemler (Collections) • Dizinin boyutu daha önceden bilinmiyorsa kullanılır. • Veya dizi dinamik olarak büyüyüp küçülüyorsa kullanılır. • Tek boyutludur.

  34. ArrayList • Temel derlem tiplerinden birisidir. • System.Collections alan adı altında bulunur. • Başlangıç boyutu 16 dır ve her büyümede 2 katına çıkar. • Verileri object tipinde tutar.

  35. ArrayList • Yeni bir ArrayList oluşturmak: ArrayList list = newArrayList(); Örnek

  36. ArrayList • Add • Capacity • Clear • Count • IndexOf • Insert Önemli fonksiyonlar ve özellikler • RemoveAt • Reverse • Sort • TrimToSize

  37. Alıştırma • Personel adlarını tutacak bir ArrayList tanımlayınız. • Listeye Ahmet, Mehmet, Pınar, Yeşim, Utku, Sinan, Fatma, Ayşe isimlerini ekleyiniz. • Listeyi ve boyutunu ekrana yazdırınız. • Listeden adı ‘A’ karakteriyle başlayanları siliniz • Listeyi harf sırasına göre tersten sıralayınız. • Listeyi ve boyutunu ekrana yazdırınız.

  38. Kod

More Related