Programlamada dizi kullanımı(array)

Bunu Paylaş!

Merhaba herkese…
?


programlamada dizi yapıları, array          Bir programlama yazısıyla daha karşınızdayım. En son döngü örneklerini incelemiştik. Benim burada yazdığım örnekler kendimce spontane bir şekilde bulduğum ve Visual studio ortamında kodunu yazdığım soru örnekleridir. Sizler de benzer şekilde örnekleri kolaydan zora olacak şekilde kendiniz uygulayabilir ve  bu konuyu kalıcı olarak öğrenebilirsiniz. Bugünkü yazımın konusu programlamada sıklıkla karşımıza çıkan bir   başka önemli yapı olan diziler… (Biz türkçeleşmiş olduğu için dizi diyoruz fakat aslında array olarak bilmek daha doğru olacaktır)             Diziler programlamada daha önce öğrenmiş olduğumuz değişkenlere benzeyen yapılar olarak tanımlayabiliriz. Farkı ise değişken tanımlandığı zaman sadece tek bir yapıyı ifade ederken dizi birden çok değişkenin bir araya gelmesiyle oluşur. Bir program yazarken mutlaka değişkene ihtiyaç duyarız çünkü atayacağımız veya tutmak istediğimiz değerin bir yerde depolanması gerekir ki biz bunu değişken yardımıyla halledebildik şu ana kadar. Fakat bir iki değil de çok fazla değişkene ihtiyaç duyduğumuz bir program tasarladığımızda değişken kullanmak hem zor hem de kod yükünü arttırmış olacağından programımızın verimliliği düşecektir. En az kodla en çok işi yapmak gerektiği kuralını hatırlayalım. İşte bu sebeplerden ötürü değişken kullanmak yerine dizi kullanmak daha mantıklı olacaktır. Dizi oluştururken örneğin 100 elemanlı bir diziden örnek verecek olursak dizi içinde 100 ayrı değişken varmış gibi düşünülmemeli çünkü aslında dizi kullanmanın bir başka güzelliği de bu 100 değişkenin birbiriyle bağlantılı olması…            Şöyle bir toparlayacak olursak dizi dediğimiz yapı birden fazla ve birbiriyle bağlantılı değişkenlerin bir araya gelmesidir diyebiliriz. Peki bu dizilerin tipleri nelerdir?Çeşitleri var mıdır? Bu tür sorulara cevap arayalım. İlk olarak bir dizi istenilen tipte oluşturulabilir. Aynen değişken oluştururken amacımıza göre farklı tipler belirleyebildiğimiz gibi dizi oluştururken de amacımıza göre farklı tipte tanımlayabiliriz. Bu kısmın daha iyi anlaşılabilmesi için aşağıda örnekler veriyor olacağım. Dizilerin çeşitlerine gelecek olursak tek boyutlu ya da çok boyutlu diziler olarak tanımlayabilmemiz mümkündür.  
  

 KULLANIMI NASIL?

  •     Bu kısımda dizilerin tanımlanması ve genel kullanımı hakkında örnek uygulamalara yer vereceğim. 


İlk olarak 100 elemanlı bir dizi tanımlaması yapalım.

  int [] ilkdizi = new int[100];

Bu satırı adım adım inceleyecek olursak    

int //dizimizin tipi  

[] dizi // [] sembolü bizim için orada bir dizi olduğunun bir göstergesi ve dizimizi yazarken sürekli kullanacağımız bir sembol, ilkdizi ise bizim bu diziye verdiğimiz isim yani diziyi bu isimle çağıracağız. 

= new int[100]; // = operatörü ile atama yapmış oluyoruz.(atama ne? diyenler için tıklayınız ) devamındaki new int[100] ile 100 elemanlı int tipinde yeni bir dizi tanımlamış olduğumuzu ve bu diziyi de kendi adını verdiğimiz “ilkdizi” ye atama yapmış oluyoruz.


