Değişkenlere İsim Verme Kuralları

Visual Basic’de daha etkin bir programlama yapabilmek için kullanılan veri tiplerini ve veri yapılarını iyi bir şekilde bilmeliyiz. Burada önemli olan nerede hangi veri tipini kullanacak oluşumuzdur. Veri tiplerini anlatmadan önce kullanacağımız değişkenleri nasıl isimlendireceğimizi görelim.

Değişkenleri isimlendirirken daha sonra bakdığınızda akılda kalabilecek ve anlamlı bir isim veriniz
Aşağıda verilen kurallar doğrultusunda değişkenler tanımlıyabilmemiz mümkün olmaktadır. Tanımlanacak değişkenlerin ilk karakteri mutlaka bir harf ile başlamalıdır. Geri kalan karakterler ; harflerden , rakamlardan, alt çizgi karakterinden oluşabilir. Değişken isimlerinde noktalama işaretlerini ,matematiksel ve mantıksal ve karsılaştırma operatörleri kullanamayız. Değişken isimleri 255 karaktere kadar uzunlukta olabilir. Aşağıda değişken tanımlamaları ile ilgili örnekler verilmiştir.
Örnek :

Adi , soyadı , yası , Maas98 , Doğum_Yeri , SANAT_DALI

Yukarıda geçerli değişken isimlerine örnek verilmiştir
Örnek :

2ADI , ad soyan , Mal+Bildirimi

Burada da geçersiz değişken isimlerine örnekler verilmiştir.
2ADI : Çünkü ilk karakter bir şayi ile başlamış.
Ad soyan : Değişken isminde boşluk kullanılmış
Mal+Bildirimi : Değişken isminde geçersiz bir karakter kullanılmış.
Zaten bu değişkenleri tanımlarken Visual Basic bizi hata mesajı ile uyaracaktır.

Visual Basic’de Değişken Tanımlama

Değişken tanımlarken Visual BASIC’te DİE bildiri deyimini kullanabiliriz. Değişkenin tanımlanması hafızada ayrılacak hafıza miktarının belirli olmasını sağlar. Eğer değişkenlerin tipini belirtmeden bir kullanım yaparsak bu değişkenlerin Varyant tipinde olduğu kabul edilir.Bu da hafızada gereksiz yer kaybına sebep olur.Eğer tanımlanan bütün değişkenlerin tiplerinin belli olmasını isterseniz kod penceresinin General,Declarations kısmına
Option Explicit yazılır.
Ayrıca değişken tanımlarken kullanılabilecek bir başka bildiri deyimide Def- bildiri deyimidir.Bu bildiri deyimi daha genel tanımlamalar yapmak için kullanılır..Def bildiri deyimleri aşağıda verilmiştir.

Def bildiri deyimi projenin general,declarations bölümünde tanımlanmalıdır
DefBool : Boolean tipinde değişken tanımlamak için kullanırız.
DefByte : Byte tipinde değişken tanımlamak için kullanırız.
DefInt : Integer tipinde değişken tanımlamak için kullanırız.
DefLng : Hong tipinde değişken tanımlamak için kullanırız.
DefCur : Currency tipinde degisken tanimlamak için kullaniriz.
DefSng : Single tipinde degisken tanimlamak için kullaniriz.
DefDbl : Double tipinde degisken tanimlamak için kullaniriz.
DefDate : Date tipinde degisken tanimlamak için kullaniriz.
DefStr : String tipinde degisken tanimlamak için kullaniriz.
DefVar : Variant tipinde degisken tanimlamak için kullaniriz.

Örnek :

Private Sub Form_Load()

Dim Ad As String

Dim Maas As Currency

Dim D_tarihi As Date

Dim Adres As String

Dim Sira As Integer

End Sub

Burada görmüs oldugunuz gibi 5 adet degisken tanimlanmaktadir.Ad degiskeni string tipinde bir degiskendir.Maas degiskeni Currency tipinde bir degiskendir.D_tarihi degiskeni Date tipinde bir degiskendir.Adres degiskeni string tipinde bir degiskendir.Sira degiskeni integer tipinde bir degiskendir.
Asagidaki satirlari formun general,declarations bölümüne yazalim.

Örnek :

DefInt A-C

DefStr S

DefVar K

DefDate D

DefSng V

Bu örnekte
A , B, C ile baslayan bütün karakterler Integer türünde olmak zorundadir.
D ile baslayan bütün karakterler Date türünde olmak zorundadir.
V ile baslayan bütün karakterler Single türünde olmak zorundadir.
K ile baslayan bütün karakterler Variant türünde olmak zorundadir.
S ile baslayan bütün karakterler String türünde olmak zorundadir.

Def deyimi dim deyiminden farklidir. Def ile sadece bir harf yada harf araligi belirtilebilir.Burada belirtilen harf ile baslayan bütün degiskenler artik o bildiri deyimindeki tipdedir

Örnek :

Private Sub Form_Load()

Dim ad As String , soyad As String

Dim maas As Currency

End Sub

Bu örnektede ad ve soyad isimli iki degisken string türünde ve maas degiskeni ise Currency tipindedir.

 

Veri Tipleri

Integer : Visual Basic’te tam sayi degiskenleri tanimlamak için kullanilir. Hafizada 2 byte yer kaplarlar. Alabilecegi deger araligi -32768 ile +32767 arasindadir.DefInt bildiri deyimi ile tanimlanabilirler. Ayrica bir degiskenin sonunda % karakteri bulunuyorsa bu degisken integer tipindedir.

Örnek :

Private Sub Form_Load()

Dim Maas As Integer

DefInt A-C

Oran% = 100

A_sayi = 100

B_sayi = Oran*A_sayi

C_sayi = B_sayi + A_sayi - 1000

Maas= 32767

End Sub

Eger burada tanimlanan degiskenlere daha büyük sayilar atanirsa overflow olusur.


Long : Daha büyük bir aralikta integer yani tamsayi tanimlamak için kullanabilecegimiz bir veri tipidir. Hafizada 4 byte yer kaplar. Kullanilabilecek uç degerler +2,147,483,647 ile -2,147,483,648 dir. Long tipinde bir degisken tanimlamak için DefLng bildirimini veya degisken sonunda & karakterini kullanabiliriz.

Örnek :

Private Sub Form_Load()

DefLng A-B

Bölüm=50000

