yurdugul@hacettepe.edu.tr 1 VB de Veri Türleri 1 Byte 1 aretsiz tamsay Integer 2 aretli Tamsay Long 4 aretli Tamsay Single 4 Gerçel say Double 8 Gerçel say Currency 8 Gerçel say Decimal 14 Gerçel say Boolean 2 Doru/Yanl (0/1) String 10 Metin Variant - Gevek veri türü Date 8 Tarih/Zaman Object 4 Nesne veri türü Type - Kullanc tanml Byte: C deki unsigned char veri türüne karlk gelir. 0-255 arasnda deerler alabilir. Integer: C deki int veri türüne karlk gelir. 32 768 ie 32767 arasnda deerler alr. Long: -2 147 483 648 ile 2 147 483 647 arasnda deer alr. VB de kullanlan bu 3 tür tamsay niteliindeki veri türlerine sahip deikenlere, bir gerçel say atanmaya çallrsa, en yakn atanacak deer en yakn tam sayya yuvarlanarak atanr. Single: C deki float veri türüne karlk gelir. A B eklindeki gösterimde A ve B integer veri türündedir. Örnein 3,12 ifadesini 312x10-2 eklinde gösterirsek A=312 ve B= -2 eklinde toplam (2 integer) 4 byte geniliinde bellekte yer tutar. Double: A B eklindeki gösterimde A ve B long veri türüne sahiptirler. Bu nedenle bellekte toplam 8 byte geniliinde yer tutarlar. Currency: Gerçel say olmasna karlk ondalk ksm en fazla 4 dijittir. Ondalk ksm 4 dijitten fazla olan kesim yuvarlanarak 4 dijite indirgenir. Daha çok tamsaysal ksmn büyük deerler ald, ondalk bölümlerin ise önemsiz olduu parasal verilerde kullanlr. Dim X As Currency X=1.2345678 ise X=1.2346 eklide atanr. Decimal: 1 Bilgilerin bir ksm için, Microsoft Visual Basic Books Online e-kitabndan yararlanlmtr.
2 Currency gibidir, ancak currency nin aksine 29 dijite kadar ondalk bölümü tutabilir. Hassas matematiksel verilerde kullanlr. Ancak en önemli özellii, bir deikenin veri türü olarak tanmlanamaz. Bunun yerine variant veri türüne sahip bir deikene CDec(variant_degisken) eklindeki tür dönüümleri ile kullanlr. Boolean: C de bulunmayan bir veri türüdür. Yalnzca 0 ya da 1 deeri alabilir. 0 deeri yanl (false) ve 1 deeri doru (true) eklinde deerlendirilir. VB de 0/1 deerleri yerine True/False eklinde de atama yaplabilir. Bilindii gibi bu tür deerler ayn zamanda, mantksal ilem sonuçlardr. String: C deki karakter dizilerine karlk gelir. Yaklak 2 milyar karakteri kadar atama yaplr. C deki char *degisken sözdiziliminde olduu gibi, deiken uzunlukta bir yapya sahiptir. Atama esnasnda kendini boyutlandrr. C deki char degisken[50] sözdiziliminde olduu gibi deiken uzunluun aksine sabit uzunluklu tanmlamada yaplabilir. Dim X As String X= Hacettepe Üniversitesi (deiken uzunluk) (Atama esnasnda boyutlandrlr) Dim X As String*50 X= Hacettepe Üniversitesi (sabit uzunluk) (En fazla 50 karakter atanabilir) Bu durumda, Dim X As String*1 eklinde yaplan bir tanmlama C deki char veri türüne karlk gelir. Variant: Yeni nesil programlama dillerinde, bir gevek veri türü kullanlmaktadr. VB de bu veri türü variant tr. Bu veri türünde belirli bir veri söz konusu deildir. Variant veri türüne deikenler, atanan deere göre kendisini ekillendirebilir. Örnein; Dim X As Variant X=12 Tamsay türüne dönütü X=65536 Tamas hatas olumayacak, çünkü deiken Long veri türüne dönütü X=6.65536 Single veri türüne dönütü X= BÖTE String veri türüne dönütü (Tanmlanmayan deikenler Variant veri türüne sahiptir.) Deikenlere ilikin veri türleri, çalma annda kendiliinden deiebilir ya da veri dönüüm fonksiyonlar ile de dönütürülebilir. Bu fonksiyonlar aada verilmitir.
3 Fonksiyon Hedef Veri Türü CBool CByte CCur CDate CDbl CInt CLng CSng CStr CVar CVErr Boolean Byte Currency Date Double Integer Long Single String Variant Error De(i)kenlere ili)kin di(er fonksiyonlar: IsEmpty(degisken): Belirtilen deikene daha önceden deer atanmam ise geriye True deeri dönderir. Dim Degisken Dim Kontrol Kontrol = IsEmpty(Degisken) Degisken = Null Kontrol = IsEmpty(Degisken) Degisken = Empty Kontrol = IsEmpty(Degisken) Not: Empty, hiç deer atanmam anlamndadr. 'Dönen deer: True. 'Null atand, \0 deeri var. ' Dönen deer: False. 'Empty atand, ' Dönen deer: True. IsNumeric(degisken): Deikenin içeriinde saysal bir deer var ise; True, deilse False deeri dönderir. Do Sayi = InputBox("Bir Sayi Giriniz") Loop Until IsNumeric(Sayi) MsgBox "KareKökü: " & Sqr(Sayi) Dim Degisken, Kontrol Degisken = "53" Kontrol = IsNumeric(Degisken) Degisken = "459.95" Kontrol = IsNumeric(Degisken) Degisken = "45xyz" Kontrol = IsNumeric(Degisken) ' True. ' True. ' False.
4 IsArray(degisken): Deikenin, bir dizi olup olmadn belirler. Eer deiken bir dizi ise True, deilse False deeri dönderir. Diziler Diziler boyutlu deikenler olarakta ifade edilebilir. Bu nedenle tekil deikenlerin aksine, boyutlar da belirtilmelidir. Dim X(5) As Integer Dim X(1 To 5) As Integer Tek boyutlu dizi Dim X(3,4) As Integer Dim X(3,4,5) As Integer ki boyutlu dizi Üç boyutlu dizi Not: Boyut snrlar, tanmlama esnasnda belirlenen diziler sabit diziler olarak adlandrlrlar. Boyut snrlar tanmlama esnasnda belirlenmeyen diziler dinamik dizi olarak adlandrlr ve bu tür diziler çalma annda boyutlandrlabilme özellii tarlar. Sabit diziler, çalma annda boyutlandrlamazlar. Dim X() As Integer ReDim X(5) As Integer Redim Preserve X(3) Dinamik dizi Çalma annda yeniden boyutlandrld. Çalma annda yeniden boyutlandrld. Dinamik Diziler: Tanmlama esnasnda boyut bildirme zorunluluu olmayan ancak program içerisinde defalarca boyutlandrlabilme yetenei olan bir dizi türüdür. Boyutlandrma esnasnda; Redim Redim Preserve Anahtar kelimeleri (Keywords) kullanlr. Aralarndaki fark ise, Redim ile yaplan boyutlandrma da dizinin içerisine daha önce bir deer atanm ise hepsi silinir. Redim Preserve ile yaplan boyutlandrmalarda ise dizi içerisinde daha önce deer atamas yaplm ise eski deerler korunur. Redim Preserve ile yaplan boyutlandrmalarn en önemli dezavantaj ise, yalnzca kullanlan son boyutta deiiklik yaplabilmesi. Redim Preserve X(3) Redim Preserve X(3,4) Redim Preserve X(3,4,5)
5 Yukardaki örneklerde Redim Preserve ile yalnzca koyu iaretli boyutlar yeniden boyutlandrlabilir. Dim Dizi() As Integer Redim Dizi(5) For I = 1 To 5 Dizi(I) = I Next I Dizi tanmlamas 'Yeniden boyutlandrma 'Döngü: 5 kere dön 'Diziye atama yaplmas. Dizilere ilikin Erase fonksiyonu: Erase DiziAdi Bu fonksiyon, belirtilen dizi; Dinamik ise Diziyi bellekten atar. Saysal ise Tüm elemanlarn 0 yapar. String ise Tüm elemanlarn yapar. UBound ve LBound Fonksiyonlar: Dizinin belirtilen boyutunun üst snrn (UBound) ve alt snrn (LBound) geri dönderirler. Dim A(1 To 100, 0 To 3, -3 To 4) UBound(A, 1) 100 deeri dönderir UBound(A, 2) 3 deeri dönderir UBound(A, 3) 4 deeri dönderir LBound(A, 1) 1 deeri dönderir LBound(A, 2) 0 deeri dönderir LBound(A, 3) 3 deeri dönderir IIF Ko)ulu IIF(koul, doru,yanl) iif(x>0, MsgBox Pozitif, MsgBox Negatif ) IF-ELSEIF-ELSE Dim Sayi, Basamak, ifade Sayi = 53 If Sayi < 10 Then Basamak = 1 ElseIf Number < 100 Then Basamak = 2 Else Basamak = 3
6 End If If Basamak = 1 Then ifade = "Bir" Else ifade = "Birden Fazla" SELECT CASE Select Case ifade [Case durumlar-n [deyimler-n]]... [Case Else [aksidurumlar]] End Select Dim Sayi Sayi = 8. Select Case Sayi Case 1 To 5 MsgBox Say 1-5 arasnda Case 6, 7, 8 MsgBox Say 6-8 arasnda Case Is > 8 And Number < 11 MsgBox Say 9 ya da 10 dur Case Else MsgBox Say 1-10 arasnda deil End Select DO-LOOP Döngüleri Dim Kontrol, Sayi Kontrol = True: Sayi = 0 Do Do While Sayi < 20 Sayi = Sayi + 1 If Sayi = 10 Then Kontrol = False Exit Do End If Loop Loop Until Kontrol = False D Döngü 'ç Döngü 'Sayaç artm 'Eer koul doru ise 'Kontrol deerini false yap 'ç döngüden çk (koula bal) 'D döngü bitti