Buradasınız

35-C# Console Diziler(Array)

c# dersleri

Diziler

Diziler; birden fazla aynı tür bilgileri bir isim altında tutan yapılardır. Bir ilin haftalık sıcaklık değerleri, 30 kişilik bir sınıfın öğrenci isimleri, günler, aylar, vb. değerler için tek tek değişken oluşturmaktansa bir değişken oluşturulup istenen kadar eleman bir başlık altında toplanabilir.

Kullanım şekli; 

tipi[] dizi adı = new tipi[eleman sayısı];                           //Dizi tanımlama
dizi adı[index ]=değer;                                              // index nolu elemanına değer atama.
Console.WriteLine (dizi adı[index]);                                 //  Ekrana yazdırma

Örnek : Haftanın günlerini bir dizi oluşturarak günleri atayalım. Adım adım oluşturalım.

  • Gün isimleri Sayısal mı?  String mi? à Tipi belirleyelim
    • string[]
  • Dizinin adını belirleyelim
    • string[] gunler
  • Eleman sayısı kaştır? à Haftada 7 günümüz var
    • string[] gunler = new string[7];
  • Değerleri atayalım

gunler[0] = "Pazartesi";  // ilk eleman index’i 0(sıfır) olamlıdır.
gunler[1] = "Salı";
gunler[2] = "Çarşamba";
gunler[3] = "Perşembe";
gunler[4] = "Cuma";
gunler[5] = "Cumartesi";
gunler[6] = "Pazar";

  • Salı günü ekrana yazdıralım. Nasıl olacak?
    • Console.WriteLine(gunler[1]);

Tamamını bir araya toplayacak olursak.

// dizi tanımlanıyor ve eleman sayısı belirleniyor.
string[] gunler=new string[7]; 
gunler[0] = "Pazartesi";  // diziye elemanlar atanmaya başlanıyor.
gunler[1] = "Salı";
gunler[2] = "Çarşamba";
gunler[3] = "Perşembe";
gunler[4] = "Cuma";
gunler[5] = "Cumartesi";
gunler[6] = "Pazar";
Console.WriteLine(gunler[1]); // 1 indexli (2. Sıradaki eleman) yazdırılıyor.

Tanımlama ve atama işlemlerinin 1. Yöntemi yukarıdaki gibidir. Bunun dışında tanımlama ve atama işlemi aşağıdaki gibi farklı şekillerdede yapılabilir.

2.Yöntem

string[ ] gunler; // dizi tanımlanıyor
gunler=new string[7];  // eleman sayısı belirleniyor.
gunler[0] = "Pazartesi";  // diziye elemanlar atanmaya başlanıyor.
gunler[1] = "Salı";
gunler[2] = "Çarşamba";
gunler[3] = "Perşembe";
gunler[4] = "Cuma";
gunler[5] = "Cumartesi";
gunler[6] = "Pazar";

3.Yöntem

// dizi tanımlanıyor, eleman sayısı belirleniyor ve elemanlara atama yapılıyor
string[ ] gunler = new string[7] { "Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi","Pazar"};

4.Yöntem

// dizi tanımlanıyor, eleman sayısı otomatik belirleniyor ve elemanlara atama yapılıyor
string[ ] gunler = new string[] { "Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi","Pazar"};

 

Bu yöntemlerden herhangi biri kullanılabilir. Aşağıdaki yazdırma yöntemi hiç değişmemektedir.

 

Belirlene değerin yazdırılması(Değişen bir şey yok)

Console.WriteLine(gunler[1]); // 1 indexli (2. Sıradaki eleman) yazdırılıyor.
string gun;
gun=gunler[2]; // 2 indexli (Çarşamba) gun değişkenine atanıyor.

 

NOT: Dizide  ilk elemanın index numarası  0(sıfır) dır. Aşağıdaki gibi elemanlara ulaşılabilir.

Örneğimizde günün değerini girip, ekrana da günü yazalım.

int gundegeri;    
string[] days = new string[7] ;
days[0] = "Pazartesi";
days[1] = "Salı";
days[2] = "Çarşamba";
days[3] = "Perşembe";
days[4] = "Cuma";
days[5] = "Cumartesi";
days[6] = "Pazar";
Console.Write("Kaçıncı gündesiniz: ");
gundegeri = int.Parse(Console.ReadLine());
if((gundegeri>=1) && (gundegeri<=7))    
{
    Console.WriteLine(days[gundegeri - 1]);
}
else
{
    Console.WriteLine("Yanlış İfade girdiniz");
}
Console.ReadKey(); 

 

Örnek:  Mevsimleri bir diziye atayalım. Atama işleminden sonra ekrana yazdıralım. (İlkbahar, Yaz, Sonbahar, Kış)

string[] mevsimler=new string[4]{"İlkbahar","Yaz","Sonbahar","Kış"}; 
Console.WriteLine(mevsimler[0]);
Console.WriteLine(mevsimler[1]);
Console.WriteLine(mevsimler[2]);
Console.WriteLine(mevsimler[3]);
//tek satırda yazdırma
Console.WriteLine(mevsimler[0]+" "+mevsimler[1]+" "+mevsimler[2]+" "+mevsimler[3]);
Console.WriteLine("{0} {1} {2} {3}",mevsimler[0],mevsimler[1],mevsimler[2],mevsimler[3]);
Console.ReadKey();