cikan&=600000

Kalan& = (cikan / Bölüm ) * 10000

End Sub

Single : Tam sayi olmayan küsüratli sayilar için kullanabilecegimiz bir veri tipidir. Kayan-noktali sayi olarak isimlendirilir. Single tipindeki veriler bellekte 4 byte yer kaplarlar. Nekatif sayilar için alabilecegi aralik -3.402823E38 ile -1.401298E-45 ,pozitif sayilar için alabilecegi aralik 1.401298E-45 ile 3.402823E38 arasindadir.Single tipinde veri tanimlamak için DefSgn bildirimi veya degisken sonuna ! karakteri konur. 7 haneye kadar hassastir.Daha sonrasi yuvarlatilir.
Örnek :

Private Sub Form_Load()

DefSgn A-B

Bölüm=50000

Cikan!=600000

End Sub

Double : Visual Basic’te kullanilabilecek en büyük sayisal degerlerin veri tipidir. Hafizada 8 byte yer kaplarlar. 16 haneye kadar hassastirlar. Maximum alabilecegi degerler pozitif sayilar için 4.94065645841247E-324 ile 1.797693134862232E308 , nekatif sayilar için de -1.797693134862232E308 ile -4.94065645841247E-324 arasindadir. DefDbl bildirimi veya # sembölü ile double tipinde degiskenler tanimlanabilir
Örnek :

Private Sub Form_Load()

DefDbl A-K

Dari=50000

Bugday=600000

Arpa=340.56

End Sub

 

Currency : Sayisal tipdeki veriler için tanimlanmis özel bir veri tipidir.Hafizada 8 byte yer kaplarlar. 4 hane ondalik kismi olmak üzere toplam 19 haneden olusur.(nokta hariç) Alabilecegi maximum degerler -922,337,203,685,477.5808 ile 922,337,203,685,477.5807 arasindadir. @ sembolü veya DefCur bildirimi ile Currency tipinde degisken’ler tanimlanabilirler.

Örnek :

Private Sub Form_Load()

Dim Maas As Currency , Borc As Currency

Maas = 500000000

Borc = 68000000

Zayi@ = 340000.56

End Sub

Date : Tarih türündeki bilgileri kullanmak için olusturulmus bir veri tipidir. Hafizada 8 byte yer kaplarlar. 1 Ocak ile 31 Aralik 9999 arasindaki tarihleri kullanabilirsiniz. DefDate bildirisi ile tarih türünde degiskenler tanimlayabiliriz.
Örnek :

Private Sub Form_Load()

Dim Dogum_tarihi As Date , Evlenme_Tarihi As Date

Dogum_tarihi =#Dec,9,1977#

Evlenme_Tarihi=#May,15,1998#

End Sub

Boolean : Mantiksal veri tipleri için kullanilir. Iki seçenekten birisini alabilir.Bunlar True veya False degerleridir. Bellekte 2 byte yer isgal ederler.Boolean tipindeki bir degiskeni tanimlamak için DefBool sözcügü kullanilir.
Örnek :

Private Sub Form_Load()

Dim Durum As Boolean , Duyum As Boolean

Durum = True

Duyum = False

End Sub

Byte : O ile 255 arasindaki tamsayilari ifade etmek için kullanilabilecek veri tipidir.DefByte deyimi ile byte tipinde degiskenler tanimlanabilir.
Örnek :

Private Sub Form_Load()

Dim Durum As Byte , Duyum As Byte

Durum =23

Duyum = 143

End Sub

String : Metin türü bilgileri saklamak için kullanilabilecek veri türüdür. 16 bitlik versiyonda 0 ile 65538 arasinda , 32 bitlik versiyonda ise 0 ile 2,000,000,000 arasinda karakter alabilir. String türünde degisken tanimlamak için Defstr veya $ sembolü kullanilir.

Örnek :

Private Sub Form_Load()

Dim Adi As String , Soyadi As String

Adi ="Kemal"

Soyadi = "Tas"

No$="1323970067"

End Sub

Variant : Bu tipte tanimlanmis bir degiskene herhangi bir tip’te veri yüklenebilir.Yani ne tür bir veri girecegimizi bilmedigimiz degiskenleri Variant tipinde tanimlamaliyiz. Bu tür degiskenler hafizada 16 byte tan fazla yer kaplarlar. DefVar bildiri sözcügü ile Variant türünde degiskenler tanimliyabiliriz.

Variant türünde degiskenler tanimlamak fazla kullanisli degildir.Çünki hafizada fazla yer kaplarlar.

Örnek :

Private Sub Form_Load()

Dim Ad As Variant , Maas As Variant , Tel As Variant

Dim Dogum_tarihi As Variant

Ad="Aydin Kale"

Maas=200000

Tel="500-45-00"

Dogum_tarihi=#Apr,3,1970#

End Sub

Veri Yapilari

Const :
Bunlar program içinde degeri degistirilemeyen sabitlerdir. Public ve Private tipinde sabitler tanimlanabiliilir. Public sabitlere tüm modüller içinden ulasilabilir.Private türündeki sabitler ise sadece tanimlandiklari modül içersinde geçerlidirler.Ayrica Visual Basic içinde tanimlanmis çok sayida sabit vardir. Bunlara CONSTANT.TXT dosyasini açarak inceleyebiliriz.
Örnek :

Const sehir="Istanbul"

Const Ulke="Turkey"

Const posta_kodu=34650

Const tek_kod=212

Type - End Type Yapisi :
Type yapisini kullanarak programici farkli veri tiplerini kullanarak kendi veri yapisini olusturabilir. Bu C deki Struct yapisina benzetilebilir. Bu yeni veri tipine record adi verilir. Herhangi bir modülün Declarations kisminda asagidaki gibi bir tanimlama yapabiliriz.
Örnek :

Type Ogrenci

Ad As String *10

Soyad As String *12

Not As Byte

Kredi As Integer

End Type

'Ogrenci veri tipi toplam hafizada 25 byte yer kaplamaktadir. Bu veri tipini kullanmak için 'Ogrenci tipinde degiskenler tanimlamak gerekmektedir.

Private Sub Form_Load()

Dim A As Ogrenci

Dim B As Ogrenci

'Bu degiskenlere bilgi atamak asagidaki sekildeki gibidir.

A.Ad="Ali"

A.Soyad ="Armer"

