DİZİLER (Arrays) Yrd.Doç.dr. Cİhad demİrlİ

Slides:



Advertisements
Benzer bir sunumlar
DİZİLER – I. Kısım YRD.DOÇ.DR. CİHAD DEMİRLİ
Advertisements

STRİNG FONKSİYONLARI.
Yığın ve Kuyruk.
Ders İçeriği Bağlantılı Liste İki Yönlü Bağlantılı Liste
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Nesneye Dayalı Programlama
String Diziler(Katarlar)
dataReader- DataAdapter
Diziler & Kolleksiyonlar.  Çalışılan tüm objelerin bilinmemesi  Dinamik sayıda obje ile çalışmak  Benzer işlem yapılacak objeleri bir arada tutmak.
AKIŞ DİYAGRAMLARI Yard.Doç.Dr. Cihad DEMİRLİ
Diziler Dizi, bellekte aynı isim altında toplanmış değişkenler kümesidir. Eğer ki aynı türden veriler grubunu bellekte tutmak gerekirse diziler kullanılır.
Dizi (array) değişkenleri
BPR152 ALGORİTMA VE PROGRAMLAMA - II
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 4: Diziler
Nesneye Yönelik Programlama
DÖNGÜ İFADELERİ.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Diziler.
DİZİLER.
İNTERNET PROGRAMCILIĞI I BTP 207 Ders 9. Tek değişkende birden fazla bilgi tutulmak istendiğinde kullanılır. Kullanım şekli: var dizi_adı= new Array(eleman1,
AST409 Astronomide Sayısal Çözümleme
Sorular? Öneriler?. Referanslar Referanslar (Tekrar) Eğer aşağıdaki gibi yazarsak ne olur: int x; double y; char c; ???
~DÖNGÜLER~.
Nesneye Yönelik Programlama
Görsel C# Programlama Güz 2009 (6. Hafta).
C#.NET 5.0 C# .NET 5.0 Eğitimleri Volkan KANAT.
Chapter 6: Using Arrays.
For Döngüsü Foreach Döngüsü While Döngüsü
Diziler Dizi, bellekte aynı isim altında toplanmış değişkenler kümesidir. Eğer ki aynı türden veriler grubunu bellekte tutmak gerekirse diziler kullanılır.
Diziler Adres Kavramı Nesnelerin Adresleri sizeof Operatörü
BM-103 Programlamaya Giriş Güz 2014 (8. Sunu)
DÖNGÜLER.
NESNEYE YÖNELİK PROGRAMLAMA
C PROGRAMLAMA DİZİLER (ARRAYS).
Diziler (Arrays).
JAVA’DA DİZİLER Dr.Galip AYDIN.
Dizi ve ArrayList.
Ders İçeriği Liste Soyut veri yapısı (ADT)
Bölüm 3: Diziler BTEP 102 – Veri Yapıları ve Programlama
Ders 1: ARRAYLIST Hazırlayan : Yrd. Doç. Dr. Barış GÖKÇE
NESNEYE YÖNELİK PROGRAMLAMA
Visual Basic Windows Programlama.
Bilgisayar Programlama. Tek bir değişken tanımlamak için aşağıdaki gibi bir yazım yeterlidir. int i; Hatırlanacağı gibi bu tarz bir tanımlamada.
DİZİLER Arrays.
Ders 2- Veri türleri, Karar ve Döngü Yapıları, Görsel Kontröller
Değerler ve Değişkenler
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 4: Diziler
BTP206– Görsel Programlama II
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
String Diziler(Katarlar)
C Programlamada, benzer tipte tanımlaman değişkenleri kontrol etmede bize en çok yardım eden dostlarımız dizilerdir. Örneğin: 100 Öğrencinin bilgilerini.
BİLGİSAYAR programlama II
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
PHP ve HTML İnternet Programlama - 2. Koşullu İfadeler ve Döngüler Döngü ya da çevirim diyebileceğimiz, belli şart ve koşullarda istenilen değerleri yapabilmemizi.
İbrahim Olgaç PROGRAMLAMA DİLLERİ SUNUMU C#
7. HAFTA.
Seriport String İletimi
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler
STRING İŞLEMLERİ.
C Sharp 9. hafta - dIZILER.
DİZİLER Bellekte sıralı bir şekilde bulunan ve aynı türden bilgilerin saklandığı veri yapısına dizi (array) denir. Örneğin kullanıcıdan 7 kişinin not ortalamasını.
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 4: Diziler
C Programlama Yrd.Doç.Dr. Ziynet PAMUK BMM211-H11
NBP103 Programlama Temelleri Öğr. Gör. Mahmut Kılıçaslan
STRING İŞLEMLERİ.
ARDUİNO Arduino Eğitimleri Bölüm 3 Programlama Dili Temelleri
JAVA’DA DİZİLER. Özet  Dizi: belirli sayıda ve aynı veri türünden de ğ işkenlere aynı adla erişilmesini sa ğ layan bir yapıdır.  Dizilerde döngü işlemleri.
C++ Programming:. Program Design Including
MTM216 GÖRSEL PROGRAMLAMA
Sunum transkripti:

DİZİLER (Arrays) Yrd.Doç.dr. Cİhad demİrlİ Kaynaklar: Algan, S. (2010). Her Yönüyle C# 4.0, Pusula Yay.,İstanbul Yanık, M. (2009) . Visual C# 3.0 for .Net Framework 3.5, Seçkin Yay., Ankara Aktaş, V. (2010). Her yönüyle C# 4.0, Kodlab Yay., İstanbul

Dizi Bellekte art arda yer alan aynı türden nesneler kümesine dizi (array) denilmektedir. Bir dizi, elemanlarına aynı isimle ulaşır. Elemanlara arasındaki ayırt edici özellik bellekteki yerleridir.

Dizi Dizi [0] Dizi elemanı Dizi indeksi 15 Dizi[0] 365 Dizi[1] -12 Dizi adı İndeks operatörü İndis (indeks) Dizi elemanı Dizi indeksi 15 Dizi[0] 365 Dizi[1] -12 Dizi[2] 5 Dizi[3] 78 Dizi[4] 1 Dizi[5]

Dizi tanımlama (tek boyutlu) Diziler System.Array sınıfından türetilirler. Array sınıfındaki tüm metotlar kullanılabilir. int[] Dizi = new int[25]; ya da int[] Dizi; Dizi= new int[25]; Bildirim ve tanımlama Dizi[0] Dizi[1] Dizi[2] … Dizi[n] Bildirim Tanımlama

Dizi tanımlama (tek boyutlu) int[] dizi = new int[25]; Dizinin eleman sayısı Dizi elemanları tipi Dizi türü new (operatör veya anahtar sözcük) Burada operatör olarak yeni nesne oluşturmak için kullanılmıştır. Dizi bildirim operatörü Dizi adı

Hatırlatma ! New anahtar sözcüğü ile tanımlanan değişkenlere varsayılan bir değer atanmaktadır. Referans türleri için ‘null’ Nümerik türler için ‘0’ Bool türü için ‘false’

Dizi tanımlama Birden fazla dizi bildirimi; int[] dizi1, dizi2; Birden fazla dizi tanımlaması; int[] dizi1=new int [10], dizi2=new int[10]; Her iki dizi için bellekte ayrı ayrı alan tahsisi yapılır (allocation)

Çok Boyutlu Diziler Matris diziler Düzensiz (jagged) diziler Her bir dizi elemanı eşit sayıda eleman içerir Düzensiz (jagged) diziler Her bir dizi elemanı farklı sayıda dizi elemanı içerir

Matris diziler Matris yapısındadırlar. int [,] Dizi = new int[3,4] indis 1 2 3

Matris diziler Boyutlar aynı olmak durumunda değildir. int [,] Dizi = {{1,2},{3,4},{5,6}}; Dizi [0,0] 1 Dizi [0,1] 2 Dizi [1,0] 3 Dizi [1,1] 4 Dizi [2,0] 5 Dizi [2,1] 6 indis 1 2 3 4 5 6

Matris diziler 2 veya daha fazla boyutlu olabilir (örn. 3 boyutlu). int [,,] Dizi = {{{1,2},{3,4}},{{5,6}, {7,8}},{{9,10},{11,12}}}; Dizi [0,0,0] 1 2 Dizi [0,1,0] 3 Dizi [0,1,1] 4 Dizi [1,0,0] 5 Dizi [1,0,1] 6 Dizi [1,1,0] 7 Dizi [1,1,1] 8 Dizi [2,0,0] 9 Dizi [2,0,1] 10 Dizi [2,1,0] 11 Dizi [2,1,1] 12

Düzensiz diziler (jagged arrays) Her bir elemanını ayrı bir dizi gibi düşünebileceğimiz, farklı elemanlar içeren dizilerdir. Dizi dizisi de denmektedir. int[][] dizi = new int[3][]; dizi[0]= new int [5]; dizi[1]=new int [3]; dizi[2]=new int [4]; dizi[0][0] dizi[0][1] dizi[0][2] dizi[0][3] dizi[0][4] dizi[1][0] dizi[1][1] dizi[1][2] dizi[2][0] dizi[2][1] dizi[2][2] dizi[2][3]

Düzensiz (jagged) dizi - örnek

System.Array sınıfı Diziler Array sınıfından türedikleri için sahip oldukları bazı metotlar ve özellikler söz konusudur. Özellikler IsFixedSize Dizinin eleman sayısının sabit olup olmadığını verir (bool) IsReadOnly Dizideki elemanların sadece okunabilir olup olmadığını verir (bool) Length Dizideki eleman sayısını verir (int) Rank Dizinin boyutunu verir (int)

System.Array sınıfı Metotlar BinarySearch Tek boyutlu dizilerde binary search algoritmasına göre arama yapar Clear Dizinin elemanlarını varsayılan değere çeker Join Dizi içerisindeki değerlerin tümünü bir string değişkenine, belirtilen ayırıcı karakter kullanarak aktarır Copy Dizinin bir bölümü bir başka diziye kopyalar. Gerekli tür dönüşümleri ve boxing (kutulama) işlemi yapılır. CopyTo Bir dizinin belirlenen kısmını bir başka diziye kopyalar GetLength Dizideki eleman sayısını verir. GetValue Dizideki ilgili elemanın değerini verir IndexOf Dizi içindeki bir değeri ilk görüldüğü indeksi verir Reverse Diziyi tersine çevirir. SetValue Bir dizinin bir elemanına değer atar. Sort Bir boyutlu dizileri sıralamaya yarar. CreateInstance Yeni bir dizi nesnesi oluşturur.

Dizilerin İçerdiklerini Silmek Clear () metodu dizinin içerdiklerini siler(default değere dönderir), 3 parametreye sahiptir. Array.Clear (dizi_degiskeni, baslangic, eleman_sayisi) dizi_degiskeni: elemanları sıfırlanacak dizi değişkenini baslangic: silinecek ilk elemanı eleman_sayisi: içeriği silinecek eleman sayısını

Dizilerin İçerdiklerini Silmek 1 2

Dizilerin İçerdiklerini Kopyalamak Copy() metodu [1.tür kullanım] bir dizi değişkeninin içeriğini başka bir dizi değişkenine aktarır, 3 parametreye sahiptir. (kopyalama 0. indisten başlar) Copy(kaynak_dizi, hedef_dizi, sayi) kaynak_dizi: kopyalamaya kaynaklık edecek olan dizi hedef_dizi: hedefe durumunda olan dizi sayi: içeriği kopyalanacak elemanların sayısı

Copy() [Örnek 1. tür kullanım]

Dizilerin İçerdiklerini Kopyalamak Copy() metodu [2.tür kullanım] bir dizi değişkeninin içeriğini başka bir dizi değişkenine belirlenen kadarını belirlenen indisten itibaren aktarır, 5 parametreye sahiptir. Copy(kaynak_dizi, baslagic_indis, hedef_dizi, yazilacak_indis, sayi) kaynak_dizi: kopyalamaya kaynaklık edecek olan dizi baslangic_indis: kopyalamanın başlayacağı indis (kaynak) hedef_dizi: hedefe durumunda olan dizi yazilacak_indis: yazmanın başlayacağı indis (hedef) sayi: içeriği kopyalanacak elemanların sayısı

Copy() [Örnek 2. tür kullanım]

Dizilerin İçerdiklerini Kopyalamak CopyTo() metodu bir dizinin tamamını başka bir dizinin istenilen yerine (belirlenen indisten itibaren) aktarır, 2 parametreye sahiptir. kaynak_dizi.CopyTo( hedef_dizi, sayi) kaynak_dizi: kopyalamaya kaynaklık edecek olan dizi hedef_dizi: hedefe durumunda olan dizi sayi: içeriği kopyalanacak elemanların sayısı

CopyTo() [Örnek]

Dizilerin Eleman Sayısını Öğrenmek Legth ve GetLegth() Legth özelliği ve GetLegth() metodu dizi değişkeninin eleman sayısını öğrenmek için kullanılırlar

Örnek [GetLength()]

Dizileri Sıralamak Sort() metodu dizi içeriklerini sıralamak için kullanılır. Dizi elemanlarını küçükten büyüğe doğru sıralar. Array.Sort(dizi) dizi: elemanları sıralanması istenen dizi değişkeni

Örnek [Sort()]

Dizileri Ters Çevirmek Reverse() metodu dizi içeriklerini ilk eleman sona, son eleman başa gelecek şekilde ters çevirmek kullanılır. Array.Reverse(dizi) dizi: elemanları ters çevrilmesi istenen dizi değişkeni

Örnek [Reverse()]

Dizilerde Arama Yapmak BinarySearch() IndexOf() LastIndexOf() Contains()

BinarySearch() ile arama Aranan elemanın indeks numarasını döndürür Eğer aranan eleman bulunmazsa negatif değer döndürür Dizi değişkeninin sıralanması gerekir Dört farklı sürümü vardır ve bunlardan ikisi; BinarySearch(dizi, aranan_deger) ya da BinarySearch(dizi, aranan_deger, arama_baslangic_indisi)

Örnek [BinarySearch()]

Örnek [BinarySearch()]

IdexOf() ile arama Aranan elemanın indeks numarasını döndürür Eğer aranan eleman bulunmazsa negatif değer döndürür Dizi değişkeninin sıralanması gerekmez Kullanım biçimi; IndexOf(dizi, aranan_deger)

Örnek [IndexOf()]

Örnek [IndexOf()]

LastIndexOf() ile arama Aranan elemanın indeks numarasını döndürür Eğer aranan eleman bulunmazsa negatif değer döndürür Dizi değişkeninin sıralanması gerekmez Dizi değişkeninde birden fazla aynı içeriğe sahip eleman varsa son elemanın numarasını verir Kullanım biçimi; LastIndexOf(dizi, aranan_deger)

Örnek [LastIndexOf()]

Örnek [LastIndexOf()]

Contains() ile arama Aranan elemanın var olması durumunda boolean bir değer döndürür Kullanım biçimi; Contains(aranan_deger)

Örnek [Contains()]

Örnek [Contains()]

Dizi İçeriğini Birleştirmek [Join()] Join() metodu dizi değişkeninin tüm içeriğini belirlenen ayırıcı kullanarak birleştirilmiş halini göstermek için kullanılır. Kullanım biçimi; String.Join( ayirici_karakter, dizi)

Örnek [Join()]

Örnek [Join()]

Bazı diğer metotlar Add: ArrayList sonuna eleman ekler OnikiDevAdam.Add(“Hidayet Türkoğlu); Insert: ArrayList içerisinde belirlenen yere eleman ekler OnikiDevAdam.Insert(3, “Hidayet Türkoğlu); Remove: Dizi içerisindeki elemanı siler OnikiDevAdam.Remove(“Hidayet Türkoğlu); AddRange: Bir diziye başka bir dizi ekler Basketbol.AddRange(OnikiDevAdam); InsertRange: Bir diziye belirlenen yerden itibaren başka bir dizi ekler Basketbol.InsertRange(3,OnikiDevAdam); RemoveRange: Belirtilen indisten itibaren belirtilen sayıda eleman siler Basketbol.RemoveRange(0,2); Count: Dizinin eleman sayısını gösterir Clone: Belirtilen dizinin kopyasını object türünden alır

Döngülerle dizi işlemleri for ve foreach for önceki slatylarda açıklanmıştır. foreach genellikle bir dizinin elemanlarını ekrana yazdırmak ya da dizinin elemanlarını tek tek elde etmek amacıyla kullanılır. foreach döngüsü dizinin eleman sayısı kadar döner ve iterasyonda eleman değişkeni dizinin bir sonraki elemanın değerini verir.

Örnek (foreach): foreach (char harf in textBox1.Text) listBox1.Items.Add(harf);

devam edecek…