C# Diziler Konu Anlatımı

DİZİ DEĞİŞKENLER(DİZİLER)

Aynı tipteki veriler çok ise normal değişken kullanmak yerine dizi değişkenler kullanılır. Veriler dizi değişkenlerde 0. indexden başlayarak sıra ile bulunur. Bir örnek olarak haftanın günleri için tek boyutlu bir dizi düşünülebilir. İlk eleman(veri) Pazartesi gününün index numarası 0, son eleman olan Pazar gününün index numarası ise 6 dır.(Pazartesi gün 1.gündür ama ilk elemanın index numarası 0 dan başlar. Bu yüzden son gün yani 7.gün olan Pazar’ın index numarası da 6 olur).

NOT: Değişken tek bir değer tutabilirken dizi (dizi değişken)ise içerisinde birden fazla sayıda aynı tipte değer tutabilir.

Dizi Tanımlama 1.Yöntem:

Dizinin_tipi [] dizinin_adı = new dizinin_tipi[eleman sayısı];

Örnek:int[] yazili=new int[10];           //10 elemanlı int tipinde yazili isminde bir dizi oluşturuldu.

string[] ad=new string[20];                   //20 elemanlı string tipte ad isminde bir dizi oluşturuldu.

Dizi Tanımlama 2.Yöntem:

Önce diziyi tanımlayıp daha sonra eleman sayısını belirtebiliriz.

Dizinin_tipi [] dizinin_adı;

Dizinin_adı=new dizinin_tipi[eleman sayısı] ;

Örnek:

int[] yazili;

yazili=new int[10];

string[] ad;

ad=new string[20];

Dizilerin içine değer atama işlemi ise aşağıdaki gibi olabilir.

I.Yöntem:

string [ ] gunler = {“Pazartesi”,”Salı”,”Çarsamba”,”Persembe”,”Cuma”,”C.tesi”,”Pazar”};

int [ ] sayilar = {10, 12, 18, 29, 8};

Dikkat! Bu tür tanımlama yaparken dizinin kaç elemanlı olacağını belirtmedik. Dizinin içine kaç eleman eklersek dizinin boyutu (eleman sayısı) o kadar olur.

II.Yöntem:

string[] mevsimler = new string[4];

mevsimler[0] = “İlkbahar”;

mevsimler[1] = “Yaz”;

mevsimler[2] = “sonbahar”;

mevsimler[3] = “Kış”;

Bu tanımlama şeklinde ise string tipte mevsimler isminde 4 elemanlı bir dizi tanımlandı. Daha sonra mevsimler[0]=”İlkbahar”; kodu ile mevsimler dizisinin 0.index(sıra) ‘ine “İlkbahar” değeri atandı.

Not:Bu şekilde tanımladığımız zaman dizinin 4 elemanlı olacağını belirttik. Eğer diziye 4 den fazla eleman eklersek hata oluşur.

Örnek:3 elemanlı isimler adında string tipte bir dizi tanımlayalım ve diziye 3 eleman girelim.

string[] isimler=new string[3];

isimler[0]=”Mehmet”;

isimler[1]=”Ahmet”;

isimler[2]=”Mustafa”;

isimler[3]=”Mahmut”;

MessageBox.Show(isimler[1]);

Yukarıdaki programda diziye 3 veya 3 den az sayıda eleman girdiğimiz zaman bir hata yok. Fakat diziye 3 den fazla eleman girdiğimiz zaman veya dizide olmayan index numarasına bir eleman atamaya kalktığımız zaman “İndex was outside the bounds of the array” (Dizi sınırları dışına taşma hatası) ile karşılaşırız.

NOT:Örnek olarak 7 elemanlı bir dizinin içine illaki 7 eleman atamak zorunda değiliz. 5,4,6 gibi 7 den daha az eleman atayabiliriz. Bu dizinin içine index numaralarına göre elemanları sırayla da atamayabiliriz. Karışık index sırasına göre atama yapabiliriz.

Örnek: Boş bir form oluşturalım ve Form yüklendiği anda gunler isminde bir dizi oluşturulsun ve dizinin içine haftanın günleri atansın ve gunler dizisinin 0. Ve 3. İndex indeki değerler mesaj kutusunda yazılsın.


privatevoid Form1_Load(Object sender, EventArgs e)