End Sub

String türü degiskenlere sabit bir uzunlukta yer ayirmak istersek asagidaki sekilde bir tanimlama yapmaliyiz.
Dim Name As String *12
Dim Address As String *50

Diziler

Ayni tür bilgileri bellekte tutmak için kullanabilecegimiz listelere dizi adi verilir. Dizi kullamanin avantaji ayni tür bilgiler bir listede tutularak daha hizli islem yapilabilmesi saglanmis olacaktir.Visual Basic'de dizi su sekildedir
Dizi_adi(Indis)
olacaktir.
Örnek:

Private Sub Form_Load()

Dim ad(2) As String

Dim no(2) As Integer

ad(0) = "ali"

ad(1) = "ahmet"

ad(2) = "ebru"

no(0) = 133

no(1) = 56

no(2) = 67

End Sub

Bu örnek'te ad ve no olmak üzere iki adet dizi tanimlanmaktadir. ad dizisi string türünde bilgileri tutacak ve no dizisi ise integer türündeki bilgileri saklayacaktir. Görmüs olgunuz gibi dizilere bilgi atama sekli
dizi_adi(indis_sirasi)=atanacak_bilgi
seklindedir.
Eger diziyi sifirdan degilde bir den itibaren baslatmak istersek diziyi tanimlamadan önce Option Base 1 satirini eklemeliyiz.
Burada dizi indisleri sifirdan baslayarak tanimlama yaparken bizim belirtigimiz degere kadardir. Yani bizim bu dizilere atayabilecegim veri sayisi diziyi tanimlarken belirtdigimiz indis degerinden bir fazla olacaktir.
Eger deger atama yaparken belirttigimiz sinirlarin disina çikarsak hata olusur. Dizilere deger atarken dizi sinirlarini kontrol etmekle olasi bir hatayi önlemis oluruz.

Statik Diziler

Bu tip dizilerde kullanilacak yer sayisi sabittir. Bu tip diziler sadece tanimlandiklari modül içersinde kullanilabilirler. Statik dizi su sekilde tanimlanabilir
Dim dizi_adi(sayi) As Veri_Tipi
Tüm proje içinde kullanilacak bir dizi tanimlanmak isterse standart modülün General,Declarations bölümünde yukaridaki sekildeki gibi tanimlanmalidir
Örnek :

Option Base 1

Dim a(5) As Integer

Private Sub Command1_Click()

Text1.Text = a(1) + a(2)

End Sub

Private Sub Form_Load()

a(1) = 10

a(2) = 20

End Sub

Bu örnekte görüldügü gibi projenin general,declarations kisminda a() dizisi tanimlaniyor.Bu dzi tanimlanmadan önce dizi indislerinin 1 den itibaren basliyacagini belirten Option Base1 satiri koda dahil edilmistir. Form1 yüklendiginde bu dizinin ilk elemaninna 10 sayisi ikinci elemanina 20 sayisi ataniyor. Eger kullanici Command1 isimli butona tiklarsa dizinin ilk ce ikinci elemanlari toplanarak Form üzerinde Text1 adli nesnenin Text özelligine ataniyor. Yani TextBox'in bu sayilarin toplamini göstermesi saglaniyor.
Dinamik Diziler

Bu tip dizilerde kullanilacak yer sayisinda bir sinirlama yoktur. Bu tip diziler ilk basta sagidaki sekildeki gibi bir tanimlamaya ihtiyaç duyarlar.
Dim dizi_adi( ) As Veri_Tipi
Daha sonra bu dizi kullanilacak iken botunu belirtmek gerekir bunun içinde asagidaki gibi bir tanimlama yapilmalidir.
ReDim dizi_adi(boyut ) As Veri_Tipi
Artik bu veri dizisini projemiz içinde kullanabiliriz.
Örnek :

Option Base 1

Private Sub Form_Load()

Dim s() As String

End Sub

Private Sub Command1_Click()

ReDim s(10) As String

s(1) = "Selam "

s(2) = "Ayse"

Text1.Text = s(1) + s(2)

End Sub

Bu dizi tanimlanmadan önce dizi indislerinin 1 den itibaren basliyacagini belirten Option Base1 satiri koda dahil edilmistir. Form1 yüklendiginde s adli bir dinamik dizi tanimlanmaktadir. Kullanici Command1 isimli butuna tikladiginda s dizisinin boyutu belirtilerek yeniden tanimlanmistir. Bu dizinin ilk elemaninna "Selam " degeri ikinci elemanina "Ayse" degeri ataniyor. Dizinin ilk ve ikinci elemanlari toplanarak Form üzerinde Text1 adli nesnenin Text özelligine ataniyor. Yani TextBox'in bu degerlerin toplamini göstermesi saglaniyor.
Örnek :

Option Base 1

Private Sub Form_Load()

Dim s() As String

End Sub

Private Sub Command1_Click()

ReDim s(10) As String

s(1) = "selam"

s(2) = "fatih"

Text1.Text = s(1) + s(2)

End Sub

Private Sub Command2_Click()

ReDim s(5) As String

s(2) = "fatih"

Text1.Text = s(1) + s(2)

End Sub

Bu örnekte yukaridaki örnekten tek farkli yan olarak bir Command butonun arkasina yazilmis kod bulunuyor. Eger kullanici Command1 adli butondan sonra bu butona tiklarsa ne olacak ona bakalim. Command2 butonuna tiklanildiginda s() dizisi tekrardan boyutu 5 olrak tanimlaniyor. s() dizisine daha önce atamis bütün degerler siliniyor. Yani s() dizisi bir nevi bosaltiliyor ve yeniden boyutlandiriliyor. Eger s() dizisine daha önce atanmis degerler korunmak istenirse asagidaki sekildeki gibi bir tanimlama yapilmak zorundadir.
ReDim Preserve s(boyut) As Veri_tipi

 

Tip DONUSleri

Visual Basic'de kullandigimiz sayisal degiskenleri diger veri tiplerine d??t?ebiliriz. Bu islemi yapan fonksiyonlara tip dONUS fonksiyonlari adi verilir. Tip donus fonksiyonlari asagida verilmistir :


