GW ve Quick Basic’te programcı ne zaman bir değişkene gereksinim duyarsa her hangi bir bildiri değimini kullanmadan değişkeni tanımlayıp kullanabilir. Bu değişkene aktarılacak bilgiler, değişkenin adının son karakterine bağlı olarak değişiyordu.
VB’de ise değişken yapısı daha da gelişmiştir. Değişkenler icin onemli durum, değişkenlerin karışıklığa meydan vermemesi icin tanımlanması mecburiyeti olmasıdır. Daha onceki iki kuşak Basic’te bu mecburiyet yoktur ve değişkenleri benzerlikten dolayı her zaman karıştırmak mumkundur. VB’de değişkenleri kullanmadan once tanımlama mecburiyeti programcının secimine bırakılmıştır. Programcı isterse Tools-Options menusu Require Variable Declaration seceneğini işaretleyerek derleyicinin tanımlanmamış değişken kullanımda hata mesajı vermesini sağlayabiliriz.
Bir değişken tanımlanırken aşağıdaki kuralları goz onunde bulundurulması gerekir.
• Değişken ismi bir harf ile başlamalıdır.
Ad1, Ad2
• Değişken isminde boşluk bulunmaz. Bunun yerine alt cizgi karakteri kullanılabilir.
• Değişken isminde sadece harfler, rakamlar ve alt cizgi karakterleri bulunabilir.
Adı¬_Soyadı, No1
• Değişkene verilecek isim VB komutlarından oluşmamalıdır.
Not, Dim, Val ......vs
• Değişken ismi 255 karakterden fazla olmamalıdır.
5.1. VB’de Kullanılan Standart Veri Tipleri
VB’de değişken tipleri Dim değimi ile tanımlanır. Bu değimin yazılımı;
Dim deg_adı [(Dizi boyutu)] As tipi
deg _adı : Tanımlanacak değişkenin ismidir.
Dizi boyutu : Değişken dizi olarak tanımlanacaksa dizinin boyutu değişken isminden sonra parantez icine yazılır.
Dim x (5) tanımıyla 6 elemanlı dizi tanımlamış oluruz. Dizinin ilk
elemanı 0 son elemanı 5 dir.
Dim x (3 to 6) tanımıyla ilk elamanı x (3) ve son elamanı x (6)
olan bir dizi tanımlanmıştır.
Tipi : Tanımlanacak değişkenin tipi belirlenir. Bunlar ;
Byte : 1 Baytlık tamsayı tipidir. 0 ile 255 arasında değer alabilir.
Integer : 2 Baytlık işaretli tamsayı tipidir. –32768 ile 32767 arasında değer alabilir.
Long : 4 Baytlık işaretli tamsayı tipidir. –2.147.483.648 ile 2. 147.483.647 arasında değer alabilir.
Not: Yukarıdaki değişken tiplerine ondalık sayı atanması durumunda sayı en yakın tamsayıya yuvarlatılacaktır. ( x=4,3 ise x= 4 atanır, y=3.6 ise y=4 atanır)
Single : 4 Baytlık ondalık sayı tipidir. 3.402823 x 1038 ile 1.401298 x 10-45 arasında değer alabilir.
Double : 8 Baytlık ondalık sayı tipidir. 1.79769313486232 x 10308 ile 4.94065645841247 x 10-324 arasında değer alabilir.
Currency : 8 Baytlık ondalık sayı tipidir. Ancak sayının ondalık kısmı 4 basamaktan fazla olamaz. –92337203685477.5808 ile 922337203685477.5807 arasında değer alabilir.
Decimal : 14 Baytlık bir sayı tipidir. Bu tipin en onemli ozelliği sayıdaki butun basamakların tutulmasıdır.
Boolean : 2 Baytlık bir veri tipidir. Sadece True ve False değerleri alabilir.
Dim ogrenci As Boolen
Ogrenci=True
Ogernci=1 Bu atamaların hepsi aynı işi
Ogernci=100 gorur.
String : Karakter sınırı verilmezse 2 milyar karaktere kadar atama yapılabilen sayısal veri tipidir. +10 bayt yer kaplar. Karakter sayısını sınırlamak icin ;
Dim a As String * sınır yazılır.
Dim a String İstenildiği kadar karakter ataması yapılabilir.
Dim b String * 3 3 tane karakter ataması yapılabilir.
Variant : VB’de değişken tanımlanırken tip ismi verilmemişse bu tip Variant olarak ele alınır ve değişkenin tipi atanacak değere gore değişir. Variant tipler yukarıdaki tiplerden herhangi biri gibi işleme girebilir ve programın calışması esnasında değişebilir.
Date : 8 Baytlık yer kaplayan bu değişken tipi 1/1/100 ile 31/12/9999 arasındaki tarih ve 0:00:00 ile 23:59:59 arasında saat atamaları yapılabilir.
Object : 4 Baytlık bir veri tipidir. OLE işlemlerinde kullanılmak amacıyla tasarlanmıştır. Bu tipte değişkenlere atama yapılırken Set operatoru kullanılır.
5.2. Kullanıcı Tarafından Yeni Tip Tanımlanması
Type tip_adı
Deg_adı As tipi
Deg_adı As tipi
.........................
.........................
.........................
End Type
Bu sekil de tanımlanan tipte bir değişken tanımlamak icin de;
Dim deg_adı As tip_ismi olarak tanımlanabilir.
Tip tanımı bir form icerisinde ancak Private olarak tanımlanabilir. Yani tanımlanan tip sadece o formda kullanılır. Genel yani Public bir tip ise ancak bir modul icerisinde kullanılabilir.
Bir formda tip;
Private Type Ad
..............
End Type şeklinde tanımlanır.
Ornek 5.1:
Type Rehber
Ad As String
Soyadı As String
Tel As Integer
Adres As String
End Type
Burada Rehber değişkenini değil Rehber tipini tanımladık. Artık Rehber yapısındaki değişkenleri tanımlayabiliriz.
Dim adı As Rehber şeklinde tanımlayabiliriz.
Bu değişkene değer atamak icin “.” operatorunu kullanalım ;
Adı.Ad = “Bahadır”
5.2.1. Enum
Enum Tip İsmi
Elemen1=Sayı1
Eleman2=Sayı2
........................
Eleman3=SayıN
End Enum
Bu tip her bolume bir numara verir. VB bu bolumu bir sayı olarak kullanmasına rağmen bunu bir string gibi kullanma imkanı verir.
Ornek 5.2:
Enum bolum
Bilgisayar=1
Elektronik=2
Makine=3
Metal=4
Yapı=5
YapıRes=6
End Enum
Tanımını yaptıktan sonra bolum tipinde değişkenler tanımlayarak bu değişkenlere değer atamak mumkundur.
Dim eğitim As bolum
Bolum=Bilgisayar
Satırı ile bolum değişkenine Bilgisayar atamaktayız. Bu işlem eğitim=1 satırı ile aynı işi yapmasına karşın anlaşılması daha kolaydır.
5.3. Dinamik Dizi Tanımlama
Programda tanımlanacak dizinin boyutu her zaman belli olmayabilir. Bu durumda diziyi dinamik olarak tanımlamamız gerekir. Diziyi dinamik olarak tanımlayabilmek icin ReDim değimi kullanılır. Diziyi dinamik olarak tanımlamak demek dizinin boyunun ihtiyac olduğunda artırılması veya azaltılması demektir. Ustelik dizinin eski halini koruyarak.
ReDim [Preserve] deg_adı (dizi boyutu] As tipi
ReDim ile dizin ilk defa tanımlanacağı gibi yine ReDim’le tanımlanmış dizinin boyutunu değiştirmek icin de kullanılabilir. Burada Dim’den farklı olarak Preserve parametresi vardır.
Preserve, dizinin yeniden boyutlandırılması durumunda dizide bulunan elaman iceriklerini yeni dizide de bulunmasını sağlar.
Tanımlanacak dizi local bir dizi olmayacaksa dizi oncelikle Dim veya Global değimiyle aşağıdaki gibi tanımlanmalıdır.
Dim deg_adı () As tipi
Gorulduğu dizi tanımlanırken parantez icerisinde dizi boyutu verilmemiştir. Bu VB’ye dizinin dinamik olarak tanımlanacağını belirtecektir. Daha sonra dizinin elaman sayısı ReDim değimi kullanılarak belirlenir.
Private Type takip
Ad As String * 25
Soyad As String * 25
Sınıfı As String * 2
No As String *6
End Type
Dim Ogr () As takip “Diziyi dinamik olarak tanımla
Dim dizi_boyu As Integer ‘En son tanımlanan dizinin boyutu
Dim eleman_say As Integer ‘Dizideki son eleman indeksi
5.4. Global ve Local Değişkenler
Global değişkenler programın butun fonksiyonları kullanılabilen değişkenlerdir. Local değişkenler ise sadece tanımlandıkları fonksiyonda kullanılabilirler.
Dim değimi ile yapılan tanımlamalar yerine Global ve Local’dır. Dim ile tanımlana değişkenler;
• General-Declarations kısmında tanımlanmışsa modul veya form icerisinde Global’dır. Buna VB’de Module Level denir.
• Bir fonksiyon veya alt programda tanımlanmışsa Local’dır. Sadece o prosedur tarafından kullanılabilir.
• Bir formun General Declarations kısmında Public değimi ile tanımlanmışsa diğer moduller ve formlarda bu değişkeni kullanabilirler. Ancak değişkenin isminden once modulun/formun ismini vermesi gerekir.
Form1 . x = 4
• Bir değişkeni programın her tarafında kullanılacak şekilde tam olarak global tanımlamak icin o değişkeni bir modulun General-Declaration kısmında Public değimi ile tanımlamak gerekir.
Public x
Local değişkenlerin onemli bir avantajı bellekte fazladan yer işgal
etmemeleridir (Static olarak kullanılmamışlarsa). Global değişkenler program calıştığı surece bellekte tutulmalarına rağmen local değişkenler, değişkenin bulunduğu fonksiyona girince değişken belleğe alınır ve fonksiyonun calışması bitince bellekten atılır.
5.5. Static Değişkenler
Local olarak tanımlanan bir değişken tanımlandığı alt program veya fonksiyonun calışması bittikten sonra bellekten atılır. İlgili prosedur ikinci kez calıştırıldığında Local değişkenler eski değerlerinden değil baştan başlarlar.(string ise “ ”, sayı ise 0 )
Local olarak tanımlanan bir değişkenin değerinin tanımlandığı alt program veya fonksiyonun calışması bittikten sonra da değerinin korunması isteniyorsa Dim yerne Static değimiyle tanımlama yapılır. Static değimi bir alt program veya fonksiyon altında tanımlanabilir:
Static deg_adı [(dizi boyutu)] As tipi
5.6. Sabit Tanımlama
Programda değerlerinin değişmesi istenmeyen değerler sabit olarak tanımlanır. VB sabit tanımlama;
Cost Sabit ismi=Değeri
Ornek 5.3:
Cost PI=3.1415
5.7. Değişkenlere İlk Değer Ataması
Local değişkenlere ilk değer ataması şu şekildedir.
• Dim değimiyle ile tip ismi kullanılmadan yapılan tanımlamalarda ilk değer ataması direk olarak tanımın yapıldığı satırda yapılabilir.
Dim x=5, y=10
• Tip ismi kullanılarak yapılan tanımlamalarda ise ikinci bir satırda ilk değer ataması yapılır.
Dim x As Integer
x=5
Global olarak tanımlanan değişkene ilk değer ataması Declarations kısmında yapılır ve burası bir alt program değildir. Dolayısıyla Global olarak tanımladığımız değişkenlerimize ilk değer atamasını Form_Load veya projenin calışmaya başladığı alt program altında yapmalıyız.
Static değişkenlere de ilk değer ataması IsEmpty () fonksiyonu ile yapılır. Bu fonksiyon bir değişkene değer atanıp atanmadığını kontrol eder. Verilen değişkene değer ataması yapılmamışsa fonksiyondan geri donen değer TRUE’dir. Fonksiyonun bu ozelliğinden yararlanarak static olarak tanımlanan değişkene daha once değer atanıp atanmadığını yani ilk defamı kullanıldığını oğrenebiliriz.
Static i;
If IsEmpty(i) then i=5
Boylece alt program ilk defa calıştığında i’ye her hangi bir değer ataması olmadığı icin şartımız calışacak ve ilk değer atanacaktır. Alt programın sonraki seferlerde calışması durumunda ise i’nin static olmasından dolayı atanmış bir değer olacak ve şartımız calışmayacaktır. Boylece sadece alt program ilk defa calıştığında ilk değerimizi atamış olacağız.
VB’de bir diziye değer ataması da değişkeni Variant olarak tanımladıktan sonra Array fonksiyonu ile o değişkenin bir dizi olduğunu belirtmek ve ilk değer atamak mumkundur.
Dim Dizi [As Variant]
Dizi=Arrray(eleman)
Ornek5.4:
Dim gun
Gun= Array(“Pazar”, “Pazartesi”, “Salı”, “Carşamba”, “Perşembe”, “Cuma”, “Cumartesi”)
5.8.Kullanılan Değişkenlerin Tipini Belirlemek
Tipi belirtilmeyen Variant tipi değişkenlere programın işletimi sırasında istenen tipteki bilgi aktarılabilir. VarType fonksiyonu ile Variant bir değişkenin hangi tipte bilgi icerdiği oğrenilebilir.
VarType (Variant Değişken Adı)
Yazılımında da gorulduğu gibi bu fonksiyon dışarıdan icerdiği bilginin tipi oğrenilmek istenen değişkenin adını almaktadır. Geriye ise değişkenin icerdiği bilginin tipini temsil eden sayısal bir değeri dondurmektedir. Eğer Variant değişken karaktersel bilgi iceriyorsa VarType() fonksiyonu geriye 8 sayısal değerini dondurur. VarType fonksiyonu ile dondurulecek sayısal değer ve bu değerlerin temsil ettikleri veri tipleri aşağıdaki tabloda verilmiştir.
Veri Tipi Sayısal Değer
Boş-Empty 0
Null 1
Integer 2
Long 3
Single 4
Double 5
Currency 6
Date 7
String 8
Object 9
Error 10
Boolen 11
Variant 12
Data Object 13
Tablo-5.1. Veri Tipleri
5.9. Tip Değiştirme İşlemleri
Ccur(ifade): Parantez icinde verilen ifadeyi Currency tipine donuşturur.
CDbl(ifade): Parantez icinde verilen ifadeyi Double tipine donuşturur.
CInt(ifade): Parantez icinde verilen ifadeyi Integer tipine donuşturur.
CLng(ifade): Parantez icinde verilen ifadeyi Long tipine donuşturur.
CSng(ifade): Parantez icinde verilen ifadeyi Single tipine donuşturur.
CVar(ifade): Parantez icinde verilen ifadeyi Variant tipine donuşturur.
CBool(ifade): Parantez icinde verilen ifadeyi Boolen tipine donuşturur.
CByte(ifade): Parantez icinde verilen ifadeyi Byte tipine donuşturur.
CDec(ifade): Parantez icinde verilen ifadeyi Decimal tipine donuşturur.
CDate(ifade): Parantez icinde verilen ifadeyi Date tipine donuşturur. İki tarih arasında işlem yapabilmek icin bu donuşum kullanılır.
5.10. Değişkenlerle İlgili Komutlar
5.10.1. IsDate
Değişkenin iceriği gecerli bir tarih ise geri donen tarih True, değilse False’dir kabul edilen tarih formatı Windows’da tanımlanan formattır.
IsDate (değişken)
Ornek 5.4:
Dim a
a=IsDate(“30/02/1999”) ‘ Verilen tarih gecerli değildir. A=True (Şubat ayı 29 gundur.
a=IsDate(“13bfg”) ‘Verilen tarih gecerli değildir. A=False
5.10.2. IsNumeric
Verilen değişkenin iceriğinin bir sayı olup olmadığını kontrol eder. Değişkenin iceriği sayı ise geri donen değer True değilse False’dir.
IsNumeric(değişken)
5.10.3. IsArray
Girilen değişken bir dizi ise True değilse falese uretir. Yani bir değişkenin dizi olup olamadığını oğrenmek icin kullanılır.
IsArray(değişken)
5.10.4. IsEmpty
Tanımlanmış bir değişkene henuz bir değer atanmamışsa o değişken Empty’dir. Bir değişkene değer atanıp atanmadığını oğrenmek icin kullanılır. Donen değer False ise değişkene bir atama yapılmıştır.
IsEmpty (Değişken)
5.10.5. IsMissing
VB’de fonksiyon veya alt programlara giriş parametresi olarak Optional değimi kullanılırsa o parametre kullanılmadan da o fonksiyon cağrılabilir. IsMissing fonksiyonu bu tip parametrelerin verilip verilmediğini kontrol etmek icin kullanılır.
IsMissing (Değişken)
5.10.6. IsObject
Verilen değişkenin tipi Object tipinde ise fonksiyondan geriye True değeri doner.
IsObject (Değişken)
5.10.7. Erase
İsmi verilen diziyi siler.
Erase Diziismi
__________________
VB’DE Değişken Tanımlama
Programlama0 Mesaj
●31 Görüntüleme
- ReadBull.net
- Programlama ve Yazılım
- Programlama
- VB’DE Değişken Tanımlama