Visual Basic .NET Te DIZILER

Merhaba arkadaslar. Bu makalede Dizileri anlatmaya çalisacagim. Ilk önce Dizi nedir diyeceksiniz. Dizi ayni tipteki degiskenleri
bir arada tutar. Bir örnek vermek istiyorum. Örnegin, 100 kisilik adres bilgisi var. Bunun için 100 tane birbirinden farkli
degisken tanimlamamiz lazim. Bunu bu kadar uzun yapmak hem insani yorar, hemde programciligin mantigina aykiridir. Bunun için;
"Dim adres(99) As String" dersek çok daha rahatlamis oluruz. Burada neden 100 degilde 99 yazdin diye bir soru sorabilirsiniz.
Arkadaslar Diziler 0(sifir) dan baslar. Bunun için 99 yazdim. Simdi gelelim dizilerin genel yazim sekillerine. Asagida gördügünüz gibi
diziler tanimlanabilir…
Dim dizi(boyut) As tipi
Dim dizi(0 To 3) As tipi
Dim dizi() As String = New String(4) {}

DIZILERE DEGER YAZMA:
———————
Simdi gelelim dizilere deger yazmaya. Dizilere 2 farkli biçimde deger yazilabilir. Bunlari sirayla yazalim…

1) Dim iller() As String = New String (3) {}  —-> 1 Boyutlu 4 elemanli bir dizi tanimladik.

   iller(0) = "Istanbul"
   iller(1) = "Ankara"
   iller(2) = "Amasya"
   iller(3) = "Mersin"

   Arkadaslar tekrar belirteyim. Diziler Sifirdan baslar. Bu yüzden Sifirdan basladim.

2) SetValue() Fonksiyonu. Bir örnekle açiklayayim.
   Dim dizi(0 To 2) As String
   dizi.SetValue("Istanbul",1)

   Arkadaslar SetValue fonksiyonunda parantez içindeki tirnak içinde olan DEGER dir. Virgülden sonraki ise hangi sirada olacagidir.
  
  
DIZILERI YENIDEN BOYUTLANDIRMA:
——————————-

Dizileri 3 farkli sekilde boyutlandirabiliriz.

1) ReDim
ReDim ile sadece boyuttaki eleman sayisini degistirebiliriz. Boyut Degistirilemez! Örnegin:

Dim dizi(2,2) As String
ReDim dizi(4,4)
dizi(4,4)="Ankara"
MsgBox(dizi(4,4))

2) Array.ReSize
Array.ReSize ile TEK BOYUTLU dizileri boyutlandirabiliriz.
Array.Resize(dizi,4)
(Array.Resize dedikten sonra parantez içine dizinin adini daha sonra da kaç boyutlu olacagini yazariz.)

3) CreateInstance
Diziler System Array sinifindadir. Diziler boyutlandirilirken Array sinifinin CreateInstance metodunu kullanabiliriz. Bunun için
GetType fonksiyonunu kullanmaliyiz. Örnek verecek olursak:

Dim dizi As Array
dizi= Array.CreateInstance(GetType(String),2)
 
dizi.SetValue("Istanbul",0)
dizi.SetValue("Izmir",1)

 .

(Array.CreateInstance() dedikten sonra parantez içine GetType() yazariz. Buradaki parantez içine dizinin tipini, daha sonra
parantezin disina da kaç boyutlu olacagini yazariz.)

ÖNEMLI BIR NOT :
Daha önceden diziler Sifirdan baslar demistik. Burada o kural geçerli degildir. Eleman sayisi 3 degil, 2 dir. Yani 0 ve 1 dir.

Dizileri tanimlarkende boyutlandirabiliriz. Hemen gösterelim:

Dim dizi As Array = Array.CreateInstance(GetType(String),2)


DIZIYI TANIMLARKEN DEGER YAZMA :
——————————–
Bir örnek ile açiklayalim… Yazacagim kodlar farkli olacak kodlarin aralarinda açiklamalar sizleri aydinlatacaktir.

Dim web_dili() As String = {"ASP","PHP","HTML","JSP"}

Dim sayac As Integer

‘dizinin eleman numaralari   0   | 1   | 2   |  3
 

   
For sayac = 0 To web_dili.Lenght -1

ListBox1.Items.Add(web_dili(sayac))

Next


‘Dizinin elemanlarina FOR DÖNGÜSÜ ile ulasilir.
‘ Simdi diyeceksiniz ki bu nedir..
‘ Arkadaslar. Lenght fonksiyonu dizinin eleman sayisini verir.
‘ Üretilen deger 0 ile 4 olacaktir. Sifir ile birlikte bize 5 deger üretecek. Ama bizim deger verdigimiz 4 tane deger var.
‘ Iste arkadaslar yukaridaki sebepten dolayi Lenght fonksiyonundan sonra -1 ifadesini kullandik.


