Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

DİZİLER (ARRAYS) YRD.DOÇ.DR. CİHAD DEMİRLİ Kaynaklar: Algan, S. (2010). Her Yönüyle C# 4.0, Pusula Yay.,İstanbul Yanık, M. (2009). Visual C# 3.0 for.Net.

Benzer bir sunumlar


... konulu sunumlar: "DİZİLER (ARRAYS) YRD.DOÇ.DR. CİHAD DEMİRLİ Kaynaklar: Algan, S. (2010). Her Yönüyle C# 4.0, Pusula Yay.,İstanbul Yanık, M. (2009). Visual C# 3.0 for.Net."— Sunum transkripti:

1 DİZİLER (ARRAYS) YRD.DOÇ.DR. CİHAD DEMİRLİ Kaynaklar: Algan, S. (2010). Her Yönüyle C# 4.0, Pusula Yay.,İstanbul Yanık, M. (2009). Visual C# 3.0 for.Net Framework 3.5, Seçkin Yay., Ankara Aktaş, V. (2010). Her yönüyle C# 4.0, Kodlab Yay., İstanbul

2 Dizi Bellekte art arda yer alan aynı türden nesneler kümesine dizi (array) denilmektedir. Bir dizi, elemanlarına aynı isimle ulaşır. Elemanlara arasındaki ayırt edici özellik bellekteki yerleridir.

3 Dizi [0] Dizi adı İ ndeks operatörü İ ndis (indeks) Dizi Dizi elemanıDizi indeksi 15Dizi[0] 365Dizi[1] -12Dizi[2] 5Dizi[3] 78Dizi[4] 1Dizi[5]

4 Dizi tanımlama (tek boyutlu) Diziler System.Array sınıfından türetilirler. Array sınıfındaki tüm metotlar kullanılabilir. int[] Dizi = new int[25]; ya da int[] Dizi; Dizi= new int[25]; Bildirim Tanımlama Bildirim ve tanımlama Dizi[0]Dizi[1]Dizi[2]……………Dizi[n]

5 Dizi tanımlama (tek boyutlu) int[] dizi = new int[25]; new (operatör veya anahtar sözcük) Burada operatör olarak yeni nesne oluşturmak için kullanılmıştır. Dizinin eleman sayısı Dizi elemanları tipi Dizi adı Dizi türü Dizi bildirim operatörü

6 Hatırlatma ! New anahtar sözcüğü ile tanımlanan değişkenlere varsayılan bir değer atanmaktadır. Referans türleri için ‘null’ Nümerik türler için ‘0’ Bool türü için ‘false’

7 Dizi tanımlama  Birden fazla dizi bildirimi;  int[] dizi1, dizi2;  Birden fazla dizi tanımlaması;  int[] dizi1=new int [10], dizi2=new int[10]; Her iki dizi için bellekte ayrı ayrı alan tahsisi yapılır (allocation)

8 Çok Boyutlu Diziler  Matris diziler  Her bir dizi elemanı eşit sayıda eleman içerir  Düzensiz (jagged) diziler  Her bir dizi elemanı farklı sayıda dizi elemanı içerir

9 Matris diziler  Matris yapısındadırlar.  int [,] Dizi = new int[3,4] indis

10 Matris diziler  Boyutlar aynı olmak durumunda değildir.  int [,] Dizi = {{1,2},{3,4},{5,6}}; Dizi [0,0]1 Dizi [0,1]2 Dizi [1,0]3 Dizi [1,1]4 Dizi [2,0]5 Dizi [2,1]6 indis

11 Matris diziler  2 veya daha fazla boyutlu olabilir (örn. 3 boyutlu).  int [,,] Dizi = {{{1,2},{3,4}},{{5,6}, {7,8}},{{9,10},{11,12}}}; Dizi [0,0,0]1 2 Dizi [0,1,0]3 Dizi [0,1,1]4 Dizi [1,0,0]5 Dizi [1,0,1]6 Dizi [1,1,0]7 Dizi [1,1,1]8 Dizi [2,0,0]9 Dizi [2,0,1]10 Dizi [2,1,0]11 Dizi [2,1,1]12

