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