1-) TAMSAYI TİPLER:
Tam sayı tipleri ismi üzerinde tamsayı olan değişken ve sabitleri tanımlamak için klullanılır.
Yani tamsayı olarak tanımlanan bir değişkene bir ondalıklı sayı aktarılamaz. Ve diyelimki biz bir işlemin sonucunu tamsayı tipinde tanımladığımız bir değişkene aktarmak istiyoruz. Eğer işlemimizde / işareti varsa ; 'Type mismatch' yani tip uyuşmazlığı hatası olur.
Hemen Canlı örneğini yapalım:

Bu örnekte , sayi diye bir değişkenimizi tamsayı tiplerinden olan "integer" tipi ile tanımladık. Ve program içerisinde 10/5 işleminin sonucunu aktardık. Ve programımızı çalşıtırmak için RUN dediğimizde ekranda gördüğümüz Type mismatch hatası oluştu.
Tamsayı Tipleri :
Tip Adı : Sınırları Kapladığı Alan Shortint -128..127 1 Byte Integer -32768..32767 2 Byte Longint -2147483648..2147483647 4 Byte Byte 0..255 1 Byte Word 0..65535 2 Byte
2-) Gerçek ( Reel) Sayı Tipler :
Ondalık değiken ve sabitleri tanımlamak için kullanılır.
Tamsayı Tipleri :
Tip Adı : Sınırları Kapladığı Alan Real 2.9e-39..1.7e38 6 Byte single 1.5e-45..3.4e38 4 Byte double 5.0e-324..1.7e308 8 Byte extended 3.4e-4932..1.1e4932 10 Byte comp -9.2e18..9.2e18 8 Byte NOT:Reel dışındaki diğer tiplerin çalışması için makinada matematik işlemcinin bulunması gerekir. Ayrıca Program başına {$N+} directive tanımı yapılmalıdır.
Ayrıca e işareti 10 u temsile eder. yani e-39 demek 10 üzeri -39 demektir.
3-)Srting Tip :
Program içerisinde sayısal anlamı olmayan ve isim, adres... gibi bilgiler için kullanılır.String tipteki bilgiler iki apastrof işareti ' ' arasında yazılır.
String 1..255 karekter alabilirve hafızada 256 byte'lık yer kaplar.
String[n] ise n karekterlik bilgi alır ve n+1 bytlık yer kaplar.
4-) Karekter( Char) Tip:
Sadece bir karekterlik bilgi için kullanılır. Hafızada 1 Byte yer kaplar. Char tipteki bilgiler'' işareti arasına yazılır.
Örnek:
'A' , '3' , veye '*'
5-)Boolean Tip:
Sadece TRUE (doğru) veya FALSE (yabnlış) değerini alan tiptir. Hafızada 1 Byte yer kaplar.
6-)Dizi (Array ) Tip :
Aynı tipteki birden fazla bilginin tutulduğu değişken ve sabit isimlere dizi denir.
Dizileri tanımlamak için ARRAY kelimesi kullanılır.
Örnek :
Array[1..100] of Real;
Array[1..10,1..5] of Byte;
Dizileri anlatırken ayrıntısıyla üzerinde duracağız.
7-)Kayıt (Record ) Tip:
Record ile farklı tipte birden fazla alan bir isim altında tanımlanabilir. Mesela bir öğrenciye ait ; isim, soyad,sınıf, no gibi verileri ogrenci diye bir record tipi tanımlayarak hepsini bir çatı altında toplayabiliriz.
Record Tipindeki veriler daha çok Rastgele Erişimli Dosyalar'da kullanlılır. Dosyalara bilgi girişi ve dosyadan bilgi okuma işlemlerinde kayıt yapısını oluşturan her alanın tek tek yazılması yerine, bütün alanları kapsayan bir değişken isminin yazılması yeterli olacak ve kullanımda büyük bir kolaylık sağlayacaktır.
Record Tipinde olan veriler TYPE bölümünde RECORD-END bloğu içerisinde tanımlanırlar.
Genel Yazılışı :
KayıtTipAdı= Record
AlanAdı1 : Tipi;
AlanAdı2 : tipi;
: :
END;
Gördüğünüz gibi Record tip tanımı END deyimi ile son bulur. Eğer Alan isimleri aynı tipte ise aralarına virgül (,) koyarak arka arkaya yazabiliriz.
Örnek :
Kod:
Ogrenci= Record ad, soyad : string[20]; numara : integer; pascal_notu: byte; END;
Örneğimizde de gördüğümüz gibi string, integer, byte.. gibi birden çok ve değişik veri tiplerini tek bir tip altında topladık.
Record tipimizin adı " Ogrenci".
Peki nasıl kullanacağız bunu?
diğer veri tiplerini nasıl kullanıyorsak bunu da aynı şekilde . "Ogrenci " tipinde bir değişken tanımlama için :
VAR
Ogr: Ogrenci;
Gelin bir örnek yapalım.
Kod:
program record_deneme; uses wincrt; Type Ogrenci= Record {burda ogrenci diye bir record tipi belirliyoruz} ad, soyad : string[20]; numara : longint; pascal_notu: byte; END; Var ogr
grenci; { ogr degiskenin tipini belirledigimiz ogrenci record tipi olrak belirliyoruz} Begin ogr.ad:='Mehmet' ; ogr.soyad:='ACA' ; ogr.numara:=01011028 ; ogr.pascal_notu:= 75; writeln('Ogrencinin Adi : ' , ogr.ad); writeln('Ogrencinin Soyadi : ' , ogr.soyad); writeln('Ogrencinin Numarasi : ' , ogr.numara); writeln('Ogrencinin Pascal Notu :', ogr.pascal_notu); End. With Deyimi
Yukarıdaki örneğimize baktığımızda ogr değişkenimiz ile, ogrenci olarak belirlediğimiz kayıt tipimizin alt bölümleri arasına . (nokta) koyduğumuz görüyoruz. Sürekli ogr.ad veya ogr.soyad yazmak hem programımızın uzamasına hem de bizim için bir zaman kaybına neden olur.
Bunu Engellemek için With deyimi kullacağız. Aşağıdaki örneği inceleyiniz.
Kod:
program record_deneme;uses wincrt;Type Ogrenci= Record ad, soyad : string[20]; numara : longint; pascal_notu: byte; END;Var ogr
grenci;Begin With ogr do Begin ad:='Mehmet' ; soyad:='ACA' ; numara:=01011028 ; pascal_notu:= 75; writeln('Ogrencinin Adi : ' , ad); writeln('Ogrencinin Soyadi : ' , soyad); writeln('Ogrencinin Numarasi : ' , numara); writeln('Ogrencinin Pascal Notu :',pascal_notu); End;End. 8-)Set ( Küme ) Tipleri :
Küme: Aynı tipte ve birbirleriyle ilgili bilgilerin oluşturduğu bütündür. Kümedeki elemanların arasına virgül(,) konur. Fakat eğer kümemizdeki elemanlar birbirlerini takip eden değerlerden oluşuyorsa bu değerler arasına iki nokta ( ..) konur.
Aşagıdaki küme örneklerini inceleyiniz.
Kod:
['X']['A'..'Z'][0..9]['E','H',#27][1,2,3,4] ve [1..4] eşittir.
Küme tipinde bir tip tanımlamak için TYPE blümünden yararlanılır. Özel bir tip olan küme tipi verileri için SET OF ifadesi kullanılır.
Genel şekil :
KümeAdı=Tip Adı
Örnek :
Kod:
type Gun= (Sun, Mon, Tue, Wed, Thu, Fri, Sat); CharSet = set of Char; Rakam = set of [0..9]; DAYS = set of Day; { DAYS kümesi, Gun kümesinin elemanlarından oluşur}
Küme ifadeleri daha çok belli bir değerin başka değerlere eşit olup olmadığını veya bir değerin verilen bir aralıkta olup olmadığını kontrol etmede yaygın olarak kullanılır.
Örnek 1:
Kod:
if (T='E') or (T='e') or (T='H') or (T='h') Then...
Komutu ile T değişkenin E,e,H,h harflerinden birine eşit olup olmadığı kontrol ediliyor.
Biz Küme kullarak daha kısa yapabiliriz:
Kod:
if T in ['E','e','H','h'] Then...
Örnek 2:
Kod:
if (sayi>=0) And (sayi<=5) Then ...
komutu ile Sayi değişkenin değeri 0' dan büyük eşit ve 5' ten küçük eşit olması durumu kontrol ediliyor.
Bu komut yerine aşağıdakini kullanabiliriz.
Kod:
if sayi in [0..5] Then ...