Fonksiyon Geri Donusen Deger Yaptigi Islem
CBool(ifade) :Boolean Matemetiksel ifadeyi Boolean t??e d??t??.
CByte(ifade) : Byte Matemetiksel ifadeyi Byte t??e d??t??.
CCur(ifade)   : Currency Matemetiksel ifade Currency t??e d??t??.
CDate(ifade) : Date Matemetiksel ifade Date t??e d??t??.
CDbl(ifade)   : Double Matemetiksel ifade Double t??e d??t??.
CDec(ifade)   : Decimal Matemetiksel ifadeDecimal sayiya d??t??.
CInt(ifade)    : Integer Matemetiksel ifade tam sayiya d??t??.
CLng(ifade)   : Long Matemetiksel ifade Long t??e d??t??.
CSng(ifade)   : Single Matemetiksel ifade Single t??e d??t??.
CVar(ifade)    : Variant Matemetiksel ifade Variant t??e d??t??.
CStr(ifade)     : String Matemetiksel ifade String t??e d??t??.
Asagida ?sitli ?neklerle tip d???leri a?klanmaya ?lisilmistir.

oRnek1:

A=10 , B=5 , C=10 , D=0

check = CBool(A < B) 'check=False

check = CBool(A > B) 'check=True

check = CBool(A = C) 'check=True

check = CBool(D) 'check=False

check = CBool(B) 'check=True

oRnek2 :

A=10 , B=5 , C=0

check = CBytel(A < B) 'check=0

check = CByte(A > B) 'check=1

check = CByte(A = C) 'check=0

oRnek3 :

A=1 , B=2 , C=36000 , D=36001

check = CDate(A) 'check=12/31/1899

check = CDate(B) 'check=1/1/1900

check = CDate(C) 'check=7/24/98

check = CDate(D) 'check=7/26/98

oRnek4 :

A=2.4 , B=2.5 , C=2.6 , D=3.5

check = CInt(AB) 'check=2

check = CInt(B) 'check=2

check = CInt(C) 'check=3

check = CInt(D) 'check=4

Aritmetiksel Operatorler :

+ , - , * , / , \ , ^ ,Mod , &
Genel olarak matematiksel islemlerde kullanilan operatörlerdir. Bunlara kaynastirma "&" operatörünü de ilave edebiliriz. Simdi bu operatörleri açiklayalim.
+ Operatörü :
Bu operatör ile verilen iki veya daha fazla ifade toplanabilir.Genel yazilisi asagidaki sekilde gibidir.
Sonuc = Ifade1 + Ifade2
Burda Sonuc mutlaka sayisal bir degerdir.(Eger kaynastirma yapilmamis ise)
Ifade1 çesitli islemlerden olusmus bir ifade veya bir sayidir.
Ifade2 çesitli islemlerden olusmus bir ifade veya bir sayidir.
Eger Ifade1 ve Ifade2 string türünde veriler ise + operatörü kaynastirma yapar. Yani Ifade2 yi Ifade1’in sonuna ekler.Asagida Çesitli örnekler verilmistir.
Örnek :

Sonuc=13+45 'Sonuc=58

Sonuc=1378+56.78+435.908 'Sonuc=1870.688

A=89,B=3456

Deger=A+B ' Deger=3545

Ad="Ebru"

Soyad=" Kayaci"

Dim Name As String

Name=Ad+Soyad 'Name="Ebru Kayaci"

Operatörler :

Matematik’de kullanilan çikartma opratörüdür. Birinci ifadede verilen degerden ikinci ifadeyi çikarir.
Genel yazilisi asagidaki sekildeki gibidir.
Sonuc=Ifade1 - Ifade2
Burda Sonuc mutlaka sayisal bir degerdir.
Ifade1 çesitli islemlerden olusmus bir ifade veya bir sayidir.
Ifade2 çesitli islemlerden olusmus bir ifade veya bir sayidir.
Asagida çesitli örneklerle - (çikarma )operatörü açiklanmaya çalisilmistir
Örnek :

Sonuc=3475.45-3445.90 'Sonuc = 29.55

Deger=45-788-23 'Deger = - 766

Son=190,Ara=47

Son1=Son-Ara ' Son = 143

* Operatörü :
Matematikdeki çarpma operatörüdür. Verilen iki sayiyi çarpar. Genel yazim sekli asagidaki sekilideki gibidir
Sonuc=Sayi1 * Sayi2
Burda Sonuc mutlaka sayisal bir degerdir.
Sayi1 çesitli islemlerden olusmus bir ifade veya bir sayidir.
Sayi2 çesitli islemlerden olusmus bir ifade veya bir sayidir.
Asagida çesitli örneklerle çarpma operatörü açiklanmistir.
Örnek :

Sonuc=34 * 9 'Sonuc = 306

Deger = 87 * 12 'Deger = 1044

A=5,B= 56

C=A * B 'C = 280

/ Operatörü :
Matematikdeki bölme operatörüdür. Verilen ilk sayiyi ikinci sayiya böler. Genel yazim sekli asagidaki sekilideki gibidir.
Sonuc=Ifade11 /Ifade2
Burda Sonuc mutlaka sayisal bir degerdir.
Ifade1 çesitli islemlerden olusmus bir ifade veya bir sayidir.
Ifade2 çesitli islemlerden olusmus bir ifade veya bir sayidir.Ifade2 sifirdan farkli bir deger olmalidir. Yoksa sifira bölme hatasi olusur.
Asagida çesitli örneklerle bölme operatörü açiklanmistir.
Örnek :

Sonuc=34 / 9 'Sonuc = 3.777778

Deger = 60 / 12 'Deger = 5

A=5,B= 56

C=B / A 'C = 11.2

^ Operatörü :
Matematikdeki üs operatörüdür. Verilen ilk sayinin ikinci sayi kadar kuvvetini (üssünü) alir. Genel yazim sekli asagidaki sekilideki gibidir.
Sonuc=Ifade1 ^ Ifade2
Burda Sonuc mutlaka sayisal bir degerdir.
Ifade1 çesitli islemlerden olusmus bir ifade veya bir sayidir.
Ifade2 çesitli islemlerden olusmus bir ifade veya bir sayidir.
Asagida çesitli örneklerle bölme operatörü açiklanmistir.
Örnek :

Sonuc=34 ^ 9 'Sonuc = 6.071699276646e+13

Deger = 60 ^ 2 'Deger = 3600

A=5,B= 5

C=B ^ A 'C = 3125