DIZI DEGERLERINI SILME :
————————
Bir örnekle açiklayalim.

Dim dizi() As String = New String(1) {}
dizi(0)="ASP"
dizi(1)="JSP"
Erase dizi

Array.ReSize(dizi,4)
dizi.SetValue("XML",0)
dizi.SetValue("ASP",1)
dizi.SetValue("PHP",2)
dizi.SetValue("CSS",3)
MessageBox.Show(dizi(2))

Simdi kodlarin açiklamalarini yazalim.
Erase, atanan degerleri siler. Yeniden deger yazmamiz gerekir.
Array.Resize ve altindaki kodlari yazdiktan sonra Erase yi rahatlikla oradan silebiliriz. Zaten Array.ReSize ile yeniden Boyutlandiriyoruz…

ISTENILEN DEGERI SILME :
————————
Erase dizi degerlerinin hepsini siliyordu. Istedigimiz bir degeri silmek için Array sinifinin Clear() metodunu kullanabiliriz.
Bir örnek verelim.
 
Dim dizi() As String = New String(3) {}
dizi.SetValue("Asp", 0)
dizi.SetValue("Php", 1)
dizi.SetValue("CSS", 2)
dizi.SetValue("HTML", 3)
Array.Clear(dizi, 2, 1)
MsgBox(dizi(2))

DIZI DEGISKENIN SON ELEMAN NO’SUNU ÖGRENME :
——————————————–

Dizi degiskeninin son eleman numarasini ögrenmek için UBound fonksiyonu kullanilir.
Dizi tek boyutlu ise;
UBound("dizi adi")
Dizi çok boyutlu ise;
UBound("dizi adi","boyut") olarak yapilir.
Tek boyutlu diziye örnek verelim:

Dim dizi(0 To 6) As Integer 
MsgBox("Dizinin Son Eleman NoSu —> " & UBound(dizi))

Çok boyutlu diziye örnek verelim:

Dim dizi(0 To 3,0 To 6,0 To 19) As Integer
MsgBox(UBound(dizi,3))

Arkadaslar, UBound fonksiyonu EN SON eleman Noyu verir. Isterse dizi 10 Boyutlu olsun her zaman son boyutun eleman no sunu verir!

Arkadaslar dizi degiskenin son eleman nosunu GetUpperBound fonksiyonu ile de ögrenebiliriz.
Dizi degiskenimiz tek boyutlu ise son elemanina GetUpperBound(0) ile ulasilir.
Dizi degiskenimiz cok boyutlu ise son elamanina GetUpperBound() diyip dizi boyutunun 1 eksigini yaziyoruz.
Bir örnek verelim.

Dim dizi(0 To 4, 0 To 7, 0 To 115) As Integer
MsgBox(dizi.GetUpperBound(2))

 

DIZI DEGISKENIN ILK ELEMAN NO’SUNU ÖGRENME :
——————————————–

Dizi degiskenin son eleman numarasini ögrenmek icin LBound fonksiyonu kullanilir. Visual Basic .NET te diziler sifirdan basladigi icin her zaman sifir degerini verir.
Bir örnek verelim.

Dim dizi(0 To 8) As Integer 
MsgBox(LBound(dizi))

Arkadaslar dizi degiskenin ilk eleman nosunu GetLowerBound fonksiyonu ile de ögrenebiliriz

Dim dizi(0 To 4, 0 To 3) As Integer
MsgBox(dizi.GetLowerBound(1))

DIZI DEGISKENIN ELEMAN SAYISINI BULMA :
—————————————
Dizi degiskenin eleman sayisini Lenght fonksiyonu ile ögrenebiliriz. Hemen bir örnek ile gösterelim.

Dim dizi() As String = New String(3) {}
dizi.SetValue("ASP", 0)
dizi.SetValue("PHP", 1)
dizi.SetValue("CSS", 2)
dizi.SetValue("C#", 3)
MsgBox("Dizi Degiskenin Elaman Sayisi " & dizi.Length)

Birde iki boyutlu dizinin eleman sayisini ögrenelim…

Dim dizi(0 To 3, 0 To 3) As Integer
‘ 1. Boyut :
‘ Satir–> 0 To 3 —>0,1,2,3 —> 4 Elemanli
‘ 2. Boyut :
‘ Sütun–> 0 To 3 —>0,1,2,3 —> 4 Elemanli
‘ Satir =4
‘ Sütun =4
MsgBox(dizi.Length)

 

Evet arkadaslar. Bir makaleninde sonuna gelmis bulunuyoruz. Sürç-i Lisan ettiysem affola :). Umarim begenirsiniz. Tesekkürler.

 .

11 thoughts on “Visual Basic .NET Te DIZILER

  1. Arkadaslar makalenin içerigini birkaç gün içerisinde yenileyecegim.

    Saygilarimla… 

Bir cevap yazın

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