Dizi nedir?
Dizi, aynı veri türündeki öğeleri depolamak için kullanılan bir veri yapısıdır. Öğeler sıralı olarak sıralanır ve ilk eleman 0 dizininde ve son eleman n-1 dizinindedir; burada n, dizideki toplam eleman sayısıdır.
Bu eğitimde şunları öğreneceksiniz:
- Dizi nedir?
- Bir Dizi Nasıl Bildirilir ve Başlatılır
- Sabit Boyutlu Diziler
- Dinamik Diziler
- Bir Dizinin İçeriğini Geri Alma
- Bir Diziye Yeni Öğeler Ekleme
- Bir Diziyi Silme
- Bölme İşlevi
- Birleştirme İşlevi
Bir Dizi Nasıl Bildirilir ve Başlatılır
VB.NET'te diziler Dim deyimi kullanılarak bildirilir. Örneğin:
Dim myData() As Integer
Yukarıdaki örnekte, myData adında bir dizi tanımladık ve tamsayı veri türünün öğelerini tutması gerekir. Aşağıdaki örnek, dize öğelerini tutmak için nasıl bir dizi bildirebileceğimizi gösterir:
Dim myData(10) As String
10 dizgeyi tutması için myData adında bir dizi tanımladık.
Dizileri bildirimleri sırasında başlatabiliriz. Örneğin:
Dim myData() As Integer = {11, 12, 22, 7, 47, 32}
MyData dizisini ilan ettik ve ona 6 tamsayı eleman ekledik. Bu, dizeler için de yapılabilir:
Dim students() As String = {"John", "Alice", "Antony", "Gloria", "jayden"}
Öğrenciler adında bir dizi oluşturduk ve buna 5 isim ekledik.
Sabit Boyutlu Diziler
Sabit boyutlu bir dizi, sabit sayıda öğe içerir. Bu, tanımı sırasında tutacağı öğe sayısını tanımlamanız gerektiği anlamına gelir. Yalnızca 3 öğrenci adını tutacak bir diziye ihtiyacınız olduğunu varsayalım. Diziyi aşağıdaki gibi tanımlayabilir ve başlatabilirsiniz:
Dim students(0 to 2) As Stringstudents(0) = "John"students (1) = "Alice"students (2) = "Antony"
Öğrenciler adında bir dizge dizisi tanımlayarak başladık. 0 ila 2, dizinin 0 dizininden dizin 2'ye kadar öğeleri depolayacağını bildirir, bu da toplamda 3 öğemiz olacağı anlamına gelir.
Diziye eleman eklemek için dizi adını kullandık ve elemanın depolanacağı dizini belirledik. Örneğin, John adı dizinin 0. dizininde saklanacaktır, yani dizinin ilk elemanını oluşturacaktır. Antony, dizinin son öğesi olacak.
Dinamik Diziler
Bu, herhangi bir sayıda öğeyi tutabilen bir dizidir. Dizi boyutu herhangi bir zamanda büyüyebilir. Bu, istediğimiz zaman diziye yeni öğeler ekleyebileceğiniz anlamına gelir. Bunu göstermek için, önce bir tamsayı dizisi tanımlayalım:
Dim nums() As Integer
Nums adında bir tamsayı dizisi tanımladık. Şimdi diziyi yeniden boyutlandırmak için yer verirken diziye iki öğe eklemeniz gerekiyor. ReDim ifadesini aşağıdaki gibi kullanmanız gerekir:
ReDim nums(1)nums(0) = 12nums(1) = 23
Dizimizin artık 0 ve 1 dizinlerinde iki elemanı var. Halihazırda sahip olduğu iki elemanı korurken dizin 3'e üçüncü bir eleman eklememiz gerekiyor. Bunu şu şekilde yapabiliriz:
ReDim Preserve nums(2)nums(2) = 35
Dizinin artık üç öğesi var.
Bir Dizinin İçeriğini Geri Alma
Geri alma, dizi elemanlarına erişim anlamına gelir. Bir dizi elemanına erişmek için onun indeksini kullanırız. Bunu bir örnekle gösterelim.
Adım 1) Yeni bir konsol uygulaması oluşturarak başlayın.
Adım 2) Aşağıdaki kodu uygulamaya ekleyin:
Module Module1Sub Main()Dim students(0 to 2) As Stringstudents(0) = "John"students(1) = "Alice"students(2) = "Antony"Console.WriteLine("First student is {0} ", students(0))Console.WriteLine("Second student is {0} ", students(1))Console.WriteLine("Third student is {0} ", students(2))Console.ReadKey()End SubEnd Module
Adım 3) Araç çubuğundan Başlat düğmesine tıklayarak kodu çalıştırın. Aşağıdaki pencereyi göreceksiniz:
Aşağıdaki kodu kullandık:
Kod Açıklaması:
- Module1 adlı bir modül oluşturma.
- Ana alt prosedürün oluşturulması.
- Dize elemanlarını saklamak için öğrenciler adında bir dizi oluşturmak. Dizi, dizin 0'dan dizin 2'ye kadar olan öğeleri depolayacaktır, bu da toplam 3 öğeye sahip olacağı anlamına gelir.
- Dizinin ilk öğesi olarak John adının eklenmesi, yani John dizin 0'da saklanır.
- Alice isminin dizinin ikinci elemanı olarak eklenmesi, yani Alice indeks 1'de saklanır.
- Antony ismini dizinin üçüncü öğesi olarak eklemek, yani Antonius dizin 2'de saklanır.
- Konsolda dizinin 0 dizininde depolanan bazı metin ve öğelerin yazdırılması. Öğrenciler (0), Students adlı dizinin 0. dizinindeki öğeye erişmemize yardımcı olur.
- Konsoldaki dizinin 1. dizininde depolanan bazı metin ve öğelerin yazdırılması. Öğrenciler (1), Students adlı dizinin 1. dizinindeki öğeye erişmemize yardımcı olur.
- Konsoldaki dizinin 2. dizininde depolanan bazı metin ve öğelerin yazdırılması. Öğrenciler (2), Students adlı dizinin 2. dizinindeki öğeye erişmemize yardımcı olur.
- Konsol penceresini duraklatmak veya kullanıcının kapatmak için harekete geçmesini beklemek.
- Alt prosedürün sonu.
- Modülün sonu.
Bir Diziye Yeni Öğeler Ekleme
Bu, yalnızca dinamik bir diziniz varsa gerçekleşir. Sabit boyutlu boyutlu bir dizi bildirdiyseniz ve dizi öğeleriyle doluysa, ona yeni öğeler ekleyemezsiniz. Aşağıdaki örnek, dinamik bir diziye yeni öğelerin nasıl ekleneceğini gösterir:
Adım 1) Yeni bir konsol uygulaması oluşturarak başlayın.
Adım 2) Aşağıdaki kodu uygulamaya ekleyin:
Module Module1Sub Main()Dim nums() As IntegerReDim nums(1)nums(0) = 12nums(1) = 23For x = 0 To nums.Length - 1Console.WriteLine("Initial array element: {0}", nums(x))NextReDim Preserve nums(2)nums(2) = 35For x = 0 To nums.Length - 1Console.WriteLine("Final array element: {0}", nums(x))NextConsole.ReadKey()End SubEnd Module
Adım 3) Kodu çalıştırmak için araç çubuğundan Başlat düğmesine tıklayın. Aşağıdaki pencereyi görmelisiniz:
Aşağıdaki kodu kullandık:
Kod Açıklaması:
- Module1 adlı bir modül oluşturma.
- Ana alt prosedürün oluşturulması.
- Tamsayı değerlerini tutmak için nums adlı bir dizi oluşturma.
- Yukarıdaki dizinin yeniden boyutlandırma için yer sağlarken dizin 0 ve 1'de iki öğeyi depolayacağını belirtmek.
- 12 numaralı dizinin 0 dizinine eklenmesi.
- 23 numaralı elemanın dizi nums dizin 1'e eklenmesi.
- Nums dizisinin ilk elemanından son elemanına yineleme yapmamıza yardımcı olacak bir x değişkeni oluşturmak için for döngüsü kullanmak. Dizinin artık 12 ve 23 olmak üzere iki öğesi olduğunu unutmayın.
- Konsolda dizinin bazı metinlerini ve öğelerini yazdırma.
- For döngüsünü sona erdirmek ve kodun sonraki bölümüne atlamak.
- 0 ile 2 arasındaki dizinlerdeki öğelere izin vermek için dizi numaralarını yeniden boyutlandırın. Artık 2 yerine 3 öğe depolayabilecektir. Preserve anahtar sözcüğü, dizinin mevcut öğelerini, yani 12 ve 23'ü korumamıza yardımcı olur.
- 35 elemanını dizinin 2. dizinine ekleme. Dizinin artık üç öğesi vardır, 12, 23 ve 35.
- Nums dizisinin ilk elemanından son elemanına yineleme yapmamıza yardımcı olacak bir x değişkeni oluşturmak için for döngüsü kullanmak. Dizinin artık 12, 23 ve 35 olmak üzere üç öğeye sahip olduğuna dikkat edin.
- Konsolda dizinin bazı metinlerini ve öğelerini yazdırma.
- For döngüsünü sona erdirmek ve kodun sonraki bölümüne atlamak.
- Kullanıcının kapatmak için işlem yapmasını bekleyen konsol penceresini duraklatın.
- Alt prosedürün sonu.
- Modülün sonu.
Bir Diziyi Silme
Çoğunlukla dinamik bir dizi ile uğraşırken, dizinizi bitirdikten sonra silmeniz önerilir. Bu, biraz bellek alanı boşaltmanıza yardımcı olacaktır.
Bir diziyi silmek için, Erase deyimini ve ardından dizinin adını çağırmanız yeterlidir. Örneğin:
Dim nums(1) As Integernums(0) = 12nums(1) = 23Erase nums
Nums adında bir tamsayı dizisi tanımladık ve ona iki eleman ekledik. Erase nums deyimi diziyi silecektir.
Bölme İşlevi
Visual Basic .NET tarafından sağlanan bölme işlevi, bir dizeyi parçalara ayırmamıza ve onları bir dizide tutmamıza yardımcı olur. Aşağıdaki örnek, bu işlevin nasıl kullanılacağını gösterir:
Adım 1) Yeni bir konsol uygulaması oluşturun.
Adım 2) Aşağıdaki kodu uygulamaya ekleyin:
Module Module1Sub Main()Dim myarray() As StringDim guru99 As StringDim x As Integerguru99 = "Welcome, to, Guru99"myarray = Split(guru99, ", ")For x = LBound(myarray) To UBound(myarray)Console.WriteLine(myarray(x))NextConsole.ReadKey()End SubEnd Module
Adım 3) Araç çubuğundan Başlat düğmesine tıklayarak kodu çalıştırın. Aşağıdaki pencereyi görmelisiniz:
Aşağıdaki kodu kullandık:
Kod Açıklaması:
- Module1 adlı bir modül oluşturma.
- Ana alt prosedürü başlatmak.
- Dize değerlerini tutmak için myarray adında bir dizi oluşturmak.
- Guru99 adında bir dizge değişkeni oluşturma.
- X adında bir tamsayı değişkeni oluşturma.
- Guru99 değişkenine bir dizge atama.
- Yukarıdaki String'i parçalara ayırmak ve onları myarray adlı diziye yerleştirmek. "," (Virgül) sınırlayıcıdır, bu nedenle bölme işlevi onu String'in çeşitli bölümlerinin sonunu işaretlemek için kullanır.
- Myarray adlı dizide yineleme yapmak için x değişkenini kullanma. LBound ve UBound, sırasıyla dizinin alt sınırlarını ve üst sınırlarını belirtir.
- Konsolda myarray adlı dizinin değerlerini yazdırma.
- For döngüsünün sonlandırılması ve
Birleştirme İşlevi
Join işlevi, birden çok diziyi tek bir dizede birleştirmemize yardımcı olur. Aşağıdaki örnek bunu göstermektedir:
Adım 1) Yeni bir konsol uygulaması oluşturarak başlayın.
Adım 2) Aşağıdaki kodu uygulamaya ekleyin:
Module Module1Sub Main()Dim students(0 To 2) As Stringstudents(0) = "John"students(1) = "Alice"students(2) = "Antony"Dim classmates As Stringclassmates = Join(students, ", ")Console.WriteLine(classmates)Console.ReadKey()End SubEnd Module
Adım 3) Araç çubuğundaki Başlat düğmesine tıklayarak kodu çalıştırın:
Aşağıdaki kodu kullandık:
Kod Açıklaması:
- Module1 adlı bir modül oluşturma.
- Ana alt prosedürün oluşturulması.
- 3 dize değerini tutacak öğrenciler adında bir dizi oluşturmak.
- Dizinin 0 dizinine John adı ekleniyor.
- Alice ismini dizinin 1. dizinine eklemek.
- Antony ismini dizinin 2. indeksine eklemek.
- Dize veri türünün sınıf arkadaşları adlı bir değişken tanımlama.
- Dizi öğrencilerinin tüm öğelerini birleştirmek ve onları a, (virgül) ile ayırmak Bu işlemin sonucu değişken sınıf arkadaşlarına atanacaktır.
- Konsolda sınıf arkadaşları değişkeninin içeriğini yazdırma.
- Kullanıcının kapatmak için işlem yapmasını bekleyen konsol penceresini duraklatmak.
- Ana alt prosedürü sonlandırmak.
- Modülü sonlandırmak.
Özet
- Diziler, aynı veri türüne ait veri öğelerini depolamak için kullanılır.
- Dinamik bir dizi, kullanıcının kendisine daha fazla öğe ekleyerek onu yeniden boyutlandırmasına olanak tanır. Mevcut bir diziye eleman eklemek için ReDim komutunu kullanırsınız.
- Sabit boyutlu bir dizinin boyutu değiştirilemez.
- Dizi elemanları, ilk eleman 0 dizininde ve son eleman n-1 dizininde olacak şekilde dizinler kullanılarak sıralanır; burada n, dizi elemanlarının toplam sayısıdır.
- Diziler, Silme işlevi kullanılarak silinebilir
- Sırasıyla bir dizeyi bölmek veya birleştirmek için bölme ve birleştirme işlevlerini kullanabilirsiniz.