Mod Operatörü :
Matematikdeki mod alma operatörüdür. Verilen ilk sayinin modunu ikinci sayi göre alir. Genel yazim sekli asagidaki sekilideki gibidir.
Sonuc=Ifade1 Mod Ifade2
Burda Sonuc mutlaka sayisal bir degerdir.
Ifade1 çesitli islemlerden olusmus bir ifade veya bir sayidir.
Ifade2 çesitli islemlerden olusmus bir ifade veya bir sayidir.
Asagida çesitli örneklerle Mod operatörü açiklanmistir.
Örnek :

Sonuc=34 Mod 9 'Sonuc = 7

Deger = 60 Mod 2 'Deger = 0

A=5.4,B= 57

C=B Mod A 'C = 2

D= 57 Mod 5.5 'D = 3

E=90.5 Mod 6 'E = 0

E=90.2 Mod 6 'E = 0

E=90.7 Mod 6 'E = 1

& Operatörü :
Bu operatör kaynastirma operatörüdür. String türü ifadelerle matematiksel ifadeleri kaynastirmada kullanilabilir. Genel yazim sekli asagidaki sekilideki gibidir.
Sonuc=Ifade1 & Ifade2 Burda Sonuc string veya variant türünde bir degerdir.
Ifade1 çesitli islemlerden olusmus bir ifade veya bir sayi veya bir metindir.
Ifade2 çesitli islemlerden olusmus bir ifade veya bir sayi veya bir metindir.
Asagida çesitli örneklerle kaynastirma operatörü açiklanmistir.
Örnek :

Sonuc=34 & 9 'Sonuc = 349

Deger = 60 & 2 'Deger = 602

A=5.4,B= 57

C=B&A 'C = 575.4

D= 57 & 5.5 'D = 575.5

E=90.5 & 6 'E = 90.56

E=9.2 &6 'E = 9.26

E=90.7 & 6.6 'Hata olusur

E="Hakan"&" Ayse" 'E = "Hakan Ayse"

Karsilastirma Operatörleri :

Bu operatörler ile verilen ifadeler arasinda karsilastirmalar yapilir. Genel karsilastirma operatörleri asagida verilmistir.
= operatörü :
Bu operatör verilen iki ifadenin esit olup olmadigini anlamak için kullanilir.Genel yazim sekli asagidaki sekildeki gibidir.
Sonuc=(Ifade11 = Ifade2)
Burda Sonuc Booean tipinde bir degerdir.
Ifade1 bir sayi veya bir metindir.
Ifade2 bir sayi veya bir metindir.
Asagida çesitli örneklerle kaynastirma operatörü açiklanmistir
Örnek :

Sonuc=(100=345) 'Sonuc=False

Sonuc=(100=100) 'Sonuc=True

A=12,B=45

Sonuc=(A=B) 'Sonuc=False

C=23,D=23

Sonuc=(A=D) 'Sonuc=True

<> operatörü :
Bu operatör verilen iki ifadenin farkli olup olmadigini anlamak için kullanilir.Genel yazim sekli asagidaki sekildeki gibidir.
Sonuc=(Ifade11 <>Ifade2)
Burada Sonuc Booean tipinde bir degerdir.
Ifade1 bir sayi veya bir metindir.
Ifade2 bir sayi veya bir metindir.
Asagida çesitli örneklerle kaynastirma operatörü açiklanmistir.
Örnek :

Sonuc=(100<>345) 'Sonuc=True

Sonuc=(100<>100) 'Sonuc=False

A=12,B=45

Sonuc=(A<>B) 'Sonuc=True

C=23,D=23

Sonuc=(A<>D) 'Sonuc=False

< operatörü :
Bu operatör verilen birinci ifadenin ikinci ifadeden küçük olup olmadigini anlamak için kullanilir.Genel yazim sekli asagidaki sekildeki gibidir.
Sonuc=(Ifade11 < Ifade2)
Burda Sonuc Booean tipinde bir degerdir.
Ifade1 bir sayi veya bir metindir.
Ifade2 bir sayi veya bir metindir.
Asagida çesitli örneklerle kaynastirma operatörü açiklanmistir.
Örnek :

Sonuc=(100<345) 'Sonuc=True

Sonuc=(100<100) 'Sonuc=False

Sonuc=(100<130) 'Sonuc=False

A=12,B=45

Sonuc=(A<B) 'Sonuc=True

C=23,D=23

Sonuc=(A<D) 'Sonuc=False

> operatörü :
Bu operatör verilen birinci ifadenin ikinci ifadeden büyük olup olmadigini anlamak için kullanilir.Genel yazim sekli asagidaki sekildeki gibidir.
Sonuc=(Ifade11 > Ifade2)
Burda Sonuc Booean tipinde bir degerdir.
Ifade1 bir sayi veya bir metindir.
Ifade2 bir sayi veya bir metindir.
Asagida çesitli örneklerle kaynastirma operatörü açiklanmistir.
Örnek :

Sonuc=(800>345) 'Sonuc=True

Sonuc=(100>100) 'Sonuc=False

Sonuc=(100>130) 'Sonuc=False

A=90,B=45

Sonuc=(A>B) 'Sonuc=True

C=23,D=23

Sonuc=(A>D) 'Sonuc=False

=> operatörü :
Bu operatör verilen birinci ifadenin ikinci ifadeden büyük veya esit olup olmadigini anlamak için kullanilir.Genel yazim sekli asagidaki sekildeki gibidir
Sonuac=(Ifade11 => Ifade2)
Burda Sonuc Booean tipinde bir degerdir.
Ifade1 bir sayi veya bir metindir.
Ifade2 bir sayi veya bir metindir.
Asagida çesitli örneklerle kaynastirma operatörü açiklanmistir.
Örnek :

Sonuc=(800=>345) 'Sonuc=True

Sonuc=(100=>100) 'Sonuc=True

Sonuc=(100=>130) 'Sonuc=False

A=90,B=45

Sonuc=(A=>B) 'Sonuc=True

C=23,D=23

Sonuc=(A=>D) 'Sonuc=True

<= operatörü :
Bu operatör verilen birinci ifadenin ikinci ifadeden büyük olup olmadigini anlamak için kullanilir.Genel yazim sekli asagidaki sekildeki gibidir.
Sonuc=(Ifade11 <= Ifade2)
Burda Sonuc Booean tipinde bir degerdir.
Ifade1 bir sayi veya bir metindir.
Ifade2 bir sayi veya bir metindir.
Asagida çesitli örneklerle kaynastirma operatörü açiklanmistir.
Örnek :

