Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

DİZİLER (Arrays) Yrd.Doç.dr. Cİhad demİrlİ

Benzer bir sunumlar


... konulu sunumlar: "DİZİLER (Arrays) Yrd.Doç.dr. Cİhad demİrlİ"— 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 Dizi [0] Dizi elemanı Dizi indeksi 15 Dizi[0] 365 Dizi[1] -12
Dizi adı İndeks operatörü İndis (indeks) Dizi elemanı Dizi indeksi 15 Dizi[0] 365 Dizi[1] -12 Dizi[2] 5 Dizi[3] 78 Dizi[4] 1 Dizi[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 ve tanımlama Dizi[0] Dizi[1] Dizi[2] Dizi[n] Bildirim Tanımlama

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

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 Düzensiz (jagged) 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 1 2 3

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 1 2 3 4 5 6

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[0][0] dizi[0][1] dizi[0][2] dizi[0][3] dizi[0][4] dizi[1][0] dizi[1][1] dizi[1][2] dizi[2][0] dizi[2][1] dizi[2][2] dizi[2][3]

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) Length Dizideki eleman sayısını verir (int) Rank Dizinin boyutunu verir (int)

15 System.Array sınıfı Metotlar BinarySearch
Tek 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 Copy Dizinin bir bölümü bir başka diziye kopyalar. Gerekli tür dönüşümleri ve boxing (kutulama) işlemi yapılır. CopyTo Bir dizinin belirlenen kısmını bir başka diziye kopyalar GetLength Dizideki 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 Reverse Diziyi tersine çevirir. SetValue Bir dizinin bir elemanına değer atar. Sort Bir boyutlu dizileri sıralamaya yarar. CreateInstance Yeni 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
1 2

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 Örnek [BinarySearch()]

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 Örnek [IndexOf()]

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 Örnek [LastIndexOf()]

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 Örnek [Contains()]

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 Örnek [Join()]

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İ" indir ppt

Benzer bir sunumlar


Google Reklamları