Ana içeriğe atla

C# Dilinde Diziler

Aynı türden birden fazla verileri saklamak için kullandığımız yapıya dizi denildiğini C++ derslerimizden hatırlıyoruz. Peki ya farklı şeyleri aynı ortamda tutmak istersek ne yapacağız, ileri ki zamanda collection konusunda bunu daha iyi anlayacaksınız. Dizi elemanları birbirinden bağımsızdır,birbirlerini varlıklarıyla etkilemezler.Diziler önemli bir konudur neredeyse tüm programlama dillerinin temelini oluşturur ve bir çok işimizi diziler ile yaparız. Şu ana kadar dizi kullanmadığımın çok az proje vardır o da ilk projelerimden biridir. C# nesneye dayalı bir programlama dili olduğu için dizi oluşturma şekilleri de birbirinden farklıdır. Şimdi kısaca bunlardan bahsedelim;

C# dilinde dizilerde bir sınıfı temsil eder, en başta dediğimiz gibi her şey bir sınıfın içerisindedir. Sınıf ve nesne kavramları oturmadan C# ve Java öğrenmek neredeyse imkansızlaşır. Programcı bir dizi oluşturmak isterse ilgili dizi türünün sınıfından bir nesne oluşturmalıdır. Bu cümleyi daha iyi anlayabilmek için aşağıdaki örneği inceleyelim.

int TekSayi=new int[5]

int:Dizi hücresinin türü(integer)
[5]:Dizinin boyutu
new int [5]:Oluşan dizinin referansı
—>Dizinin her bir elemanına erişmek için diziyi gösteren referans kullanılır.

—>Bir dizi hücresine erişmek için ilgili hücrenin sırası diziyi gösteren referansın sağına konulan köşeli parantez içerisine yazılır.

Dizi kurallarının hatırlatmakta istiyorum. Çünkü çalışırken bunları unuttuğumuzda projelerimizde büyük sorunlar ortaya çıkabilir.  Öncelikle erişim indeksi kesinlikle negatif bir sayı olamaz ve erişim indeksi kesinlikle dizi boyutundan büyük olamaz. Erişim indeksi tam sayı olmalıdır, double değişken kullanılamaz. Bunları da hatırladıktan sonra gelelim dizi çeşitlerimize dizilerimiz C++’dan da aşina olduğunuz gibi bir ve iki boyutlu diziler var. Fakat onların yanına üç boyutlu diziler de eklenmekte. Dizilerin yazılış sistemleri aşağı da verilmiştir. İnceleyiniz.

int[]sayi=new int[5]//Bir boyutlu dizi için

int[,]matris=new int[5,5]//İki boyutlu dizi için

int[, ,]UcBoyutluDizi=new int[5,5,5]//Üç boyutlu dizi için

—–>C#’da rastgele sayılar atamak için “Random” sınıfı kullanılır. Random sınıfı döngü içerisinde çağırılmamalıdır. Çünkü  her yeni random nesnesinin ürettiği sayı aynı olur.

int[] Sayi_Dizisi=new int[10];

Random random=new random();

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

{

Sayi_Dizi[i]=random.Next(0,10);

Console.WriteLine(Sayi_Dizisi[i]);

}

Aynı türden birden fazla verileri saklamak için kullandığımız yapıya dizi denildiğini C++ derslerimizden hatırlıyoruz. Peki ya farklı şeyleri aynı ortamda tutmak istersek ne yapacağız, ileri ki zamanda collection konusunda bunu daha iyi anlayacaksınız. Dizi elemanları birbirinden bağımsızdır,birbirlerini varlıklarıyla etkilemezler.Diziler önemli bir konudur neredeyse tüm programlama dillerinin temelini oluşturur ve bir çok işimizi diziler ile yaparız. Şu ana kadar dizi kullanmadığım çok az proje vardır o da ilk projelerimden biridir. C# nesneye dayalı bir programlama dili olduğu için dizi oluşturma şekilleri de birbirinden farklıdır. Şimdi kısaca bunlardan bahsedelim;

C# dilinde dizilerde bir sınıfı temsil eder, en başta dediğimiz gibi her şey bir sınıfın içerisindedir. Sınıf ve nesne kavramları oturmadan C# ve Java öğrenmek neredeyse imkansızlaşır. Programcı bir dizi oluşturmak isterse ilgili dizi türünün sınıfından bir nesne oluşturmalıdır. Bu cümleyi daha iyi anlayabilmek için aşağıdaki örneği inceleyelim.

int TekSayi=new int[5]

int:Dizi hücresinin türü(integer)
[5]:Dizinin boyutu
new int [5]:Oluşan dizinin referansı

}

Diziler metotlarda ya da fonksiyonlarda parametre olarak çağrılabilir.

—–>martis.Lenght//Toplam eleman sayısını getirir.

—–>matris.GetLenght()//İstenilen boyutun eleman sayısı getirilir, parantez içine boyut yazılır.