Örnek: 3 arkadaşımızın adını ve numarasını iki ayrı dizide saklayalım. 2. Sıradaki arkadaşınızın adını ve numarasını ekrana aşağıdaki gibi yazdırınız.

84  nolu öğrencinin adı : Ayşe

string[] adlar = new string[3];
adlar[0] = "Ali";
adlar[1] = "Ayşe";
adlar[2] = "Ömer";

int[] numaralar = new int[3];
numaralar[0] = 52;
numaralar[1] = 84;
numaralar[2] = 154;
Console.Write(numaralar[1] + " nolu öğrencinin adı : " + adlar[1]);
Console.ReadKey();

 

NOT: Bir string ifadenin kaç karakterden oluştuğunu nasıl öğreniyorsak,  dizilerde de eleman sayısını Length özeliğiyle bulunabilir. int türünde bir değer geri dönecektir. Count( ) metoduda aynı görevi görmektedir.

string[] mevsimler=new string[4]{"İlkbahar","Yaz","Sonbahar","Kış"}; 
Console.WriteLine(mevsimler.Length);
Console.WriteLine(mevsimler.Count());
int a = mevsimler.Length;

 

NOT: Dizideki En büyük değeri Max() , En küçük değeri Min() ile bulabiliriz. Stringlerde “a” küçük “z” büyük olarak algılanır. Genellikle sayısal ifadelerde kullanılır.

int[] sayilar = new int[] { 23, 42, 45, 78, 94, 12, 97 };
Console.WriteLine("Dizinin eleman sayısı {0}", sayilar.Length);
Console.WriteLine("Dizideki en büyük değer {0}",sayilar.Max());
Console.WriteLine("Dizideki en küçük değer {0}",sayilar.Min());
Console.ReadKey();

String ifade için örnek verecek olursak…

string[] mevsimler = new string[4] { "İlkbahar", "Yaz", "Sonbahar", "Kış" };
//tek satırda yazdırma
Console.WriteLine(mevsimler[0] +" "+ mevsimler[1] +" "+ mevsimler[2] +" "+ mevsimler[3]);
Console.WriteLine("{0} {1} {2} {3}", mevsimler[0], mevsimler[1], mevsimler[2], mevsimler[3]);
Console.WriteLine( mevsimler.Max());
Console.WriteLine( mevsimler.Min());
Console.WriteLine(mevsimler.Length);
Console.ReadKey();


Örnek: Bir haftanın günlük sıcaklık değerlerini klavyeden girilerek, haftanın sıcaklık ortalamasını bulalım ekrana yazdıralım. Haftanın en sıcak derecesini ve en soğuk derecesini de bulup ekrana yazdıralım.

sbyte[] hafta_sicaklik = new sbyte[7];
for (int i = 0; i < 7; i++)
{
    Console.Write("{0}. Gününü sıcaklık değerini girin: ", i + 1);
    hafta_sicaklik[0] = sbyte.Parse(Console.ReadLine());
}
int ort=0;
for (int x = 0; x < 7; x++)
{
    ort += hafta_sicaklik[0];
}
ort = ort / hafta_sicaklik.Length;
Console.WriteLine("Haftanın sıcaklık ortalaması {0}", ort);
Console.WriteLine("En yüksek sıcaklık {0}",hafta_sicaklik.Max());
Console.WriteLine("En düşük sıcaklık {0}", hafta_sicaklik.Min());
Console.ReadKey();

Örnek : 10 elemanlı sayilar adında bir dizi oluşturularak diziye klavyeden 10 elaman girilmesini sağlayınız.
Dizideki en büyük ve en küçük elemanı ekrana yazdırınız.

int[] sayilar = new int[10];
for (int i = 0; i < 10; i++)
{
    Console.Write("Sayı girin: ");
    sayilar[i]=int.Parse(Console.ReadLine());
}
Console.WriteLine("En büyük sayı : {0}", sayilar.Max());
Console.WriteLine("En küçük sayı : {0}", sayilar.Min());
Console.ReadKey();

Örnek: 1 ile 500 arasında rastgele 100 elemanı bir diziye atayarak en büyük ve en küçük elemanı ekrana yazdırınız.

int[] sayilar = new int[100];

Random r=new Random();
for (int i = 0; i < 100; i++)
{
    sayilar[i] = r.Next(1, 501);
}
Console.WriteLine("En büyük sayı : {0}", sayilar.Max());
Console.WriteLine("En küçük sayı : {0}", sayilar.Min());
            
Console.ReadKey();

 

Yorum ekle

Konuyla İlgili Yazılar

c# dersleri

12-C#-7 ++ ve -- Operatörleri

++ VE -- OPERATÖRLERİ Bu operaröler bir artırma ve azaltma işlemi yapar. Değişkenin sağında veya solunda kullanılmasına göre işlem değişir. a++; --> a=a+1;... devamı...