Transcript
Diziler
Aynı tipten bir grup verinin aynı değişken isminde bulunmasıdır.
Örneğin;int[] gun = new int[ 7 ];
gun isminde yedi elemanlı bir boyutlu dizi tanımlar.
C# dilinde dilinde bütün diziler System.Array tipindedir. Yani System.Array sınıfının bütün fonksiyonlarını kullanabilirler.
2
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.
3
İndeks Numarası
gun[0] gun[1] gun[2] gun[3] gun[4] gun[5] gun[6]
2 6 6 4 12 54 -10
İnt[] gun = new int[7];İnt[] gun = new int[7];
gun[5] = 1;gun[5] = 1;if( gun[5] == 4 ) break;if( gun[5] == 4 ) break;gun[5] = gun[6] - 1;gun[5] = gun[6] - 1;
gun[5] = 1;gun[5] = 1;if( gun[5] == 4 ) break;if( gun[5] == 4 ) break;gun[5] = gun[6] - 1;gun[5] = gun[6] - 1;
Örnekler:Örnekler:
4
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)static void Main(string[] args){{
int[] gun = int[] gun = { 0,2,4,6,8,10,11 }{ 0,2,4,6,8,10,11 };;....................
}}
static void Main(string[] args)static void Main(string[] args){{
int[] gun = int[] gun = { 0,2,4,6,8,10,11 }{ 0,2,4,6,8,10,11 };;....................
}}
6
Dizilere İlk Değer Atama
static void Main(string[] args)static void Main(string[] args){{
int[] gun = int[] gun = { 0,2,4,6,8,10,11 }{ 0,2,4,6,8,10,11 };;
}}
Derleyici, buradaki sayıları sayar ve [][] içindekideğerin 7 olması gerektiğini bulur ve programı
int[] gun = new int[7]int[] gun = new int[7]olarak derler.
Derleyici, buradaki sayıları sayar ve [][] içindekideğerin 7 olması gerektiğini bulur ve programı
int[] gun = new int[7]int[] gun = new int[7]olarak derler.
7
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.
8
Ö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)static void Main(string[] args){{
double[] dizi = {1.0, 2.0, 3.0, 4.0,double[] dizi = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0,5.0, 6.0, 7.0, 8.0, 9.0, 10.0};9.0, 10.0};
double gecici;double gecici;gecici = dizi[9];gecici = dizi[9];dizi[9] = dizi[0];dizi[9] = dizi[0];dizi[0] = gecici;dizi[0] = gecici;
}}
9
Alıştırma
1-)Sistem tarafından üretilen rastgele 15 adet sayı bir dizi içerisine aktarılacak daha sonra bu dizideki elemanların en büyük ve en küçüğü bulunacak daha sonra dizi elemanları büyükten küçüğe ve küçükten büyüğe doğru sıralanacak
2-) 20 elemanlı içine rasgele sayılar atılan dizi içindeki en büyük sayıyı ve en küçük sayıyı bulup ekranda yazdıran programa ait console uygulaması örneği:
10
Alıştırma 1 - Çözüm
Sistem tarafından üretilen rastgele 15 adet sayı bir dizi içerisine aktarılacak daha sonra bu dizideki elemanların en büyük ve en küçüğü bulunacak daha sonra dizi elemanları büyükten küçüğe ve küçükten büyüğe doğru sıralanacak
11
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
13
foreach
Dizi içerisindeki her bir eleman için tek tek ilerleyen döngüdür.
for döngüsüne benzemektedir.
14
16 DİNAMİK DİZİLERBoyutu sabit olmayan, değişebilen dizi. Dinamik diziye elemanlar eklenebilir, diziden elemanlar silinebilir; dizinin boyutu azaltılabilir ve arttırılabilir. Bazı programlama dillerinde vektör adıyla anılan bu yapıyı birçok modern programlama dili kendi kütüphaneleriyle sunmaktadır.
Şimdi gelelim Dinamik Dizi tanımına, aşağıdaki kodlara bir göz atacak olursanız, kullanıcının girdiği bir değere göre dizi boyutunun belirlendiğini göreceksiniz.
int boyut; Console.Write("Dizi boyutunu giriniz:"); boyut = int.Parse(Console.ReadLine()); double[] notlar= new double[boyut];
17 Şimdi bir örnek yapalım, bir sınıftaki tüm öğrencilerin notlarını alıp, ortalamasını bulmak isteyelim.
Ç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
1 2 3
9 20 5
2 4 0
6 7 0
4 2 11
dizi
Standart dizilerde her bir boyut için satır ve sütun sayıları eşit olur. Bu sebeple standart diziler matrislere benzetilebilir.
20
Standart Çok Boyutlu Diziler
İki boyutlu bir dizi oluşturup bir döngü içersinde dizinin elemanlarına değerler atayalım.
21
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.
23
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.
24
Array.Reverse()
Dizinin eleman sırasını terse çevirir.
Sonuç : 4532 9 5 3 2 1
Not : Array.Sort ve Array.Reverse birlikte kullanılmak zorunda değildir.
27
Sorun
İhtiyacımız olan dizinin boyutunu daha önceden bilmiyorsak ne yapacağız?
Ya dizi dinamik olarak genişliyorsa?
28
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.
29
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.
30
ArrayList
Add
Capacity
Clear
Count
IndexOf
Insert
RemoveAt Reverse Sort TrimToSize
Önemli fonksiyonlar ve özellikler
32
0 ile 50 arasındaki sayılardan 5′e tam
olarak bölünenleri diziye aktaran program.int [] bes = new int[10];
int i,j=0;
for (i = 5; i <= 50; i += 5)
{
bes[j] = i;
j++;
}
34
top related