Sonuc=(800<=345) 'Sonuc=False

Sonuc=(100<=100) 'Sonuc=True

Sonuc=(100<=130) 'Sonuc=True

A=90,B=45

Sonuc=(A<=B) 'Sonuc=False

C=23,D=23

Sonuc=(A<=D) 'Sonuc=True

 

And Operatörü :

Lojik iki ifadenin karsilastirilmasi için kullanilir. Iki ifadenin'de dogru olmasi gereklidir. Genel yazim sekli asagidaki gibidir ;
Sonuc=Kosul1 And Kosul2
Burada Sonuc herhangi bir sayisal tipde degiskendir.
Kosul1 herhangi bir ifadedir.
Kosul2 herhangi bir ifadedir.
And operatörünün dogruluk tablosu asagidaki sekildeki gibidir.

Ifade1 Ifade2 Sonuc=Ifade1 And Ifade2

False False False

False True False

True False False

True True True

True Null Null

Null True Null

False Null False

Null False False

Null Null Null

And operatörü ayni zamanda bitwise comparison islemide yapilabilir.

Ifade1 Ifade2 Ifade1 And Ifade2

0 0 0

0 1 0

1 0 0

1 1 1


Örnek :

Sonuc = (False And False ) 'Sonuc=False

Sonuc = (Null And False ) 'Sonuc=False

A=True , B=True

Sonuc = (A And B ) ' Sonuc=True

A=1 ,B=0

Sonuc = (A And B ) ' Sonuc=0

A=1 ,B=1

Sonuc = (A And B ) ' Sonuc=1

A=1,B=4

Sonuc = (A And B ) ' Sonuc=0

A=1,B=3

Sonuc = (A And B ) ' Sonuc=1

A=1,B=5

Sonuc = (A And B ) ' Sonuc=1

A=1,B=8

Sonuc = (A And B ) ' Sonuc=0

Or Operatörü :

Lojik iki ifadenin karsilastirilmasi için kullanilir. Iki ifadeden yalnizca birinin dogru olmasi yeterlidir. Genel yazim sekli asagidaki gibidir :
Sonuc=Kosul1 Or Kosul2
Burada Sonuc hehangi bir sayisal tipde degiskendir.
Kosul1 herhangi bir ifadedir.
Kosul2 herhangi bir ifadedir.
Or operatörünün dogruluk tablosu asagidaki sekildeki gibidir ;

Ifade1 Ifade2 Sonuç=Ifade Or Ifade2

False False False

 

Xor Operatörü :

Lojik iki ifadenin karsilastirilmasi için kullanilir. Iki ifadeden yalnizca birinin dogru olmasi gereklidir. Eger ikiside dogru olursa sonuc yanlis olur. Genel yazim sekli asagidaki gibidir :
Sonuc=Kosul1 Xor Kosul2
Burada Sonuc hehangi bir sayisal tipde degiskendir.
Kosul1 herhengi bir ifadedir.
Kosul2 herhengi bir ifadedir.
Xor operatörünün dogruluk tablosu asagidaki sekildeki gibidir;

Ifade1 Ifade2 Sonuç=Ifade Xor Ifade2

False False False

False True True

True False True

True True False


Xor operatörü ayni zamanda bitwise comparison islemide yapilabilir.

Ifade1 Ifade2 Sonuç=Ifade Xor Ifade2

0 0 0

0 1 1

1 0 1

1 1 0


Örnek :

Sonuc = (False Xor False ) ' Sonuc=False

Sonuc = (True Xor False ) 'Sonuc=True

A=True , B=True

Sonuc = (A Xor B ) 'Sonuc=False

A=1 ,B=0

Sonuc = (A Xor B ) 'Sonuc=1

A=1 ,B=1

Sonuc = (A Xor B ) 'Sonuc=0

A=1,B=4

Sonuc = (A Xor B ) 'Sonuc=5

A=1,B=3

Sonuc = (A Xor B ) 'Sonuc=2

A=1,B=5

Sonuc = (A Xor B ) 'Sonuc=4

A=1,B=8

Sonuc = (A Xor B ) 'Sonuc=9

A=10,B=8

Sonuc = (A Xor B ) 'Sonuc=2

 

Eqv Operatörü :

Lojik iki ifadenin karsilastirilmasi için kullanilir. Iki ifadenin ikisininde dogru veya ikisininde yanlis olmasi durumunda dogru sonuc alir. Genel yazim sekli asagidaki gibidir
Sonuc=Kosul1 Eqv Kosul2
Burada Sonuc herhangi bir sayisal tipde degiskendir.
Kosul1 herhangi bir ifadedir.
Kosul2 herhangi bir ifadedir.
Eqv operatörünün dogruluk tablosu asagidaki sekildeki gibidir;

Ifade1 Ifade2 Sonuç=Ifade Eqv Ifade2

False False True

False True False

True False False

True True True


Eqv operatörü ayni zamanda bitwise comparison islemide yapilabilir.

Ifade1 Ifade2 Sonuç=Ifade Eqv Ifade2

0 0 1

0 1 0

1 0 0

1 1 1


Örnek :

Sonuc = (False Eqv False ) ' Sonuc=True

Sonuc = (True Eqv False ) 'Sonuc=False

A=True , B=True

Sonuc = (A Eqv B ) 'Sonuc=True

A=1 ,B=0

Sonuc = (A Eqv B ) 'Sonuc=0

A=1 ,B=1

Sonuc = (A Eqv B ) 'Sonuc=1

A=1,B=4

Sonuc = (A Eqv B ) 'Sonuc=-6

A=1,B=3

Sonuc = (A Eqv B ) 'Sonuc=-3

A=1,B=5

Sonuc = (A Eqv B ) 'Sonuc=-5

A=1,B=8

Sonuc = (A Eqv B ) 'Sonuc=-10

A=10,B=8

Sonuc = (A Eqv B ) 'Sonuc=-3

Imp Operatörü :

Lojik iki ifadenin karsilastirilmasi için kullanilir. Birincinin degili veya ikincidir. Genel yazim sekli asagidaki gibidir :
Sonuc=Kosul1 Imp Kosul2
Burada Sonuc hehangi bir sayisal tipde degiskendir.
Kosul1 herhangi bir ifadedir.
Kosul2 herhangi bir ifadedir.
Imp operatörünün dogruluk tablosu asagidaki sekildeki gibidir.

