Web-Kaynak
Would you like to react to this message? Create an account in a few clicks or log in to continue.
Web-Kaynak

Web-Kaynak


Bağlı değilsiniz. Bağlanın ya da kayıt olun

Tamsayı Tipleri

Aşağa gitmek  Mesaj [1 sayfadaki 1 sayfası]

1Tamsayı Tipleri  Empty Tamsayı Tipleri Salı Tem. 06, 2010 2:35 pm



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 ogrgrenci; { 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 ogrgrenci;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 ...





PASCAL GİRİŞ / ÇIKIŞ KOMUTLARI

Konuya geçmeden önce kısaca birkaç şeyden bahsetmek istiyorum. Bundan önceki yazılarda anlatılanlar aşağı yukarı tüm programlama dillerinde aynı prensiplere dayanır. Bu yazıyla birlikte Pascal programlama diline özel komutları göreceğiz. Her ne kadar ben, Pascal ’a özel dediysem de elbette ki bu komutların bazılarının diğer dillerdeki komutlara benzediğini görebilirsiniz.

Bu komutlar anlatılırken, komutun procedure veya function mı olduğunu belirtilecek, ayrıca [ ] iki köşeli parantez içinde yazanlar bu bilginin kullanılmasının zorunlu olmadığı anlamına gelecektir. | işareti ise iki veya daha fazla seçenekten birinin seçileceğini belirtmek amacıyla kullanılacaktır. Eveeet, artık konumuza dönebiliriz.


Kullanıcının programa bilgi girmesini, dosyadan ve bellekten bilgilerin okunmasını ve program içindeki bilgilerin ekranda gösterilmesini, dosyaya, belleğe bilgi yazılmasını, yazıcıya bilgi gönderilmesini sağlayan komutlara giriş / çıkış komutları diyoruz. Şimdilik sadece ekrana bilgi yazdırmayı ve kullanıcının ekrana girdiği bilgiyi okumayı göreceğiz. Dosyadan, yazıcıdan vs. bilgi okunmasını ve yazılmasını ileriki konularda daha detaylı ele alacağız. Bu komutları kullanabilmek için programınızın başında bu komutlara ihtiyaç duyduğunuzu belirtmelisiniz. Bunu “uses crt;” (windows için wincrt kullanmalısınız) komutuyla hallettikten sonra geriye bir problem kalmıyor.


A)READ – READLN (Procedure):

Kod:
Read([dosya değişkeni],değişken1,değişken2,....,değişkenN) Readln([dosya değişkeni],değişken1,değişken2,....,değişkenN) dosya değişkeni: Bilgi okunacak dosyanın adını tutan değişken.

Her ne kadar bu iki procedure aynı işi yapıyor gibi görünse de aralarında fark var. Readln, bilgi girişi yapılması için programın akışını geçici olarak durdurur ve giriş yapıldıktan sonra programın kaldığı yerden devam etmesini sağlar.

Read komutuyla birden fazla değişken bilgisi almak problem oluşturabilir çünkü alfa sayısal değişkenlerin tanımlandıkları uzunlukta, sayısal değişkenlerin ise başlangıcında ve bitiminde birer boşluk bırakılması gerekmektedir. Bu yüzden biz, Read komutu yerine Readln komutunu kullanacağız. Birden fazla değişken bilgisi alırken değişkenler arasına virgül koymak yeterli olacaktır.

Ayrıca Readln komutunu tek başına kullanırsanız, programın akışı enter tuşuna basılıncaya kadar durdurulur. Enter tuşuna bastıktan sonra, program kaldığı yerden işlemlere devam edecektir. Bunu daha çok Turbo Pascal editöründe yazdığınız kodları derlerken kullanabilirsiniz. Böylece programınızın sonuçlarını ekrandan daha rahat takip edebilirsiniz. Aksi halde programın işlenmesi biter bitmez hemen editöre geri dönersiniz ve eğer programınız ekranda bir şeyler gösteriyorsa göremezsiniz. Yazdığınız programın en sonuna bu komutu eklemeniz yeterli olacaktır.

Konuyla ilgili birkaç örnek verelim;


Kod:
var a,b:integer; Begin Readln(a); Readln(b); ......... ......... Readln; End. { a ve b değişkenlerinin değerlerini kullanıcının } { klavyeden girmesini sağlıyoruz. Daha sonra bu } { değişkenlerle ne istersek yapabiliriz. End. den } { önceki readln komutuyla da programın tüm işlemleri } { bitirdikten sonra beklemesini sağlıyoruz ki ne olmuş } { ne bitmiş görelim. }


B) WRITE – WRITELN (Procedure):

Kod:
Write([dosya değişkeni],değişken1,değişken2,değişkenN [:alan uzunluğundalık uzunluğu]); Writeln([dosya değişkeni],değişken1,değişken2,değişkenN [:alan uzunluğundalık uzunluğu]); dosya değişkeni: Bilgi yazılacak dosyanın adını tutan değişken. Alan uzunluğu: Sayısal ifadelerin toplam hane sayısı. Ondalık uzunluğu: Sayısal ifadelerin ondalıklı kısmının uzunluğunu belirten ifade.

Bu iki komut da aynı gibi görünüyor fakat farklılıkları olan komutlar. Write komutu işlemini bitirdikten sonra bir alt satıra geçmez. Kursör yazılan bilginin sonuna konumlanır. Writeln komutuyla bilgi yazdırıldıktan sonra kursör bir alt satıra geçer.

Yazılmak istenen mesajlar ‘’ apostrof (shift + 2 tuş kombinasyonu) işaretleri arasına yazılır. Bu işaretin içine yazılan bilgiler olduğu gibi ekranda gözükür. Birden fazla bilgi yazdırmak istersek mesajların yada değişkenlerin arasına virgül koymak yeterli olacaktır.

Sayfa başına dön  Mesaj [1 sayfadaki 1 sayfası]

Similar topics

-

» Pascalda Veri Tipleri

Bu forumun müsaadesi var:
Bu forumdaki mesajlara cevap veremezsiniz