Şu zamana kadar bahsettiğimiz tüm konular düzenli dizilerdendi. Şimdi ise düzensiz dizilerden bahsedeceğiz.

DÜZENSİZ DİZİLER

Satır ve sütunu eşit olan diziler olduğu gibi satır ve sütunu eşit olmayan dizilerde bulunmaktadır. Bunlara düzensiz(jagged array)diziler denir. Düzensiz diziler oluşturulurken;

int[][]PuruzluDizi=new int[5][];
Düzensiz diziler çağrılırken foreach döngüsü kullanılır. Foreach döngüsünün yapısı aşağıdaki gibidir. Foreach döngüsü ayrıca collection kullanılır.

foreach(var sayi in matris)

{

//sayi değişkeni her dönüşte dizideki bir sonraki elemanın değerini tutacaktır.

Console.WriteLine(sayi);

}

Diziler konusu bu kadar, daha sonra örnekler paylaşacağım. Yorumlarınızı bekliyorum. :)

Yorumlar

Bu blogdaki popüler yayınlar

Algoritma Kavramı, Sözde Kod ve Akış Diyagramı

Bu yazımda çoğumuzun amelelik gibi gördüğü fakat belki de en önemli konu hakkında kısaca bilgi vermek istiyorum. Bundan sonra küçük örneklerle kod yazmayı arttıracağız. Programlama dillerinden bahsetmiştik geçenlerde. Yüksek seviyeli veya düşük seviyeli diller olsun hepsinin arasında kullanım farkları haricinde çok bir farkılılık yoktur. Hayatımızda kullandığımız koca koca programları, programlama dilleri değil onları hazırlayan algoritma kaynağı oluşturur. Kısaca algoritma kavramını tanımlarsak; Algoritma, belli bir problemi çözmek veya belli bir amaca ulaşmak için çizilen yoldur. Algoritma proglamlamada kullanılan en güzel tekniktir. Neyi nasıl yapacağımızı planlamamızı sağlar. Algoritmayı oluşturanda sözde kod ve akış diyagramlarıdır. ALGORİTMA ÖRNEĞİ(resim1) Sözde Kod:Yapacağımız algoritmayı kısa olarak sözle tanımlama yöntemidir. Örneğin; İki sayının toplamını veren algoritmanın sözde kodunu yazınız. 1)BAŞLA 2)YAZ(“1.sayiyi giriniz:”) 3)OKU(S1) 4)YAZ(“2.sayiyi g...

Örnek Algoritmalar ve Örnek C++ Kodları

Örneklerimize bu başlığımız altında devam ediyoruz arkadaşlar. :) Yıl başına kadar C++ hakkında bildiğim tüm konuları ve yaptığım projeleri sizlerle paylaşacağım. Sorularınızı yorumlarda bekliyorum. Şimdiden kolay gelsin :) Algoritma 5: Yarıçapı klavyeden girilen kürenin yüzey alanını ve hacmini açıklayan algoritmanın C++ kodunu yazınız.(π=3) #include <iostream> using namespace std; int main() { float r,alan,hacim; cout<<“Yaricapi giriniz:”; cin>>r; alan=4*3*r*r; hacim=(4*3*r*r*r)/3; cout<<“Alan:”<<alan<<endl; cout<<“Hacim”<<hacim<<endl; } Algoritma 6: Katsayıları klavyeden girilen birinci dereceden denklemin kökünü bulan algoritmanın C++ kodunu yazınız. #include <iostream> using namespace std; int main() { int a,b,c,x; cout<<“Katsayilari giriniz:”; cin>>a>>b>>c; x=(c-b)/a; cout<<“Kok:”<<x; } Algoritma 7:Klavyeden yarıçapı ve dilim açısı girilen daire diliminin...

C++ ile Veri Yapıları

Bu yazımızda, bilgisayar dünyasının temel yapı taşı olan veri yapısı konusunu ele alacağız. Bu konu oldukça zor olmakla birlikte, gayet önemli ve eğlenceli yapıdır. Veri yapısını bilmek ve etkin kullanmak, hayatınızda yapacağınız projelerde size kolaylık sağlayacaktır. Veri yapısı genel olarak bakıldığınında hayatımızın her anında vardır. Konular ilerledikçe bu daha iyi anlaşılacaktır. Veri yapısını tanımlamak gerekirse, bilgisayar ortamında verilerin etkin olarak saklanması ve işlenmesi için kullanılır. Veri yapıları, verilerin düzenlenme biçimini belirleyen yapıtaşlarıdır. Bir yazılım değişkeni bile basit bir veri yapısı olarak kabul edilebilir. Değişik algoritmalarda verilerin diziler, listeler, yığıtlar, kuyruklar, ağaçlar ve çizgeler gibi veri modellerine uydurularak düzenlenmesi gerekebilir. Veri, yapı ve algoritma bir yazılımın birbirinden ayrılmaz bileşenleridir. Algoritması hazırlanmış her yapı için verilerin düzenli bir şekilde kullanımı önemlidir. Çünkü yapı iyi kurul...