Örnekler

1. int tipinde bir dizi tanımlayalım, 10 elemanlı olsun ve ilk üç indisine ([] sembolünün içine yazdığımız sayı) değer atayalım. Atadığımız değerleri görüntüleyelim.

int [] ilkdizi = new int[10];

       ilkdizi[0] = 5; //int [] ilkdizi ={5,6,7}; şeklinde de             ilkdizi[1] = 6; //tanımlayabilirdik iki tanımlama arasında 

       ilkdizi[2] = 7; // fark yoktur.
     Console.WriteLine(
ilkdizi[0]);
     Console.WriteLine(ilkdizi[1]);

     Console.WriteLine(ilkdizi[2]);

            Console.ReadKey();

NOT:Dizi indisleri 0’dan başlar!!!

2. Yukarıdaki örnektekine benzer bir örnek fakat  for döngüsü kullanarak atama yaptıralım ve ekrana yazalım. dizimiz de 100 elemanlı olsun. Her bir değer de indis değeriyle aynı olsun.

    int[] ilkdizi = new int[100];

    for (int i = 0; i < 100; i++)

   {
      ilkdizi[i] = i;
      Console.WriteLine(ilkdizi[i]);
   }

      Console.ReadKey();

3.Bir tane string tipinde dizi yazalım. Mevsimleri içersin.

    string[] mevsimdizi = {“İlkbahar”,”Yaz”,”Sonbahar”,”Kış”};

    for (int i = 0; i < 4; i++)

   {
      Console.WriteLine(mevsimdizi[i]);
   }

      Console.ReadKey();



4.
Bir tane double(ondalıklı sayılar için kullanılan tip) tipinde dizi yazalım. Virgüllü sayılar içersin.

   

    double[] fdizi = { 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8 };

    foreach (double a in fdizi //burada for yerine foreach 
     Console.WriteLine(a);      //kullandık, diziler de sıklıkla                                         //foreach kullanılır dizi içinde                                                   //gezinmeyi sağlar.

     Console.ReadKey();


5.Bir Son bir örnek yapalım. Aylar bilgisinin tutulduğu bir dizimiz olsun. Bu dizide yılın ayları eleman olarak yer alsın. O anki ay bilgisini sistemden çekelim ve dizimizdeki indisle eşleştiğinde içinde bulunulan ayı ekrana yazan programı yazalım. Burada programın komple çalışan halini aldım alıp deneyebilirsiniz.

   

    

   using System;

   namespace konsolilk
  {
    class MainClass
    {
        public static void Main(string[] args)
        {

  string [] aylar = { “Ocak”,“Şubat”, “Mart”, “Nisan”, “Mayıs”, “Haziran”, “Temmuz”, “Ağustos”,“Eylül”,“Ekim”,“Kasım”,“Aralık”};

 for(int i=0;i<12;i++)
{
    if ((DateTime.Today.Month) == (i+1))//Buradaki DateTime.Today.Month 
 {                        //hazır fonksiyonu ile o anki ay bilgisini sayı                                   //cinsinden çekiyoruz.
   Console.WriteLine(aylar[i] +” ayındasınız.”);

 }

       }
                
        Console.ReadKey();

        }
    }
}


        Şöyle Evet bir yazının daha sonuna geldik tabi konu bitti mi hayır…
Bir sonraki yazıda buradaki kolay örnekleri zorlarını yazmayı planlıyorum. Biz burada dizi dedik fakat aslında bu konuyu array olarak bilmek daha faydalı olacaktır. Çünkü gelecek yazıda dizilerde kullandığımız hazır metotlardan bahsedeceğim ve orada dizi değil hep array diye yazacağız. Bir de matrisleri, çok boyutlu dizileri analatacağım. Bir sonraki sefer görüşmek üzere…
      Hoşçakalın…??
Bunu Paylaş!

Bir cevap yazın

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