12 Düzensiz diziler (jagged arrays)  Her bir elemanını ayrı bir dizi gibi düşünebileceğimiz, farklı elemanlar içeren dizilerdir.  Dizi dizisi de denmektedir. int[][] dizi = new int[3][]; dizi[0]= new int [5]; dizi[1]=new int [3]; dizi[2]=new int [4]; dizi[1][0]dizi[1][1]dizi[1][2] dizi[2][0]dizi[2][1]dizi[2][2]dizi[2][3] dizi[0][0]dizi[0][1]dizi[0][2]dizi[0][3]dizi[0][4]

13 Düzensiz (jagged) dizi - örnek

14 System.Array sınıfı  Diziler Array sınıfından türedikleri için sahip oldukları bazı metotlar ve özellikler söz konusudur.  Özellikler IsFixedSize Dizinin eleman sayısının sabit olup olmadı ğ ını verir (bool) IsReadOnly Dizideki elemanların sadece okunabilir olup olmadı ğ ını verir (bool) LengthDizideki eleman sayısını verir (int) RankDizinin boyutunu verir (int)

15 System.Array sınıfı  Metotlar BinarySearchTek boyutlu dizilerde binary search algoritmasına göre arama yapar Clear Dizinin elemanlarını varsayılan de ğ ere çeker Join Dizi içerisindeki de ğ erlerin tümünü bir string de ğ işkenine, belirtilen ayırıcı karakter kullanarak aktarır CopyDizinin bir bölümü bir başka diziye kopyalar. Gerekli tür dönüşümleri ve boxing (kutulama) işlemi yapılır. CopyToBir dizinin belirlenen kısmını bir başka diziye kopyalar GetLengthDizideki eleman sayısını verir. GetValue Dizideki ilgili elemanın de ğ erini verir IndexOf Dizi içindeki bir de ğ eri ilk görüldü ğ ü indeksi verir ReverseDiziyi tersine çevirir. SetValue Bir dizinin bir elemanına de ğ er atar. SortBir boyutlu dizileri sıralamaya yarar. CreateInstanceYeni bir dizi nesnesi oluşturur.

16 Dizilerin İçerdiklerini Silmek  Clear () metodu dizinin içerdiklerini siler(default değere dönderir), 3 parametreye sahiptir.  Array.Clear (dizi_degiskeni, baslangic, eleman_sayisi) dizi_degiskeni: elemanları sıfırlanacak dizi değişkenini baslangic: silinecek ilk elemanı eleman_sayisi: içeriği silinecek eleman sayısını

17 Dizilerin İçerdiklerini Silmek

18 Dizilerin İçerdiklerini Kopyalamak  Copy() metodu [1.tür kullanım] bir dizi değişkeninin içeriğini başka bir dizi değişkenine aktarır, 3 parametreye sahiptir. (kopyalama 0. indisten başlar)  Copy(kaynak_dizi, hedef_dizi, sayi)  kaynak_dizi: kopyalamaya kaynaklık edecek olan dizi  hedef_dizi: hedefe durumunda olan dizi  sayi: içeriği kopyalanacak elemanların sayısı

19 Copy() [Örnek 1. tür kullanım]

20 Dizilerin İçerdiklerini Kopyalamak  Copy() metodu [2.tür kullanım] bir dizi değişkeninin içeriğini başka bir dizi değişkenine belirlenen kadarını belirlenen indisten itibaren aktarır, 5 parametreye sahiptir.  Copy(kaynak_dizi, baslagic_indis, hedef_dizi, yazilacak_indis, sayi)  kaynak_dizi: kopyalamaya kaynaklık edecek olan dizi  baslangic_indis: kopyalamanın başlayacağı indis (kaynak)  hedef_dizi: hedefe durumunda olan dizi  yazilacak_indis: yazmanın başlayacağı indis (hedef)  sayi: içeriği kopyalanacak elemanların sayısı

21 Copy() [Örnek 2. tür kullanım]

22 Dizilerin İçerdiklerini Kopyalamak  CopyTo() metodu bir dizinin tamamını başka bir dizinin istenilen yerine (belirlenen indisten itibaren) aktarır, 2 parametreye sahiptir.  kaynak_dizi.CopyTo( hedef_dizi, sayi)  kaynak_dizi: kopyalamaya kaynaklık edecek olan dizi  hedef_dizi: hedefe durumunda olan dizi  sayi: içeriği kopyalanacak elemanların sayısı

23 CopyTo() [Örnek]

24 Dizilerin Eleman Sayısını Öğrenmek Legth ve GetLegth()  Legth özelliği ve GetLegth() metodu dizi değişkeninin eleman sayısını öğrenmek için kullanılırlar

