Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Diziler.

Benzer bir sunumlar


... konulu sunumlar: "Diziler."— Sunum transkripti:

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;
2 6 4 12 54 -10 Örnekler: gun[5] = 1; if( gun[5] == 4 ) break; gun[5] = gun[6] - 1;

7 for döngüsü içinde i değişkeninin değeri 0'dan 6'ya kadar gider
Ö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 = new string[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. 1 2 3 9 20 5 4 6 7 11 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
4 1 3 1 8 6 7 2 4 9

23 Çentikli (Jagged) Çok Boyutlu Diziler
string [] [] dizi = new string [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 = new ArrayList(); Örnek

36 ArrayList RemoveAt Add Reverse Capacity Sort Clear TrimToSize Count
Önemli fonksiyonlar ve özellikler Add Capacity Clear Count IndexOf Insert 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.

38 Kod


"Diziler." indir ppt

Benzer bir sunumlar


Google Reklamları