{

string[] gunler = newstring[7];  //gunler isminde string tipte ve 7 elemanlı bir dizi tanımlandı

gunler[0] = "Pazartesi";     // gunler dizisinin 0. İndexine “Pazartesi” değeri atandı.

gunler[1] = "Salı";          // gunler dizisinin 1. İndexine “Salı” değeri atandı.

gunler[2] = "Çarsamba";

gunler[3] = "Persembe";

gunler[4] = "Cuma";

gunler[5] = "Cumartesi";

gunler[6] = "Pazar";

MessageBox.Show(gunler[0]);   //gunler dizisi 0.indexdeki değer mesaj kutusunda yaz.

MessageBox.Show(gunler[3]);     //gunler dizisi 3.indexdeki değer mesaj kutusunda yaz.

NOT:Değişken adının yanındaki köşeli parantezinin içindeki sayılar değişkenin index(sıra) numarasını verir.

Örnek:Programımızda textBox1′e 1-7 aralığında bir değer giriyoruz. Girdiğimiz değere göre 1-7 arasında haftanın hangi günü ise textbox2′ye sonucunu gösteriyor. Örneğin textBox1′e 2 giriyoruz textbox2′de Salı yazıyor.


string[] gunler = newstring[7];

privatevoid Form1_Load(object sender, EventArgs e)

{

gunler[0] = "Pazartesi";

gunler[1] = "Salı";

gunler[2] = "Çarşamba";

gunler[3] = "Perşembe";

gunler[4] = "Cuma";

gunler[5] = "Cumartesi";

gunler[6] = "Pazar";

}
privatevoid button1_Click(object sender, EventArgs e)

{

//-------I.Yöntem--------------

//int gunsirasi = int.Parse(textBox1.Text);

//if (gunsirasi >= 1 && gunsirasi <= 7)

//{

//    textBox2.Text = gunler[gunsirasi - 1].ToString();

//}

//else

//{

//    MessageBox.Show("Hatalı Gün Numarası Girdiniz");

//    textBox2.Text = "";

//}

//—-II.Yöntem——

 


int gunsirasi = int.Parse(textBox1.Text);

switch (gunsirasi)

{

case 1:

textBox2.Text = gunler[0];

break;

case 2:

textBox2.Text = gunler[1];

break;

case 3:

textBox2.Text = gunler[2];

break;

case 4:

textBox2.Text = gunler[3];

break;

case 5:

textBox2.Text = gunler[4];

break;

case 6:

textBox2.Text = gunler[5];

break;

case 7:

textBox2.Text = gunler[6];

break;

default:

textBox2.Text = "";

MessageBox.Show("Hatalı Gün numarası girdiniz");

break;

}

}

Bazı dizi özellikleri ve metotları

Diziler, .NET Framework içinde tanımlı Array sınıfı temsil eder. Tüm diziler Array sınıfında tanımlı özellikleri ve metotları kullanırlar.

• Length

Dizinin bütün boyutlarındaki toplam eleman sayısını veren özelliktir.

ComboBox [] ComboBoxDizisi = new ComboBox[20];

MessageBox.Show(ComboBoxDizisi.Length.ToString());

// Sonuç = 20

int [] dizi = new int[1, 4, 4, 5, 6];

MessageBox.Show(dizi.Length.ToString());

// Sonuç = 2 * 5 * 5 * 6 * 7 = 2100

• Rank

Dizinin boyut sayısını veren özelliktir.

MessageBox.Show(dizi.Rank.ToString());

// Sonuç = 5

• GetLength

İndisi verilen boyutun kaç elemanlı olduğunu gösterir. Burada indisin sıfırdan başladığına dikkat edilmelidir.

int [,,,,] dizi = new int[10, 40, 50, 80, 90];

MessageBox.Show(dizi.GetLength(4).ToString());

// Sonuç = 90

Clear, Reverse, IndexOf metotları Array sınıfında Shared (paylaştırılmış) olarak tanımlı metotlardır. İşlemin yapılacağı dizi parametre olarak verilmelidir.

• Clear

Parametre olarak verilen dizinin, belirtilen indis aralığındaki tüm değerleri temizler. Temizleme işleminde atanan değer, dizi elemanlarının tiplerine göre değişir. Örneğin int tipinde tanımlı bir dizinin elemanları temizlenirse 0 değerini alacaktır. Buna karşın String tipindeki elemanlar “” (boş yazı) değerini alır.

int []dizi= {12, 13, 14, 15};

// 1. indisten başlayarak, 3 elemanı temizle

Array.Clear(dizi, 1, 3);

MessageBox.Show(dizi[2].ToString());

//Sonuç = 0

// Dizinin tüm elemanlarını temizler

Array.Clear(dizi, 0, dizi.Length);

• Reverse

Parametre olarak verilen dizinin eleman sırasını tersine çevirir. Dizinin tüm elemanlarının veya belirli indis aralığındaki elemanlarının sırası tersine çevrilebilir.

string [] harfler = {“A”, “B”, “C”};

Array.Reverse(harfler);

MessageBox.Show(harfler[2]);

// Sonuç = A

string [] harfler = {“A”, “B”, “C”};

Array.Reverse(harfler, 0, 1);

MessageBox.Show(harfler[2]);

// Sonuç = C

• IndexOf

İlk parametrede verilen dizide, ikinci parametrede verilen değeri arar. Aranan değer dizide bulunursa indisi, bulunamazsa -1 döndürür.

float [] notlar = {78.1, 99.9, 100, 12.2};

float maxNot = 100;

MessageBox.Show(Array.IndexOf(notlar, maxNot).ToString());

// Aranan maxNot değerinin indisi = 2

11.348 defa okundu.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Powered by WordPress | Designed by: credit repair | Thanks to st louis web design, essay writing and fire glass
c# örnekleri , csharp örnekleri , c# örnek , C# Örnekleri , örnekleri c# , C# ÖRNEKLERİ
BTT Sınavları

C# Uygulamaları

Müdür Yardımcılığı Sınavına Hazırlık Sayfası

Müdür Yardımcılığı Çalışma Notları

C# Uygulamaları

Yazılı Soruları Php Dersleri Bilişim Teknolojileri Alanı Yazılı Soruları C# Dersleri C# Örnekleri