25 Örnek [GetLength()]

26 Dizileri Sıralamak  Sort() metodu dizi içeriklerini sıralamak için kullanılır.  Dizi elemanlarını küçükten büyüğe doğru sıralar.  Array.Sort(dizi) dizi: elemanları sıralanması istenen dizi değişkeni

27 Örnek [Sort()]

28 Dizileri Ters Çevirmek  Reverse() metodu dizi içeriklerini ilk eleman sona, son eleman başa gelecek şekilde ters çevirmek kullanılır.  Array.Reverse(dizi) dizi: elemanları ters çevrilmesi istenen dizi değişkeni

29 Örnek [Reverse()]

30 Dizilerde Arama Yapmak  BinarySearch()  IndexOf()  LastIndexOf()  Contains()

31 BinarySearch() ile arama  Aranan elemanın indeks numarasını döndürür  Eğer aranan eleman bulunmazsa negatif değer döndürür  Dizi değişkeninin sıralanması gerekir  Dört farklı sürümü vardır ve bunlardan ikisi;  BinarySearch(dizi, aranan_deger) ya da  BinarySearch(dizi, aranan_deger, arama_baslangic_indisi)

32 Örnek [BinarySearch()]

33

34 IdexOf() ile arama  Aranan elemanın indeks numarasını döndürür  Eğer aranan eleman bulunmazsa negatif değer döndürür  Dizi değişkeninin sıralanması gerekmez  Kullanım biçimi;  IndexOf(dizi, aranan_deger)

35 Örnek [IndexOf()]

36

37 LastIndexOf() ile arama  Aranan elemanın indeks numarasını döndürür  Eğer aranan eleman bulunmazsa negatif değer döndürür  Dizi değişkeninin sıralanması gerekmez  Dizi değişkeninde birden fazla aynı içeriğe sahip eleman varsa son elemanın numarasını verir  Kullanım biçimi;  LastIndexOf(dizi, aranan_deger)

38 Örnek [LastIndexOf()]

39

40 Contains() ile arama  Aranan elemanın var olması durumunda boolean bir değer döndürür  Kullanım biçimi;  Contains(aranan_deger)

41 Örnek [Contains()]

42

43 Dizi İçeriğini Birleştirmek [Join()]  Join() metodu dizi değişkeninin tüm içeriğini belirlenen ayırıcı kullanarak birleştirilmiş halini göstermek için kullanılır.  Kullanım biçimi;  String.Join( ayirici_karakter, dizi)

44 Örnek [Join()]

45

46 Bazı diğer metotlar  Add: ArrayList sonuna eleman ekler  OnikiDevAdam.Add(“Hidayet Türkoğlu);  Insert: ArrayList içerisinde belirlenen yere eleman ekler  OnikiDevAdam.Insert(3, “Hidayet Türkoğlu);  Remove: Dizi içerisindeki elemanı siler  OnikiDevAdam.Remove(“Hidayet Türkoğlu);  AddRange: Bir diziye başka bir dizi ekler  Basketbol.AddRange(OnikiDevAdam);  InsertRange: Bir diziye belirlenen yerden itibaren başka bir dizi ekler  Basketbol.InsertRange(3,OnikiDevAdam);  RemoveRange: Belirtilen indisten itibaren belirtilen sayıda eleman siler  Basketbol.RemoveRange(0,2);  Count: Dizinin eleman sayısını gösterir  Clone: Belirtilen dizinin kopyasını object türünden alır

47 Döngülerle dizi işlemleri for ve foreach  for önceki slatylarda açıklanmıştır. foreach genellikle bir dizinin elemanlarını ekrana yazdırmak ya da dizinin elemanlarını tek tek elde etmek amacıyla kullanılır. foreach döngüsü dizinin eleman sayısı kadar döner ve iterasyonda eleman değişkeni dizinin bir sonraki elemanın değerini verir.

48 Örnek (foreach): foreach (char harf in textBox1.Text) listBox1.Items.Add(harf);

49 devam edecek…


"DİZİLER (ARRAYS) YRD.DOÇ.DR. CİHAD DEMİRLİ Kaynaklar: Algan, S. (2010). Her Yönüyle C# 4.0, Pusula Yay.,İstanbul Yanık, M. (2009). Visual C# 3.0 for.Net." indir ppt

Benzer bir sunumlar


Google Reklamları