Ifade1 Ifade2 Sonuç=Ifade Imp Ifade2

False False True

False True True

True False False

True True True

True Null True

Null True True

False Null True

Null False Null

Null Null Null


Imp operatörü ayni zamanda bitwise comparison islemide yapilabilir.

Ifade1 Ifade2 Sonuç=Ifade Imp Ifade2

0 0 1

0 1 1

1 0 0

1 1 0


Örnek :

Sonuc = (False Imp False ) 'Sonuc=True

Sonuc = (Null Imp False ) 'Sonuc=True

A=True , B=True

Sonuc = (A Imp B ) 'Sonuc=True

A=1 ,B=0

Sonuc = (A Imp B ) 'Sonuc=0

A=1 ,B=1

Sonuc = (A Imp B ) 'Sonuc=1

A=1,B=4

Sonuc = (A Imp B ) 'Sonuc=-2

A=1,B=3

Sonuc = (A Imp B ) 'Sonuc=-1

A=1,B=5

Sonuc = (A Imp B ) 'Sonuc=-1

A=1,B=8

Sonuc = (A Imp B ) 'Sonuc=-2

A=10,B=8

Sonuc = (A Imp B ) 'Sonuc=-3  

Not Operatörü :

Lojik bir ifadenin degilinin alinmasi için kullanilir. Genel yazim sekli asagidaki gibidir :
Sonuc=Not Kosul
Burada Sonuc herhangi bir sayisal tipde degiskendir.
Kosul herhangi bir ifadedir.
Not operatörünün dogruluk tablosu asagidaki sekildeki gibidir ;

Ifade Not Ifade

True False

False True


Not operatörü ayni zamanda bitwise comparison islemide yapilabilir.

Ifade Not Ifade

0 1

1 0


Örnek :

Sonuc=(Not True) 'Sonuc=False

Sonuc=(Not 1) 'Sonuc=False

A=4

Sonuc=(Not A) 'Sonuc=-5

A=45

Sonuc=(Not A) 'Sonuc=-46

Sonuc=(Not 10) 'Sonuc=-11

Visual Basic'de Kontrol Komutlari

Kontrol komutlari programcilar tarafindan sikca kullanilan belirli ifadeleri kontrol etmek veya bazi sartlarin gerçeklesip gerçeklesmedigini kontrol etmek amaciyla kullanilan komutlardir. Biz burada en çok kullanilan komutlarin üzerinde duracagiz.

If Kontrol Yapisi :


Genel olarak bu komut yapisi su sekilde yazilir.
If Kosul Then
Kosul dogru ise yapilmasi istenen islemler.
End if

Kullandigimiz her If kontrolu için mutlaka bir Endif kullanmaliyiz. Bu kontrol yapisinin sonlandigini belirtir.
Örnek:

If ad="FATIH" Then

Maas=10000000
Endif

Eger kosul gerçeklesmemis ise yapilmasi istenen bazi islemler varsa o zaman su sekilde bir kontrol yapisini kullanabiliriz.
If Kosul Then
Kosul dogru ise yapilmasi istenen islemler.
Else
Kosul yanlis ise yapilmasi istenen islemler.
Endif
Ayni anda bir kaç kosul için karsilastirma yapilmak isternirse;
If Kosul Then
Kosul dogru ise yapilmasi istenen islemler.
Elseif Kosul1 Then
Kosul1 dogru ise yapilmasi istenen islemler.
Elseif Kosul2 Then
Kosul2 dogru ise yapilmasi istenen islemler.
Else
Bütün kosullar yanlis ise yapilmasi istenen islemler.
Endif
yapisi kullanilir. Bu yapida mutlaka Else blogunun bulunmasina gerek yoktur. Burada eger Kosul dogru ise ilk Then’den sonraki satirlar çalistirilarak Elseif ifadesine kadar icra edilirler. Daha sonra Endif ifadesinden sonraki satir icra edilir.Eger Kosul yanlis ise Kosul1 ifadesi kontrol edilir.Dogru ise buradaki then den sonraki satirlar çalistirilir. Yanlis ise Kosul2’ye bakilir. Eger bu kosulda yanlis ise Else ifadesinden sonraki satirlar çalistirilir.
Örnek :

If Isim="Ali" Then
Maas=Maas * 1.2

Elseif Isim="Murat" Then

Maas=Maas * 1.4

Elseif Isim="Kemal" Then

Maas=Maas * 1.1

Endif

Örnek :

If Bolen=0 Then

Msg.Text=" Bolen sayi sifir olamaz."

Else

Sonuc= Sayi / Bolen

Msg.Text = Sonuc

Endif

Ornek :

If name="Ali" AND no="1301920035"

Not=4

ElseIf name="Ahmet" AND no="1301940023" Then

Not=3

ElseIf name="Hakan" AND no="1301930045" Then

Not=2

ElseIf name="Hatice" AND no="1301940005" Then

Not=7

Endif

Select Case:

Bu kontrol yapisinda sadece bir degiskenin durum kontrolü yailir.Kontrolü yapilacak degiskenin genel olarak alabilecegi degerler belirli ise bu yapinin kukllanilmasi If yapisina göre daha avantajlidir. Yazilis biçimi genel olarak asagidaki sekildeki gibidir
Select Case Degisken
Case Deger1
Degisken=Deger1 oldugu durumda yapilmasi istenen islemler
Case Deger2
Degisken=Deger2 oldugu durumda yapilmasi istenen islemler
Case Else
Degisken yukaridaki degerler den hicbirine esit degil ise yapilacak islemler
End Select
Kullandigimiz her Select ifadesi için bir End Select kullanmaliyiz.
Örnek :

Select Case No

Case 1304

Name="Murat Tuna"

Case 1306

Name="Ayse Sinem"

Case 1307

Name="Hakan Kaya"

Case 1312

Name="Abdullah Kahyali"

Case 1324

Name="Hatice Uygun"

End Select

Örnek :

Select Case Ay

Case 1

Max_date=31

Case 2

Dim Artik as Integer

Artik = Yil Mod 4

If Artik=0 Then

Max_date=29

Else

Max_date=28

Endif

Case 3

Max_date=31

Case 12

