Yayınlama: 2000
Güncelleme: 20 Haziran 2023
QuickBasic'te çeşitli veri tipleri vardır.Belleğe aktarılacak veriler için bellekte gereken boyutta yer açılır. Değişkenin içeriği ancak bu şekilde bellekte düzenli bir şekilde yerleşir.
Örnek:
A% = 126A değişkenin yanındaki % işareti değişkenin bir INTEGER veri tipine sahip olduğunu gösterir.
A değişkeni için bellekte 2 byte'lık yer açılır. Çünkü INTEGER veri tipi 2 byte'dır. 8 bit (binary digit= ikilik sayı) 1 baytı oluşturur.
1 baytın alacağı değer sayısal olarak 0-255, karakter olarak ise 1
karakter(harf, rakam, simge)dir.
Açılan bellek alanının bir kapasitesi olduğu için değişkene kapasitesinden daha büyük veri aktarmak Owerflow (aşırı yükleme, taşma) hatasına neden olacaktır.
Açılan bellek alanının bir kapasitesi olduğu için değişkene kapasitesinden daha büyük veri aktarmak Owerflow (aşırı yükleme, taşma) hatasına neden olacaktır.
Örnek:
A% = 32768 'Owerflow (taşma hatası) PRINT A%
A% değişkeni 2 baytlık(16 bit) INTEGER değişken olduğu için
alabileceği değer aralığı -32768 ile +32767 olduğu için
örnekte verilen 32768 değeri sınırı aşmaktadır.
Yani bellekte açılan alana bu sayı aktarılamaz. O yüzden hata verir. Değişken türü ya da değeri değiştirilmelidir.
Yani bellekte açılan alana bu sayı aktarılamaz. O yüzden hata verir. Değişken türü ya da değeri değiştirilmelidir.
Normalde 2 bayt(16 bit) 256*256 = 0-65536 (2 üzeri 16 = 65536) arası değer
alabilir. Ancak INTEGER değişkende negatif sayıları da
kullanabilmek için 16 bitin 1 biti sayının + ya da - işareti için
kullanılmaktadır.
Böylece sayı için 15 bit, işaret için 1 bit kullanılır.
15 bit (2 üzeri 15) = 32768
Böylece sayı için 15 bit, işaret için 1 bit kullanılır.
15 bit (2 üzeri 15) = 32768
Tanımlanmamış değişkenler varsayılan değişken türü olan SINGLE (4 bayt) olarak ayarlanır.
Değişkenin bellekte hangi adreste bulunduğunu öğrenmek için VARSEG ve VARPTR kullanılır.
Değişkenin bellekteki konumu yeni başlayanlar için önemsiz bir konudur. İleri seviye programlamada bunlara gerek duyulur.
Bellek adresleri SEGMENT adı verilen bölümlere ayrılmıştır. Her bölümde ise POINTER adı verilen segmentdeki adreslemeler vardır.
VARSEG(degiskenadi) ile değişkenin segment adresi, VARPTR(degiskenadi) ile değişkenin segment içindeki konumu(pointer) alınır.
Örnek 1:
a = 214 PRINT VARSEG(a)'Segment PRINT VARPTR(a)'PointerÖrnek 2:
DEFINT A-Z a = 120 b = 256 PRINT (VARSEG(a) * 65536) + VARPTR(a)'a değişkeni bellek adresi PRINT (VARSEG(b) * 65536) + VARPTR(b)'b değişkeni bellek adresiÖrnek 3:
Bu örnekte A değişkeninin değeri A=222 satırıyla değil doğrudan bellek adresine yazılarak değiştirildiğine dikkat edin. POKE komutu bellek adresine 1 byte veri yazmak için kullanıldı.
DIM A AS INTEGER CLS A = 100 PRINT "A DEĞERİ = "; A ' A DEĞERİ = 100 PRINT "A SEGMENT = "; VARSEG(A)'A SEGMENT = 16592 PRINT "A POINTER = "; VARPTR(A)'A POINTER = 15844 DEF SEG = VARSEG(A) 'Varsayılan Segment = A değişkeni segment adresi POKE VARPTR(A), 222 'A nın pointer adresine 222 yaz PRINT "A DEĞERİ = "; A 'A DEĞERİ = 222
QuickBasic'te Veri Tipleri
QuickBasic diğer dillerdeki gibi tüm veri tiplerini kullanmanıza imkan vermez, fakat genellikle diğerlerine ihtiyaç duymayacaksınız.
QuickBasic ile kullanabileceğiniz veri tipleri:
STRING : 32767 karaktere kadar. Kullanılan karakter sayısı kadar byte yer kaplar.
INTEGER : 2 byte. Tam sayı
LONG : 4 byte. Tam sayı
SINGLE : 4 byte. 7 basamaklı sayı. Tam sayı olması şart değil. 7 basamaktan fazla bir sayı olursa bilimsel gösterim kullanılır.
DOUBLE: 8 byte. 15 basamaklı sayı. Tam sayı olması şart değil. 15 basamaktan fazla bir sayı olursa bilimsel gösterim kullanılır.
Veri tipleri hakkında daha detaylı bilgi almak için menüden HELP/Contents 'i ve çıkan ekranda Data Types i tıklayın.
1) DIM ve AS kullanarak
Bu en güzel görünen stildir ve iyi programcıların kullandığı stildir.
Tanımları düzgün yaptıktan sonra programın ileriki aşamalarında yalnızca değişken adını kullanmanız yeterlidir.
STRING : 32767 karaktere kadar. Kullanılan karakter sayısı kadar byte yer kaplar.
INTEGER : 2 byte. Tam sayı
LONG : 4 byte. Tam sayı
SINGLE : 4 byte. 7 basamaklı sayı. Tam sayı olması şart değil. 7 basamaktan fazla bir sayı olursa bilimsel gösterim kullanılır.
DOUBLE: 8 byte. 15 basamaklı sayı. Tam sayı olması şart değil. 15 basamaktan fazla bir sayı olursa bilimsel gösterim kullanılır.
Veri tipleri hakkında daha detaylı bilgi almak için menüden HELP/Contents 'i ve çıkan ekranda Data Types i tıklayın.
Veri tipi tanımlama yolları
Değişkenlerin veri tiplerini tanımlamak için üç yöntem vardır.1) DIM ve AS kullanarak
Bu en güzel görünen stildir ve iyi programcıların kullandığı stildir.
Tanımları düzgün yaptıktan sonra programın ileriki aşamalarında yalnızca değişken adını kullanmanız yeterlidir.
Örnek 1:
DIM A AS INTEGER DIM B AS STRING DIM C AS INTEGER DIM D AS LONG DIM E AS SINGLE DIM F AS DOUBLE DIM G AS INTEGER, H AS INTEGER DIM I, J, K AS STRING 'I ve J nin tipi belirtilmediği için SINGLE olur I="Mesut" 'Hata: Type mismatch (Tür uyumsuzluğu)
2) DEFxxx kullanarak.
Değişkenin baş harfine göre tanımlanmamış olan tüm değişkenler DEF in yanındaki değişken türünde olur.
Değişkenin baş harfine göre tanımlanmamış olan tüm değişkenler DEF in yanındaki değişken türünde olur.
DEFINT: Integer
DEFSNG: Single
DEFDBL: Double
DEFLNG: Long
DEFSTR: String
Örnek 2:
DEFINT A 'A ile başlayan değişken adları INTEGER. Örnekler: A, AY, ABC, AYLIK DEFSNG C,F,H 'C F ve H harfleri ile başlayan değişken adları SINGLE DEFDBL D 'D ile başlayan değişken adları DOUBLE DEFLNG L-R 'L ve R arasındaki harfler LONG. Örnek: L, LA, M, MZ, NB, O1, P24, R DEFSTR S 'S ile başlayan türü belirtilmemiş tüm değişken adları STRING
3) Tür işareti ile
$ işareti STRING
% işareti INTEGER
& işareti LONG
! işareti SINGLE
# işareti DOUBLE
Değişkende herhangi bir işaret yoksa ve başka bir tanım belirtilmediyse değişken türü varsayılan olarak SINGLE'dır.
Örnek:
Yani A% nin değerini değiştirmek için A = 100 kullanmak sakıncalıdır.
Bu yöntem bazen kodlamayı zorlaştırır. Hatalara neden olabilir.
DİKKAT:
A% = 253 Y! = 3.141 Z& = 254144 M# = 2358542689.2668# ADI$ = "MESUT AKCAN" S = 65.5636Bu şekilde tanımlama yaptığınızda değişkeni hep aynı şekilde yazmak zorundasınız.
Yani A% nin değerini değiştirmek için A = 100 kullanmak sakıncalıdır.
Bu yöntem bazen kodlamayı zorlaştırır. Hatalara neden olabilir.
DİKKAT:
A! = 22.125 A& = 46500 A% = 255 A$ = "Mesut" PRINT A! PRINT A& PRINT A% PRINT A$ PRINT A A = A * 10 PRINT AÜstteki kodları yazıp çalıştırın. Sonucu inceleyin.
Sonuç:
22.125 46500 255 Mesut 22.125 221.25Değişken adları aynı olmasına rağmen farklı yöntemle tanımlandığı için farklı değişken adı statüsündedir.
Kullanıcı Tanımlı Veri Tipi
Kendi veri tipinizi belirleyebilirsiniz Bu size bellekte kaplayacak olan verilerinizi kullanmanızı kolaylaştıracaktır. Örneğin kişilerin adres bilgileri üzerinde işlem yapmak istiyorsanız, kişi için kendinizin belirlediği bir veri yapısı oluşturabilirsiniz.TYPE KisiselVeri AdiSoyadi AS STRING * 30 Adresi AS STRING * 50 Telefonu AS STRING * 18 PostaKodu AS LONG DogumYili AS INTEGER Boyu AS SINGLE Agirligi AS SINGLE Geliri AS DOUBLE END TYPESanırım bu açıklamalar başlangıç için yetersiz olacaktır.
Daha detaylı bilgi almak için TYPE yazısı üzerinde iken F1 'e basarak yardım alabilirsiniz.
Tanımlamış olduğumuz KISISELVERI veri tipini kullanmak için bellekte yer açmalıyız.
Bunun için;
DIM Personel AS KisiselVerikomutunu kullanırız.
Şimdi bu PERSONEL değişkenin elemanlarına değer aktaralım.
Şu an için telaşlanmanıza gerek yoktur. Zamanla bu yapıya alışıp gerekli yerlerde rahatlıkla kullanacaksınız.
DIM BORCU AS LONG
şeklinde değişken tanımlandıktan sonra programın ilerleyen satırlarında
BORCU = 1250000
şeklinde kullanabiliriz.
Ama karmaşık programlar yazdığınızda bu kullanım hangi değişkenin hangi veri tipinde olduğunu anlamanızda zorluk çıkarır.
Kolayı: İmleç değişken üzerinde iken F1 tuşuna basarak değişkenin hangi modülde hangi veri tipinde kullanıldığını gösteren ekranı görebilirsiniz.
Personel.AdiSoyadi = "Mesut Akcan" Personel.Adresi = "Antalya Caddesi No:68/4" Personel.Telefonu = "0324-998 46 21" Personel.PostaKodu = 33522 Personel.DogumYili = 1971 Personel.Boyu = 1.72 Personel.Agirligi = 74 Personel.Geliri = 3528.62Bu tip değişken kullanımı QuickBasic'te yeni iseniz ve ya diğer BASIC dillere alışkanlığınız varsa garip gelecektir. Ama bu tip değişkenler diğer dillerde de kullanılmaktadır.
Şu an için telaşlanmanıza gerek yoktur. Zamanla bu yapıya alışıp gerekli yerlerde rahatlıkla kullanacaksınız.
Veri Tipleri Özet Tablosu
PÜF NOKTASI:
DIM BORCU AS LONG
şeklinde değişken tanımlandıktan sonra programın ilerleyen satırlarında
BORCU = 1250000
şeklinde kullanabiliriz.
Ama karmaşık programlar yazdığınızda bu kullanım hangi değişkenin hangi veri tipinde olduğunu anlamanızda zorluk çıkarır.
Kolayı: İmleç değişken üzerinde iken F1 tuşuna basarak değişkenin hangi modülde hangi veri tipinde kullanıldığını gösteren ekranı görebilirsiniz.
Hiç yorum yok:
Yorum Gönder