Delphi’de Değişkenler – 1

Öncelikle belirtmeliyim ki, bu konu Delphi’nin temel konularındandır ve tabi ki de “Olmazsa Olmaz” bir konudur…

a. Değişken nedir, ne işe yarar?:

Basitçe açıklayacak olursak, RAM’de veri tutmaya yarar ve Delphi’de ki tüm işlemler değişkenler üzerinden yürür.

b. Veri tipleri:

Veri tiplerini 4 grupta inceleriz: Tam Sayı, Reel Sayı, Boolean, String.

b.a. Tam Sayı tipleri: 

b.a.a. Shortint:
(-128)-(+128) arasında değer alabilen tam sayı tipli bir değişkendir. Eğer bu değerlerin dışında bir sayı aktarılmaya çalışılırsa taşma (owerflow) hatası
verecektir. Bu değişken bellekte 1 Byte (8 bit) lik yer işgal eder.

 Var
 Yas:Shortint; //Sadece -128 ile 128 arasında değer atanabilir.

b.a.b. Smallint:
(-32768)-(+32768) arasında tam sayı değeri atanabilen değişken tipidir.
Bellekte 2 Byte (16 bit) lık yer işgal edecektir.

 Var
 Sayi:Smallint; //Sadece -32768 ile 32768 arasında tam sayı değeri atanabilir

b.a.c. Longint:
(-2147483648)-(+2147483647) arasında tam sayı değerleri alabilen bir değişken
tipidir. Bellekte 4 Byte (32 bit) yer işgal edecektir.

 Var
 Sayi:Longint; //Sadece -2147483648 ile 2147483648 arasında değer atanabilir.

b.a.d. Integer:
(-2147483648)-(+2147483647) arasında tam sayı değerleri alabilen bir değişken
tipidir. Bellekte 4 Byte (32 bit) yer işgal edecektir.

 Var
 Sayi:Integer; //Sadece -2147483648 ile 2147483648 arasında değer atanabilir.

b.a.e. Int64:
(-2^63)-(2^63-1) arasında tam sayı değeri atanabilen değişken tipidir. Bellekte 8
Byte (64 bit) yer işgal edilecektir.

 Var
 Sayi:Int64; //Sadece -2^63 ile 2^63 arasında değer atanabilir.

b.a.f. Byte:
0-255 arasında pozitif tam sayı değeri alabilen değişken tipidir. Bellekte 1 Byte
(8 bit) lık yer işgal edecektir.

 Var
 Sayi:Byte; //Sadece 0-255 arası pozitif tam sayı değeri alabilir.

b.a.g. Word:
0-65535 arası pozitif değer alabilen değişken tipidir. Bellekte 2 Byte (8 bit) lık
yer işgal edecektir.

 Var
 Sayi:Word; //Sadece 0-65535 arası değer atanabilir.

b.a.h. Longword:
0-4294967295 arası pozitif değer atanabilen değişken tipidir. Bellekte 4 Byte
(32bit) lık yer işgal edilecektir.

 Var
 Sayi:Longword; //Sadece 0-4294967295 arası değer atanabilen değişken tipidir.

b.a.j. Cardinal:
0-4294967295 arası pozitif değer atanabilen değişken tipidir. Bellekte 4 Byte
(32bit) lık yer işgal edilecektir.

 Var
 Sayi:Cardinal; //Sadece 0-4294967295 arası değer atanabilen değişken tipidir.

Bu tiplere, alabileceği değer sınırları dışında bir değer ataması direkt olarak yapılamaz. Atama yapılmaya çalışıldığı durumlarda aşağıdaki hata mesajı çıkar.
“Constant expression violates subrange bounds”

b.b. Reel Sayı Tipleri:

b.b.a. Real48:
(+-2.9*10^-39) ve (+-1.7*10^38) arasında değer alabilen reel sayı tipidir.
Ondalıklı kısımdan 11-12 dijite kadar hassas çalışabilir. Bellekte 6 Byte (48 bit)
yer işgal etmektedir.

Var
Sayi:Real48; //Sadece yukarıdaki sınırlar içerisinde değer alabilir.

b.b.b. Single:
(+-1.5 x 10^-45) ve (+-3.4 x 10^38) arasında değer alabilen reel sayı tipidir.
Ondalıklı kısımdan 7-8 dijit hassasiyetiyle işlem yapabilir, ve bellekte 4 Byte
(32 bit) lık yer işgal eder.

