Mega Code Archive

 
Categories / Delphi / Strings
 

Veri tipleri

ShortInt 1 Byte uzunluğunda işaretli tamsayı (-128 ile +127 arasında) SmallInt 2 Byte uzunluğunda işaretli tamsayı (-32768 ile +32767 arasında) Integer 4 Byte uzunluğunda işaretli tamsayı (-2147483647 ile +2147483645 arasında) Byte 1 Byte uzunluğunda işaretsiz tamsayı (0 ile 255 arasında) Word 2 Byte uzunluğunda işaretsiz tamsayı (0 ile 65535 arasında) DWord 4 Byte uzunluğunda işaretsiz tamsayı (0 ile 255 arasında) Single 4 Byte uzunluğunda ondalıklı sayı (7-8 haneli) Real 6 Byte uzunluğunda ondalıklı sayı (11-12 haneli) Double 8 Byte uzunluğunda ondalıklı sayı (15-16 haneli) Extended 10 Byte uzunluğunda ondalıklı sayı (19-20 haneli) Currency 8 Byte uzunluğunda işaretli ondalıklı sayı (Para hesaplarında kullanılır, virgülden sonraki basamak sayısı azdır) Boolean 1 Byte (True veya False değerlerini alır) Char 1 Byte uzunluğunda karekter (Tek bir karekter A, B gibi) ShortString En fazla 255 karekter dizisi alabilir String İstenilen kadar karekter içerebilir Değişkenler Delphi'de kullanılacak değişkenleri önceden tanımlamak gerekmektedir. Değişken isimleri bir karekterle başlamalı ve en fazla 63 karekter uzunluğunda olmalı, Türkçe karekterler içermemelidir. Değişkenler Var bloğunda aşağıdaki gibi tanımlanır: Var Adsoyad:string; OkulNo:Integer; Diziler 50 kişilik bir sınıfın adlarını birer değişkene aktarmak isteyelim. Her birisi için tek tek birer değişken tanımlamak çok zahmetli ve kullanışsız olacaktır. Bunun yerine diziler kullanılabilir. Diziler bir boyutlu, 2 boyutlu veya daha çok boyutlu olabilir. Dizi atamaları Var bloğunda aşagıdaki gibi tanımlanır: Var Adsoyad:Array[1..20] of string; OkulNo:Array[1..20] of Integer; Burada Adsoyad ve OkulNo değişkeninden 20 şer tane yaratılmaktadır. Bu değişkenlere indisleri aracılığıyla ulaşılabilir. Adsoyad[1]:='Ertuğrul us' OkulNo[7]:=2459 gibi. Sınırların dışında indis verilirse ( Adsoyad[21] gibi ) Delphi hata mesajı verecektir. Var Adsoyad:Array[1..20, 1..30] of string; OkulNo:Array[1..20, 1..30] of Integer; ifadesind iki boyutlu diziler tanımlanmaktadır. Bunun anlamı Adsoyad değişkeninden 20x30=600 tane değişkenin yaratıldığıdır. Bu değişkenlere yine indisler aracılığıyla ulaşılır. Adsoyad[12,18]:='Delphi'yi seviyorum'; gibi. Sabit Tanımlar Programın ilk açılışından programın kapanışına kadar değişmeyecek tipteki verilerin tutulduğu değişkenlerdir. Deklerasyonu Const Okuladi='Okulus'; SiteNo:Integer=7; Merhaba:String='Merhaba millet'; Cinsiyet:Array[1..3] of string=('Erkek', 'Kadın', 'Homo'); gibi. Burada Cinsiyet[1]'in değeri 'Ekek', Cinsiyet[2]'nin değeri 'Kadın', Cinsiyet[3]'ün değeri 'Homo' dur. Aritmetik Operatörler + Sayılarda toplama işlemi, stringlerde birbirine ekleme, kümelerde birleşim alma - Sayılarda fark işlemi, kümelerde simetrik fark alma * Sayılarda çarpma işlemi, kümelerde kesişim alma / Bölme işlemi = Eşitlik durumu := Bir değişkene veya özelliğe değer atama <> Eşit değil (a<>b : a eşit değil b ise) <= Küçük-eşit >= Büyük-eşit in Mevcutsa (125 in Okulno : Okulno içinde 125 mevcutsa sonuç true, yoksa false değerini verir) And Ve bağlacına karşılık gelir (a>10) AND (a<50) Or Veya bağlacına karşılık gelir Type Blokları: Özel veri tipleri, nesneler, kayıt tipleri bu bölümde tanımlanır. Type Cevaplar=(A, B, C, D, E); Sorular=1..100; Harfler=Set of 'A'..'Z'; gibi. Burada Cevaplar değişkeni A, B, C, D, E değerlerinden birini alabilir. Sorular değişkeni 1'den 100'e kadar herhangi bir değer alabilir. Harfler değişkeni ise küme tipindedir. Yani A ile Z arasında bir grup değeri alabilir. Örneğin Harfler:=['A', 'E'] gibi. Type bloğunda tanımlanan tipler, Var bloğunda başka değişkenlere de aktarılabilirler: Var Yanitlar:Cavaplar; gibi. Yanitlar değişkeni de tıpkı Cevaplar gibi olacaktır. Procedurler ve Fonksiyonlar: Bunlar iş yapan kod parçacıklarıdır yada modüllerdir. Yapıları Procedure Toplamayap(Başlangıç değişkenleri); Begin ........ End; Function Carpmayap(Başlangıç değişkenleri):Fonksiyonun döndereceği tip; Begin ........ End; şeklindedir. Procedure ve Function ifadelerinde kullanılacak değişken ve veri tipleri begin ifadesinden önce tanımlanmalıdır. Procedure Toplamayap(x, y:Integer); Var sayi1, sayi2: Real; Ad:String; Begin sayi1:=x+y; .......... End; gibi. Burada x ve y değişkenlerinin değerleri procedur çağrılırken atanır. Sayi1, Sayi2 ve Ad değişkenleri sadece bu procedure içinde kullanılabilirler. Bu procedur içinde bulunulan Unit içerisinde herhengi bir anda çalıştırılabilir. Toplamayap(456, 678); gibi. x, 456 ve y, 678 değerini alır. If Then Else Blokları: Bazen belirli şartların yerine gelmesi durumlarında belirli komutların çalışması istenebilir. 1) If a=0 then b:=10; 'Eğer a'nın değeri 0 ise b'ye 10 değerini ver' 2) If a=0 then Begin b:=10; c:='H2O'; End; 3) If a=0 then b:=10 else b:=20; 'Eğer a'nın değeri 0 ise b'nin değerini 10 yap değilse b'nin değerini 20 yap' 4) If a=0 then Begin b:=10; c:='H2O'; End Else If a=1 then Begin b:=20; c:='CO2'; End Else Begin b:=30; c:='SO2'; End; Case Blokları: Çok şart varsa case blokları kullanılabilir. Case OkulNo of 1: Tanim:='İlk öğrenci'; 2..100: Tanim:='Birinci sınıf öğrencisi'; 101..200: Begin Tanim:='İkinci sınıf öğrencisi'; Cinsiyet:='Kız'; End; 201..301: Tanim:='3. sınıf öğrencisi'; Else: Tanim:='Mezun'; End; Burada OkulNo değeri 1 ise Tanim, 'İlk öğrenci', OkulNo değeri 2 ile 100 arasında ise Tanim, 'İkinci sııf öğencisi' değerini almaktdır. Döngü Blokları Bazen benzer komutları birçok kez çalıştırmak gerekebilir. Bu durumlar için kullanabileceğimiz üç komut tipi vardır. 1) For döngüsü: Bu döngüde bir sayaç vardır ve belli komutlar sayacın alacağı sınır değerleri kadar çalıştırılır. For a:=1 to 100 do Begin ...... End; ifadesi a değerini 1 den başlatarak 100 kadar arttırır ve Begin...End bloğunu 100 defa çalıştırır. For a:=100 downto 50 do Begin ...... End; ifadesi a değerini 100 den başlatarak 50 ye kadar düşürür ve Begin...End bloğunu 51 defa çalıştırır. 2) While Döngüsü: Belli bir şartın geçerliliği devam ettiği sürece belli kodların çalıştırılması için kullanılır. Bu döngüde şart sağlanıyorsa komutlar çalıştırılır. While a<100 do Begin ..... End; 3) Repeat Döngüsü: Belli bir kod bloğundan sonra istenen şartın oluşup oluşmadığına göre kodların tekrar çalıştırılması için kullanılır. Repeat a=b*c; b:=b+1; Until a<500; Döngüleri bazen sona erdirmek gerkebilir. Berak: İçinde bulunulan döngüyü keser. Continue: Döngünün tekrar baştan başlamasını sağlar. Exit: Procedurden veya döngüden çıkmayı sağlar. Halt: Programı tamamen sona erdirir. Mesaj Pencereleri: 1) Basit Mesajlar: Bilgi veren pencerelerdir. Ekranın ortasına açılırlar. Üzerinde OK düğmesi vardır. ShowMessage('Yanlış tuşa bastınız'); 2) Dialog Mesajları: Kullanıcının bir seçim yapması gerektiği durumlarda kullanılır. Seçilen düğmelere göre bir sonuç dönderir. If MessageDlg('Silmek istediğinizden emin misiniz?', MtWarning, [MbYes, MbNo], 0)=MbYes then Begin ...... End; Dialog penceresinde belli iconlar bulunabilir. Bunlar MtWarning : Ünlem işareti MtError : X işareti MtInformation : i işareti MtConfirmation : ? işareti Seçilebilecek düğmeler ise MbYes : Yes MbNo : No MbOK : OK MbCancel : Cancel MbRetry : Retry MbIgnore : Ignore MbAll : All MbHelp : Help Bu düğmelerin dönderdiği değerler ise MrYes, MrNo, MrOK, MrCancel, MrRetry, MrIgnore, MrAll şeklindedir. 3) Veri giriş pencereleri Bazen kullanıcıdan veri almak gerekebilir. Bu durumda InputBox kullanılabilir. Var Ad:String; Begin Ad:=InputBox('Ad girme kutusu', 'Lütfen adınızı giriniz', 'Adsız'); Burada 'Ad girme kutusu' pencerenin başlığı, 'Adsız' ise default değerdir.