Visual Basic 6.0 Ders Notları Anadolu Üniversitesi Endüstri Mühendisliği Bölümü Değişkenler ve Veri tipleri Visual Basic 6.0 Ders Notları Kaynak: İhsan Karagülle, Zeydin Pala, Visual Basic 6.0, Türkmen Kitabevi, 1999, Beyazıt İstanbul,
Değişkenler ve Veri tipleri Bir dilin en önemli bileşenlerinden biri: Değişkenler ve Veri Tipleridir Değişkenler bir bilgiyi hafızada tutmak ve gerektiğinde kullanmak için kullanılır. Birçok dilde değişken tanımlama zorunludur. Visual Basic değişken tanımlamaya zorunlu tutmaz. Değişkenler tanımlanırsa Program daha etkin olur Tanımlamadan kaynaklanan bazı hatalar önlenmiş olur. Yazacağımız programlarda değişkenleri mutlaka tanımlayacağız!!!
Değişken Tanımlamayı Zorunlu Hale Getirme Değişken tanımlamayı zorunlu hale getirmek için Tools-options Require Variable Declaration checkbox’ını işaretlemek ya da Option Explicit General Decleration kısmında “option explicit” kodunu yazmak
Tanımlama Kuralları Değişken ismi bir harf ile başlamalıdır. Ad1, Ad2, ogrenci1, isim, no Doğru 1ad, 2.ad, Yanlış Değişken isminde boşluk bulunamaz. Değişken isminde sadece harfler, rakamlar ve altçizgi ‘_’ karakteri bulunabilir. Alış-Tarihi, AraşGör*, $df, Yanlış Alış_Tarihi,Araş_Gör_Dr Doğru Değişkene verilecek isim VB komutlarından oluşmamalıdır. (not, dim, val vb.) Değişken ismi 255 karakterden daha uzun olmamalıdır. VB Türkçe karakterleri değişken tanımlamada kullanılmasına herhangi bir kısıt getirmemektedir ancak diğer programlarda bu destek yoktur, bu sebeple programlarımızda türkçe karakterleri değişken tanımlamada kullanmayacağız!!!
Veri Tipleri Veri tanımlamada kullanılan format Dim deg_ismi [(diziboyutu)] As Tipi Dim ogrenci_Adi As String Dim notlar(15) As Integer Dim a(15) tanımıyla 16 elemanlı bir dizi tanımlanır, dizinin ilk elemanı a(0) son elemanı a(15)’tir. Dim a(5 to 15) tanımıyla ilk elemanı a(5) ve son elemanı a(15) elemanı olan 11 elemanlı bir dizi tanımlanabilir. ! Dim komutu kullanılarak bir fonksiyon/altprogram içersinde dizi tanımı yapılamaz. Tipi, Byte, Integer, Long, Single, Double, Currency, Decimal, Boolean, String, Variant, Date, Object gibi değişken tipilerini gösterir.
Değişken Tipleri Tip Bellek alanı Değer aralığı Byte 1 bayt 0 ile 255 Integer 2 bayt -32,768 ile +32,767 Long 4 bayt -2.147.283.64 ile 2.147.483.647 Single 4 bayt +/- 3.402823 E38 ve +/-1.401298 E -45 Double 8 bayt +/- 1.79769313486232 E308 ve +/-4.94065645841247E-324 Currency 8 bayt - 922337203685477.5808 ile 922337203685477.5807 Decimal 14 bayt +/- 79228162514264337593543950335 tamsayı Decimal 14 bayt +/- 7.9228162514264337593543950335 ondalık Boolean 2 bayt True ya da False String karakter sayısı + 10 b 2 milyar karaktere kadar atama yapabilen sayısal olmaya veri tipidir, *sınır ile boyutu sabitlenebilir, sabit olarak en fazla 65400 değeri verilebilir. Variant 16 bayt Date 8 bayt 1/1/100 ile 12/31/9999 tarih, 0:00:00 ile 23:59:59 saat Object 4 bayt Sayısal olarak tanımlanan tiplerde değişken tipinin sınırlar dışında bir değer alması durumunda, VB Overflow hatası verecektir.
Byte, Integer, Long Byte, integer ve Long değişken tipleri tamsayı değerler için kullanılır. Eğer ondalıklı bir değer bu değişkenlere atanmak istenirse, değer en yakın tamsayıya yuvarlanır. Dim i As Integer i = 4.3 ‘ i= 4 olarak atanır i = 4.5 ‘ i= 5 olarak atanır i = 4.6 ‘ i= 5 olarak atanır
Single, Double Single Double + 3.402823 E38 + 1.79769313486232 E308 -1.401298 E -45 -4.94065645841247E-324 - 3.402823 E38 - 1.79769313486232 E308
Currency Currency 8 bayt - 922337203685477.5808 ile 922337203685477.5807 Ondalık kısmın dört basamaktan fazla olması durumunda sayı yuvarlatılır, Genellikle para hesapları ve virgülden sonraki hassasiyeti önemsiz olan işlemler için kullanılır Dim i As Currency i = 4.30571 ‘ i= 4.3057 olarak atanır i = 4.30575 ‘ i= 4.3058 olarak atanır i = 4.30577 ‘ i= 4.3058 olarak atanır
Decimal Hem tamsayı hem de ondalık sayı için kullanılır Sayıdaki bütün basamakları tutar Dim deyimi ile tanımlanamaz, Bu tip bir variant değişkene CDEC fonksiyonu ile atanabilir. Dim x x = CDec("12341234123412341234") Print x
Boolean Genellikle Evli/Bekar, Doğru/yanlış, var/yok gibi iki durumu gösteren değerler için kullanılır. Atanan sayı 0 ise false değil ise true olarak kabul edilir. Bu tip değişkenler üzerinde işlem yaparken true değerine -1 false değerine ise 0 karşılık gelir Dim evli As Boolean Evli = true Evli = 1 Evli = 100 Dim evli As Boolean Evli = false Evli = 0 Dim i As Boolean, j As Integer j=10 i=true Print j*i ‘ sonuç -10 i = false Print j*i ‘ sonuç 0
String Verilen sınır kadar yer kaplar, En büyük sınır 65400 dür. Dim degisken As String*sınır olarak tanımlanır Verilen sınır kadar yer kaplar, En büyük sınır 65400 dür. Dim a As String, Dim b As String * 3, a=“abcdefgh” ‘ atama aynen yapılır b=“abcd ” ‘ yalnızca ilk üç karakter atanır b=“abc” b=“a” ‘ yine üç karakter atanır ancak son iki karkter boşluktur b=“a ”
Variant Değişken tanımlanırken tip ismi verilmemişse bu tip variant olarak değer alır. Değişkenin tipi atanacak değere göre değişir. Variant tipinin programın çalışması esnasında tipi değişebilir Dim A ‘ veya Dim a As Variant olarak tanımlanabilir. A=5 ‘ şu anda A integer tipinde A=A+200000 ‘ işlem integer sınırlarını aştığı içi şu anda A long A=5.7 ‘ Sayı ondalıklı olduğu için A single A=A+5.3E200 ‘ Sayı single sınırlarını aştığı için şu anda A double A=“a1c2” ‘ A’nın tipi string A=A+5 ‘ hata A son olarak string tipinde olduğundan işlem yapılamaz
Date tarih için 1/1/100 ile 12/31/9999,saat için 0:00:00 ile 23:59:59 aralığında değer alır. Atama bir string gibi veya # # karakterleri arasında yapılabilir. Ondalık sayı tipinde tanımlandığı için bu tipte tanımlanmış tarihler arasında işlem yapılabilir Dim i As Date i = “17/11/1973” Print i & “tarihinden bu güne kadar” & date- i & “ gün geçti”
Kullanıcı Tarafından Yeni Tip Tanımlama Standart veri tiplerinden yeni veri tipleri tariflenebilir Tip tanımı form içersinde sadece Private olarak tanımlanır, yani tanımlanan tip sadece o form içinde kullanılabilir Type ogrenci Ad As String Soyad As String Dogum_yeri As String Dogum_tarihi As String No As String Bolum As String Sinif As Integer End Type Type tip_ismi deg_ismi As Tipi … End Type Dim ogr1, ogr2 As ogrenci ogr1.Ad=“Gurkan” Ogr1.Soyad=“Ozturk” Ogr1.sinif=3 if ogr1=ogr2 then …
Enum isimleri numaralandırarak kullanmamıza imkan sağlar. Enum birim Muhasebe =1 üretim = 2 reklam = 3 pazarlama =4 satış = 5 hizmet = 6 güvenlik =7 eğitim = 8 yönetim = 9 End Enum Enum tip_ismi Eleman1= sayı1 Eleman2= sayı2 Eleman3= sayı3 … End Enum
Dinamik Dizi Tanımlama Dinamik dizi tanımlamak, dizinin boyutunun ihtiyaç oldukça artırılıp azaltılması demektir. Redim [preserve] deg_ismi(diziboyutu) As tipi olarak kullanılır. Preserve, dizinin yeniden boyutlandırılması durumunda dizde bulunan eleman içeriklerinin yeni dizide bulunmasını sağlar
Global ve Local değişken tanımları General Declarations kısmında tariflenen Global değişkenler programın bütün fonksiyonları tarafından kullanılır. Fonksiyon veya alt programlar içinde tariflenen Local değişkenler sadece tanımlandıkları fonksiyon veya altprogram içinde kullanılır.
Public ve Private General-Declaritions kısmında Public deyimi ile tanımlanmış değişkenler, diğer modüller ve formlar tarafından kullanılabilir. Kullanım sırasında değişken isminden önce modülün/formun isminin verilmesi gerekir
Static Değişken Local olarak tanımlanan bir değişkenin değerinin tanımlandığı alt program veya fonksiyonun çalışması bittikten sonra da değerinin korunması isteniyorsa dim yerine static deyimi ile tanımlama yapılır. Static deyimi bir alt program veya fonksiyon altında tanımlanabilir. Static deg_ismi [dizi_boyutu] As tipi şeklinde kullanılır.
Sabit Tanımlama Programda değerinin değiştirilmesi istenmeyen değerler sabit olarak tanımlanabilir. Const SabitIsmi = degeri şeklinde tanımlama yapılır. Bu sabitin değeri program içinde değiştirilemez.
Tip Değiştirme İşlemleri Bir tipteki değeri başka bir tipte kullanmaya ihtiyaç duyduğumuzda izleyen fonksiyonlardan yararlanırız. CCur(ifade) : verilen ifadeyi Currency tipine donusturur CDbl(ifade) : verilen ifadeyi Double tipine dönüştürür. CLng(ifade) : Long tipine dönüştürür. CSng(ifade) : Single tipine dönüştürür. CVar(ifade) : Variant tipine dönüştürür. CBool(ifade): Boolean tipine dönüştürür. CByte(ifade): Byte tipine dönüştürür. CDec(ifade) : Decimal tipine dönüştürür. CDate(ifade): Date tipine dönüştürür.
Bilgisayar Programlama Dersinin etkileşimli yürütülebilmesi amacıyla dersi alan tüm öğrenciler Kendi e-posta adreslerini kullanarak konu kısmında öğrenci numaralarının yer aldığı boş bir e-postayı, eğer A grubunda iseler gurkano@ogu.edu.tr adresine, B grubunda iseler oustun@ogu.edu.tr adresine göndermeleri gerekmektedir.