Max_date=31

Case Else

Mesaj="Error : Bir yilda 12 ay vardir."

End Select

 

Visual Basic'te Döngü Komutlari

Bu komutlar belirli islemleri belirli sayida veya herhangi bir sart saglanana kadar tekrarlamak amaci ile kullanilirlar. Bu komutlar asagida verilmistir.
For ….. Next Döngüsü
Do While …. Loop Döngüsü
Do Until ……Loop Döngüsü
Do …… Loop While Döngüsü
Do …… Loop Until Döngüsü
Asagidada bu döngülerin nasil kullanildiklari açiklanmis ve örneklerle pekistirilmistir.
For Next Döngüsü :
Bütün dillerde bulunan döngü yapisidir. Genel yazim sekli asagidaki sekildeki gibidir.
For sayac=baslangiç To bitis Step artim
Arada isletilecek komutlar
Next sayac

Bu döngü sayac baslangic degerinden bitis degerine kadar çalistirilir. Sayaç baslangic degerinde iken döngü içindeki komutlar isletilir. Next ifadesine gelindiginde tekrar For satirina gelinir. Sayac degeri artim kadar artirilir. Eger Sayac degeri Bitis degerini geçmis ise Next adimindan sonraki adim isletilir. Burada step degerine pozitif veya nekatif bir deger versilebilir. Eger nekatif deger verilirse sayac her seferinde 1 azaltilir.Step adimini vermezsek bu pozitif 1 (+1) anlamindadir ve her adimda sayac bir artirilacaktir.Biz içiçe For Next döngüleride kurabiliriz. Ancak burada suda dikkat edilmelidir. En son baslatilan For döngüsü ilk önce bitirilmelidir.
For sayac1=basla1 To son1
Komutlar
For sayac2=basla2 To son2
Komutlar
Next sayac2
Next sayac1

Biz buradaki sayiyi daha da artirabiliriz.
Asagidaki sekideki gibi bir kullanim hatalidir
For sayac1=basla1 To son1
Komutlar
For sayac2=basla2 To son2
Komutlar
Next sayac1
Next sayac2
Burada For döngüsü isletilirken hata olusacaktir
Örnek :

Factöriyel=1

For I=1 To Sayi

Factöriyel= Factöriyel * I

Next I

Bu örnekte girmis oldugunuz pozitif sayinin faktoriyeli hesaplanmaktadir.
Do While Döngüsü :

Bu dögünün genel yazim sekli asagidaki sekildeki gibidir.
Do While Kosul
Komutlar
Loop
Burada önce Kosula bakilir. Eger kosul dogru ise aradaki satirlar çalistirilir taki Loop satirina kadar. Loop satirinda tekrar While satirina dönülür. Kosul tekrar kontrol edilir. Eger dogru ise ara satirlar tekrar çalistirilir. Kosul yanlis ise Loop ‘tan sonraki ilk satirdan program çalismaya devam eder. Içiçe Do While döngüleride kurabiliriz.
Do While Kosul1

….
Do While Kosul2

Komutlar
Loop
…..
Loop
Her Do While için mutlaka bir Loop yerlestirmeliyiz.
Örnek :

Fact=1 I=2

Do While I<=Sayi

Fact=Fact * I

I=I+1

Loop

Buradaki örnekte te faktöriyel hesabini Do While döngüsü ile yapiyoruz. Burada sayac olarak I degeri kullaniliyor. Eger faktöriyeli hesaplanacak deger 2 den kücükse (1 veya 0 ise) döngü içine girilmemektedir. Döngü içinde sayac artimini kendimiz veriyoruz. Sayac sayi degerine esit iken döngü son kez çalitiriliyor.
Do ….. Loop While Döngüsü :
Bu döngü yapisinin genels yazim sekli asagida verilmistir.
Do
…..
Komutlar
…..
Loop While Kosul
Bu ifade de döngü içinde komutlar mutlaka bir defe icra edilir. Daha sonra Kosul kontrol edilir. Eger kosul dogru ise tekrar Do satirina dallanilir ve aradaki komutlar tekrar icra edilir. Yanlis ise döngüden çikilir.Bu yapiyida içiçe kullanmamiz mümkündür.
Örnek :

Fact =1 I=1

Do

Fact=Fact *I

I=I+1

Loop While I<=Sayi

Faktöriyel hesapini yapan bir baska örnek verilmistir.
Do Until Döngüsü:

Bu döngünün genel yazim sekli asagidaki sekildeki gibidir.
Do Until Kosul
Komutlar
Loop

Burada önce Kosula bakilir. Eger kosul yanlis ise aradaki satirlar çalistirilir'taki Loop satirina kadar. Loop satirinda tekrar While satirina dönülür. Kosul tekrar kontrol edilir. Eger yanlis ise ara satirlar tekrar çalistirilir. Kosul dogru ise Loop‘tan sonraki ilk satirdan program çalismaya devam eder. Içiçe Do Until döngüleride kurabiliriz. Do While döngüsünden tek farki kosul yanlis iken çalistirilir.
Do Until Kosul1

Do Until Kosul2

Komutlar
Loop
…..
Loop
Her Do Until için mutlaka bir Loop yerlestirmeliyiz.
Örnek :

Fact=1 I=Sayi

Do Until I<=1

Fact=Fact * I

I=I-1

Loop

Buradaki örnekte'de faktöriyel hesabini Do Until döngüsü ile yapiyoruz. Burada sayac olarak I degeri kullaniliyor. Eger faktöriyeli hesaplanacak deger 2 den küçükse (1 veya 0 ise) döngü içine girilmemektedir.Döngü içinde sayac azaltimini kendimiz veriyoruz. Sayac 2 degerine esit iken döngü son kez çalistiriliyor
Do … Loop Until Döngüsü :
Bu döngü yapisinin genel yazim sekli asagida verilmistir.
Do

Komutlar

Loop Until Kosul
Bu ifade de döngü içinde komutlar mutlaka bir defa icra edilir. Daha sonra Kosul kontrol edilir. Eger kosul yanlis ise tekrar Do satirina dallanilir ve aradaki komutlar tekrar icra edilir. Kosul dogru ise döngüden çikilir.Bu yapiyida içiçe kullanmamiz mümkündür
Örnek :

Fact =1 I=1

Do

Fact=Fact *I

I=I+1

Loop While I>Sayi