Delphide Veri Tipleri (Sabitler ve değişkenler)
| ||||
Değişkenler içinde farklı türlerde veriler olabilir. Örneğin bazı değişkenlerde sayı saklamanız gerekirken metin saklamanız gerekebilir. Değişkenin tanımlarken o değişkende ne tür veri bulunduracağı-nızı belirlemeniz gerekir. Kullanabileceğiniz veri tipleri şunlardır:
|
Var sayi, Toplam: Integer; Toplam:Integer; x,y,z: word; Açıklama: String; MedeniHali: Boolean; Ondalık Sayı: real; |
Tam Sayı Tipleri :
ShorInt : 1 baytlık işaretli tam sayı tipidir. ?128 ile 127 arasında değer alabilir.
SmallInt : 2 baytlık işaretli tam sayı veri tipidir. ?32768 ile 32767 arasında değer alabilir.
LongInt : 4 baytlık işaretli tam sayı tipidir.-2147483647 ile 2147483647 arasında değer alabilir.
Integer : Bu tip de LongInt gibidir. 4 baytlık işaretli tam sayı tipidir. ?2147483647 ile
2147483647arasında değer alabilir. (Delphi?nin 16 bitlik versiyonunda Integer tipi 16 bitlik,
Delphi?nin 32 bitlik versiyonlarında(2.0, 3.0+) ise bu tip 32 bitlik bir değer içerebilir.)
Byte : Bir baytlık işaretsiz tam sayı tipidir. 0 ile 255 arasında değer alabilir. (ShortInt tipinin
işaretsiz halidir.)
Word : 2 baytlık işaretsiz tam sayı tipidir. 0 ile 65535 arasında değer alabilir.
Cardinal : 4 baytlık işaretsiz tam sayı tipi. 0 ile 2147483647 arasında değer alabilir.
Int64 : Delphi 4 versiyonundan sonra birlikte 64 bitlik tam sayılar tanımlanabilmektedir. Bu yeni
tip Int64 olarak tanımlanır ve bu tür değişkenler ?9*10 ile 9*10 arası değerler alabilmektedir.
Ancak bu türden değişkenler bütün fonksiyonlar tarafından desteklenmez. Bu türü desteklemek
için 2 özel fonksiyon da (StrToInt64,StrToInt64Def) tanımlanmıştır.
LongWord : delphi 4 versiyonundan sonra Unsigned Long (işaretsiz tamsayı) tipi geliştirilmiştir.
LongWord olarak adlandırılan bu tip 0..4294967295 arası değerler alabilmektedir.
|
Var A: Longword; |
Variant : 16 bytelık bir değişken tipidir. Bu tipteki bir değişkene hem sayısal hem de string
ifadeler aktarılabilir.
|
Var x: variant; begin x:=1233; x:=?Delphi5?; end; |
Sınır Aşımı :
Veri tiplerine alabileceği değer sınırları dışında bir değer ataması direkt yapılamaz. Atama yapılmaya çalışıldığı durumlarda aşağıdaki hata mesajı ortaya çıkar.
?Constant expression violates subrange bounds?
Örneğin aşağıdaki kod çalışmaz.
|
procedure TForm1.FormCreate(Sender: TObject); var x: ShortInt; begin x:=220; ShowMessage(IntToStr(x)); End; |
X değişkenine atanmaya çalışılan 220 sayısı ShortInt sınırını aştığı için ?Constant expression violates subrange bounds? hata mesajı verilir.ancak aşağıdaki gibi bir atama yapılabilir.
|
procedure TForm1.FormCreate(Sender: TObject); var x,y,z: ShortInt; begin x:=100; y:=120; z:=x+y; ShowMessage(IntToStr(z)); End; |
Burada gördüğünüz gibi x+y işleminin sonucu da 220 çıkartmaktır. Direkt atama yapmaya
çalıştığımızda hata vermesine rağmen dolaylı olarak bir işlem sonucunda atama yaptığımızda hata vermemektedir. Ancak program da doğru çalışmayacaktır. Vermesini beklediğimiz sonuç 220 iken sonuç ?36 çıkar. Çünkü atanan değer tipin sınırları dışına çıkmıştır. Program kodlarında bu duruma dikkat etmezseniz bu örnekte olduğu gibi beklenmedik sonuçlar alırsınız.
Değişkenlerinizi tanımlarken bu sınırlara dikkat etmelisiniz. Aksi takdirde her şey doğru olduğu halde sonuçlar yanlış olabilir.
Reel Sayı Tipleri :
Single : 4 baytlık ondalık sayı tipidir.1.5*10 ile 3.4*10 arasında da değer alabilir. (7-8 haneli
rakamlar yani:y.yyyyyy*10)
Real48 : 6 baytlık ondalık sayı tipidir.2.9*10 ile 1.7*10 arasında da değer alabilir. (11-12 haneli
rakamlar)
Real ve Double : 8 baytlık ondalık sayı tipidir.5.0*10 ile 1.7*10 arasında da değer alabilir. (15-16
haneli rakamlar)
Delphi 4 versiyonuyla birlikte eski 48 bitlik real sayı tipi 64 bite çıkarılmış ve eski tip Real48 olarak adlandırılmıştır. Böylece Real tanımıyla Double tanımı arasında farklılık kalmamıştır.
Varr1:Real;//64 bitlik yeni tip real say r2:Real48;//eski tip real say d:Double;//r1 ile aynı özelliklerde |
Sanıldığının aksine 64 bitlik reel sayı tipi 48 bitlikten daha hızlıdır. Çünkü FPU?lar 64 bitlik reel sayı formatını desteklediği için işlemlerde tip dönüşümü gerektirmemektedir.
Extended : 10 baytlık ondalık sayı tipidir.3.4*10 ile 1.1*10 arasında da değer alabilir. (19-20 haneli rakamlar)
Comp : 8 baytlık ondalık sayı tipidir.-2 +1 ile 2 ?1 arasında da değer alabilir. (19-20haneli rakamlar)
Comp tipi sadece 2?nin katları olan sayıları tutabilen bir tiptir.
Curreny : 8 baytlık ?922337203685477.5808 ile 922337203685477.5808 aralığında işaretli bir
sayı tipidir.
Bu tip para içeren değişkenler için düşünülmüştür. Çünkü parasal işlemlerin virgülden sonraki kısmı o kadar önemli değildir. Asıl önemli olan virgülden önceki bütün basamakların korunmasıdır. Bu tipte virgülden önceki basamak sayısı çok, virgülden sonraki basamak sayısı azdır.
Boollean Tipi :
True ve False değerlerinden birini içerir. Hafızada 1 byte yer kaplar. Bir ifadenin doğru-yanlış
veya evet-hayır değerlerinden birini aldığı durumlarda kullanılır. Örneğin Kredi Alıyor, Evli Eşi Çalışıyor gibi değişkenlere Evet(True) veya hayır(False) cevapları verilebilir. Böyle değişkenleri boolean olarak tanımlanır.
Karakter Tipleri :
Char : Bir karakter içerebilen 1 bytelık veri tipidir. Bu tip değişkenler sadece bir karakter
barındırabilirler. Örneğin ?A?,?2?,?-?vb.
Ansichar : Char tipiyle aynıdır.
WideChar : Bu tip 2 bytelık bir karakter tipdir ve uzak doğu dillerinde kullanılır.
String Tipleri :
ShotString : 255 karaktere kadar karakter ataması yapılabilen veri tipidir. Bellekte karakter sayısı
Byte yer kaplar. Çünkü bu tipteki değişkenlerin en yüksek seviyeli byte?ı değişkenin
uzunluğu için kullanılır. Bir byte içinde 0 ?255 arası sayı tutabileceği için bu tipteki
verilere 255 karakterden fazla atama yapılamaz. Yapılan atamanın 255 karakteri
geçmesi sondakilerin kesilmesine neden olur.
AnsiString : Bu tipe 2GB?a kadar string yapılabilir.
String : AnsiString tipi ile aynıdır.
String değişkenlere değer ataması yaparken metin tek tırnak işaretleri arasına yazılmalıdır:
|
Var ad: String; begin ad:=?turgay?; end; |
String değişkenler üzerinde + operatörü ile de birleştirme yapılabilir.
|
Var ad,soyad: String; begin soyad:=?yüce?; ad:=?turgay?+? ?+soyad; end; |
String ifadelere atama yaparken yazılamayacak karakterleri (örneğin enter tuşu ) ascii kodları ile belirtebilirsiniz. #karakterinden sonra ascii kodu yazılabilir. Örneğin Memo1 içine iki satır yazabilmek için:
|
Procedure TForm1.FormCreate(Sender: TObject); Var ad:String; ad:=?turgay?+#13#10+?yüce?; //#13#10 alt satıra geçiren karakterlerdir memo1.text:=ad://memo1 içinde iki satır olarak gözükecektir. End; |
String değişkenlerin içindeki karakter sayısını öğrenmek için Length fonksiyonundan faydalanabilirsiniz. Length(str1) gibi. Bu değişkenlerin boyutunu belirlemek içinde SetLength prosedüründen faydalanabilirisiniz. SetLength(str1,19) gibi.
String değişkenlerdeki bir harfe erişmek için [] işaretlerini kullanabilirsiniz. Örneğin stringdeki ilk harfi öğrenmek için str[1] şeklinde kullanabilirsiniz.
PChar :
Null terminated olarak adlandırılan bir string türüdür. Bu tür daha çok Windows Api?lerinde kullanılır. Bu türdeki stringlerin sonunda #0 karakteri bulunur. Bu karakter stringin bittiği noktayı belirler. Diğer string türleriyle Pchar arasında atamalar veya işlemler (birleştirme gibi) yapabilirsiniz.
|
Procedur Tform1.FormCreate(Sender: TObject); ad:String; soyad: Pchar; Begin ad:= ?Turgay?; soyad:= ?Yüce?; showmessage(ad+soyad); End; |
Eğer String veya AnsiSting olarak tanımlanmış bir değişkeni Pchar türünden bir değişkene atamanız gerekirse Pchar tip dönüşümünü yapabilirsiniz. Örneğin MessageBox Windows PI?sindeki parametreler Pchar türündendir. Bu parametrelere String olarak tanımlanmış değişkenlere aktarmak istediğinizde aşağıdaki gibi kullanabilirsiniz.
|
Var str1,str2:string; Begin MessageBox(0, Pchar(Str1),Pchar(Str2), MB_OK); End; |
Alıntıdır.
Benzer Yazılar:
- Sayı
- Ulusal Sağlık Veri Sözlüğü (USVS)
- Özürlüler Veri Bankası
- Diablo 3 Oyunu
- Sayılara Binde Ayracı Eklemek
- Metin İçerisinden Bir Karakter Silmek
- Yazılan Fiyatı Metine Çevirmek
- İnternet Adresi Aktifmi Kontrol Etmek
- Pilot
- 2009 sbs 3. yerleştirme sonuçları
Eğer yazıyı beğendiyseniz ya da ekleyecekleriniz varsa, lütfen yorumunuz yazın veya RSS aboneliği ile yeni yazılardan anında haberdar olun.
“Delphide Veri Tipleri (Sabitler ve değişkenler)”
Konusu için 1 Yorum
---------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------





















this is the way a blog should be! thanks!