Var
Sayi:Single; //Sadece yukarıda belirtilen sınırlar içerisinde değer alabilir.

b.b.c. Double:
(+-5.0 x 10^-324) ve (+-1.7 x 10^308) arasında değer alabilen reel sayı tipidir.
Ondalıklı kısımdan 15-16 dijite kadar hassasiyetle işlem yapabilmektedir.
Ayrıca bellekte bu değişken 8 Byte (64 bit) lık yer işgal edecektir.

Var
Sayi:Double; //Sadece yukarıda belirtilen sınırlar içerisinde değer alabilir

b.b.d. Real:
(5.0 x 10^-324) ile (1.7 x 10^308) arasında değer saklayabilen reel sayı tipidir.
Bellekte 8 Byte (64 bit) lık yer işgal edecektir.

Var
Sayi:Real; //Sadece yukarıdaki sınırlar arasında değer alabilir.

b.b.e. Extended:
(+-3.6 x 10^-4951) ve (+-1.1 x 10^4932) arasında değer alabilen reel sayı
değişken tipidir. Ondalıklı kısımdan 19-20 dijite kadar hassasiyetle işlem
yapabilir. Ayrıca bellekte 10 Byte (80 bit) lık yer işgal edecektir.

Var
Sayi:Extended; //Sadece yukarıda belirtilen sınırlar içerisinde değer alabilir

b.b.f. Comp:
(-2^63+1) ile( 2^63 -1) değer alabilen değişken tipidir. Ondalıklı kısımda 19-20
dijit hassasiyeti ile değer saklayabilir. Ayrıca bellekte 8 Byte (64 bit) lik yer
işgal edecektir.

Var
Sayi:Comp; //Sadece yukarıda belirtilen sınırlar içerisinde değer alabilir.

b.b.g. Currency:
Parasal veriler için kullanılabilen bu değişken tipi (-922337203685477.5808)
(922337203685477.5807) arasında değer alabilen 19-20 dijitlik bir değişken
tipidir (Ondalıklı kısımdan 4 basamak hassasiyetiyle çalışır). Ayrıca bellekte 8
Byte (64 bit) lik yer işgal edecektir.

Var
Para:Currency; //Ondalıklı kısımdan sadece 4 basamak tutar.

Değişkenlerinizi en ekonomik tipte tanımlamanız, size daha hızlı sonuca
ulaşabilme özelliği kazandıracaktır. Bu yüzden değişken tanımlarken nasıl olsa Extended hepsini kapsıyor, bu tip tanımlayıp işlemlerimi yaptırayım
düşüncesinden her zaman uzak durmalısınız. Bir adamın yaşını aktaracağınız
değişkeni Double tanımlamanız sanıyorum size de fazla mantıklı gelmeyecektir.

Bu kısma kadar olan değişkenlerin hepsi sayısal içerikliydi, buradan sonraki kısımda ise sayısal içeriği olmayan diğer değişkenler incelemeye alınacaktır.

 b.c. Boolean(Doğru/Yanlış):
Bir değişkeniniz sadece true veya false değerlerini alacaksa bu durumda değişkeninizi Boolean tip tanımlamalısınız. Bu tip değişkenlerde üçüncü bir durum söz konusu değildir. Ayrıca değişken tanımlandığı anda varsayılan değeri false dur.

Var
Sonuc:Boolean; //true veya false değerini alabilir.

 

b.d. String tpleri:
Bu bölümde karakter işlemlerinde kullanabileceğiniz değişken tiplerinden
bahsedeceğim. Matematiksel ve Tarihsel içeriği olmayan değerleri tutmak için
kullanılan tiplerdir.
b.d.a. ShortString:
255 Karaktere kadar veri alabilen string değişken tipidir.
Bu tipteki değişkene (”) içerisinde bilgi aktarıldığına dikkat ediniz.
b.d.b. AnsiString:
Yaklaşık olarak 2^31 karaktere kadar değer atanabilen (en çok kullanacağınız)
ve Ansi karakter desteği olan bir değişken tipidir. Kullanımı ShortString
değişkeniyle aynıdır.
b.d.c. WideString:
Yaklaşık olarak 2^31 karaktere kadar (Unicode) değer atanabilen değişken
tipidir.

Var
Ad:WideString; //String değişken tanımlandı

String tipte değer alacak olan değişkenlerinizi yukarıdaki üç tipten bir tanesiyle tanımlayabilirsiniz.

Tags: , , ,

No comments yet.

Leave a Reply

*