15 2. Veri Tipleri Turbo Pascal bilgisayar programlama dili ile

advertisement
Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları
İrfan MACİT
2. Veri Tipleri
Turbo Pascal bilgisayar programlama dili ile programlama yapabilmek için
bilgisayara işlem yapacağımız verilerin tiplerini bildirmemiz gereklidir. Veri
tipleri değişken olabileceği gibi sabit de olabilir. Yazdığımız bilgisayar
programı çalışma esnasında içerisinde kullandığımız değer atadığımız
değişkenler bazı durumlarda programın çalışması boyunca aynı değeri
alması da beklenebilir. Turbo pascal da temel olarak dört veri tipi vardır.
bu veri tiplerinin haricinde kullanıcı tanımlı olan kayıt tipinde de veriler
vardır. bu tipte olan veriler kullanıcılara Turbo
pascal içerisinde
sunulandan hariç bir veri tipi oluşturulması gerektiği durumlarda çözüm
sunmaktadır. Belirleyeceğimiz kendimize ait bir kayıt tipi ile pascal
programlamada kullanacağımız kendimize ait veri tipi oluşur.
Veri tipleri VAR kısmında programa başlarken bildireceğimiz yerde
tanımlanırlar. Kayıt tipi olarak yeni tanımlanacak olan veri tipleri ise var
kısmından önce olmak zorundadır. Veri tiplerinin bildirimi kısmında TYPE
bildirimi VAR bildiriminden önce olmalıdır.
Program degisken;
var name : veri_tipi;
TYPE Başka için örnek;
Program degisken;
Type
Gunler=(Pazartesi, Salı, Carsamba, Persembe, Cuma, Cumartesi,
Pazar);
Hafta=(1_hafta, 2_hafta, 3_hafta, 4_hafta)
Var
Hafta_gunu:Gunler;
AY:Hafta;
15
Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları
İrfan MACİT
TYPE tanımlamasında Gunler adlı dizinin elemanlarından oluşan yeni bir
veri tipi tanımlanmıştır. Bu elemanlar haftaya ait günleri göstermektedir.
VAR kısmında ise Hafta_gunu ile tanımladığımız veri tipine ait değişken
tanımlıyoruz. Önemli olan konu veril tipi ile değişkenin tanımlandığı veri
tipinin birbirinden ayrı olduğudur. Veri tipi Integer gibi veya Real gibi bir
veri tipinden bahsetmektedir. Değişkenin veri tipi ise işlem yapacak olan
değişkenin alabileceği değerlerin tipidir.
var
sayı1,sayı2, sayı3: integer;
begin
sayı1 := 24;
{ bu işlem sayı1 değerini 24 yapar}
sayı2 := 20;
{ bu işlem sayı1 değerini 20 yapar }
sayı3 := sayı1 + sayı2;
writeln(sayı1, ' + ', sayı2, ' =
', sayı3 , ‘olur’)
end.
Programın ekran çıktısı
24 + 20 = 44 olur
Aynı tipten verilerin arasıdan virgül ile ayırarak tanımlayabiliriz.
sayı1: integer;
sayı2: integer;
sayı3: integer;
gösterimi ile
sayı1,sayı2, sayı3: integer;
gösterimi aynıdır.
Turbo pascal da değişkenlere değer atama işlemi sol tarafta bulunan
değerin sağ taraftakine eşitlenmesi ile yapılmaktadır. Elimizdeki bir değeri
bir değişkene aktarmak istiyor isek sol tarafa değişken sağ tarafa ise
değişkene aktaracağımız değer yazılarak yapılır.
degisken:=deger;
16
Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları
İrfan MACİT
Burada degisken program içerisinde kullanacağımız değişken listesinden
herhangi birisi deger ise değişkenin almasını istediğimiz değeridir.
Değişkenleri
belirlerken
Turbo
Pascal
tarafından
kullanılan
kayıtlı
kelimelerden olmamasına dikkat etmemiz gerekir. Ayrıca değişkeleri
isimlendirirken nokta, virgül, ünlem, yıldız, soru işareti gibi karakterler ile
başlamamasına ayrıca Türkçe karakterler kullanmamaya dikkat edilmesi
gerekmektedir. İngilizce’de küçük ı büyük İ gibi karakterlerin olmayışından
dolayı dikkatten kaçak bu küçük ayrıntılardan dolayı yazdığımız kaynak
kodlar derlenemeyebilir.
CONST TYPE gibi var kısmından önce tanımlanması gereken diğer önemli
bildirimdir. Bu bildirimde program içerisinde kullanacağımız sabitler vardır.
CONS tanımlamasının en büyük yararı bir program kaynak kodu içerisinde
birden fazla kullanılan sabit tipte bulunan değerlerin kullanılmasında
sağladığı kolaylıktır. Program içerisinde birden fazla fonksiyon veya alt
program (procedure) içerisinde 20 kez kullandığımız sabit değerler
olduğunu düşünelim. Bu sabitin aldığı değerin değiştirmek istediğimizde
20 ayrı yere gidip bu düzeltmeyi yapmamız gerekir. Bu işlem gereğinden
fazla uzun ve güvenilir olmayan bir yöntemdir. Bu değişikliklerden birisini
unutsanız programınız doğru çalışmayacaktır. CONST ile yaptığımız tek bir
değişikliğin bütün programa anında uygulanmasını sağlayabiliriz.
program Metrik;
const
MTY = 1.196;
{degisim sabiti}
var
SMetre, SYard: Real;
begin
ReadLn (SMetre);
WriteLn ('Metre cinsinden ölçü ', SMetre:3:1);
SYard := MTY * SMetre;
WriteLn ('Yard cinsinden ölçü ', SYard :4:2)
end.
17
Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları
İrfan MACİT
2.1 Integer (Tamsayı ) Veri Tipi :
bu tipte olan verilen matematikten bildiğimiz -/+ aralığındaki tam
sayılardan oluşur. Z- ve Z+ negatif işaretli ve pozitif işaretli tamsayıları
ifade etmektedir. Integer veri tipinin aralığı eksi sonsuz ve artı sonsuz
aralığında bildirdiğimiz veri tipinin hafızada tuttuğu alan ile sınırlıdır. Bir
değişkene değer ataması yaparken veri tipini yanı sıra veri için hafızada
ayrılan yeri göz önüne almamız gerekir.
degisken : Integer; şeklinde genel gösterimi vardır. Ayrıca
degisken1 : Integer;
degisken2 : Integer;
degisken3 : Integer; şeklinde de gösterilebilir.
degisken1,degisken2,degisken3
:
Integer;
gösterimleri aynı
gösterimdir.
Integer tipinde veriler için hafızada 2 byte (8 bit) yer ayrılır. Hafızada
ayrılan yerler içerisine atanacak olan değerler -32768’den 32767’e
kadardır. Eğer bir değişkenin örneğin x gibi bir değişkenin değerinin
program çalıştığı sırada alabileceği değer -32768 ile 32767 aralığındadır.
Bu değer aşılır ise program hafıza taşma hatası verecektir. Bu durumu
aşabilmek için değişkenin tipini tam sayı değerini uzun tamsayı (longint)
değeri ile değiştirmemiz gerekir. Uzun tam sayı tipinin alabileceği değişken
değeri -2147483648 ile 2147483647 aralığındadır.
Program BUYUK;
USES CRT;
const
MinDeg = -MaxInt;
var
sayi, CokBuyuk
: Integer;
begin
18
Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları
İrfan MACİT
CokBuyuk := MinDeg;
WriteLn ('Sıradaki en büyük Değeri Bulundu:');
repeat
Write ('Bir tam sayı girin', MinDeg :1, ' durmak için
1 girin Æ ');
ReadLn (sayi);
if sayi > CokBuyuk then
CokBuyuk := sayi
until sayi = MinDeg;
WriteLn ('En Büyük Değer ', CokBuyuk :1,’ dir’)
end.
Yukarıdaki programda bir sıra halinde girilen sayıların içerisindeki en
büyük tam sayıyı bulur. Klavyeden girilen sayılar eğer tamsayı değil ise
programın çalışması duracaktır.
ShortInt veri tipi -128 ile 127 aralığındaki tamsayıları değişkenlere
aktarmak için kullanılan veri tipidir. Küçük sayılar ve hafızayı çok meşgul
etmeyecek şekilde kullanımlar için uygundur.
2.2 Byte (Byte ) Veri Tipi ;
Byte türünden olan veri tiplerinin alabileceği değer aralığı 0 ile 255 sayıları
arasındadır. Değişkenler bu değerin daha üstünde veri depolayamazlar.
Genellikle küçük sıra numaraları, daire numarası veya buna benzer küçük
numaralar ile işlem yapmak için kullanılırlar. 8 bit olduğundan işaret bitleri
kullanılmaz.
2.3 Real (Gerçel) Veri Tipi ;
Gerçel tipte veriler rasyonel sayılardan oluşan sayılardır. Sayıların ondalıklı
olması dolayısı ile farklı şekilde gösterilmesini zorunlu kılmaktadır.
Donanımsal özelliklerin yanı sıra sayıların gösteriminde ondalık ve işaret
bu
tipte
değişkenlere
atanacak
değerlerinde
ayrı
gösterilmesini
gerektirmektedir. Tam sayı değişkenlerde değişkenin alabileceği değerin
yaklaşık
olarak
belirli
olması
veri
19
tipinin
belirlenmesinde
kolaylık
Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları
İrfan MACİT
sağlamaktadır. Değişkenin alacağı değerin kaç bayt alana sığacağı veya
kaç baytlık alan işgal edeceği yaklaşık olarak belirlenebilir. Ancak ondalıklı
sayılarda bu işlem kolay değildir. Ondalıklı sayılarda işlemler yapılırken bir
sayı başka bir sayıya bölündüğünde bazı sayının mantis (ondalık)
değerlerin çok fazla uzun olmadığı görülmektedir. Diğer bir durum bir sayı
başka bir sayıya bölündüğünde sayının mantis kısmı gereğinden fazla
büyük olabilir. Mantis kısmı burada belirleyici faktördür. Hassas bir
hesaplama işleminde mantisin yuvarlama veya hassasiyet oranı çıkacak
olan sonucu direk etkilemektedir.
Örnek :
3/2 = 1.5
7/3 = 2.3333..
Programlamada yapılacak olan yuvarlama hatası değişkenin alabileceği
değer ve sonuç ilişkisini belirlemektedir. Bir vidanın üzerine uygulanacak
momenti,
bir
plak
burkulması,
elastisite
veya
istatistiksel
analizde
kullanılan standart sapma yuvarlama problemin yanlış çözümüne sebep
olacaktır.
degisken : Real ; şeklinde genel gösterimi vardır. Ayrıca
degisken1 : Real;
degisken2 : Real;
degisken3 : Real ; şeklinde de gösterilebilir.
degisken1,degisken2,degisken3
:
Real;
gösterimleri
aynı
gösterimdir.
Real (gerçel) tipte veri tipinin gösterilmesi tamsayı tipindeki ile aynıdır.
Tamsayı tipi ile gerçel tipteki verilerin arasındaki farkların en önemlisi tam
sayı veri tipinin hafızada gerçel tipteki verilerden daha az yer tutmasıdır.
Gerçel veri tipinde ondalık belirteci (mantisin ayracı) alan hesabı yapılırken
veri tipinin kullandığı alan üzerine dahil edilir. Gerçel tipteki verinin
alabileceği değerler derleyicilerin özellikleri ve bilgisayarın donanımı ile
ilişkilidir. Genellikle gerçel tipte verinin alabileceği değer -2.9*1039 ile
1.7*1038 arasındadır.
20
Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları
İrfan MACİT
Program EGIM_Fonk ;
const
bg = 0.0;
var
egim, Y2, Y1, X2, X1 : Real;
begin
WriteLn ('Aralıklı dört sayı girin');
WriteLn ('Aynı iki sayı girildiginde program durur');
WriteLn ('Dört Sayi Girin --> ');
ReadLn (Y2, Y1, X2, X1);
egim := (Y2 - Y1) / (X2 - X1);
while egim <> bg do
begin
WriteLn ('Eğim ', egim :5:2);
WriteLn ('Dört sayı daha girin --> ');
ReadLn (Y2, Y1, X2, X1);
egim := (Y2 - Y1) / (X2 - X1);
end
end.
2.4. Bool ( Mantıksal ) Veri Tipi;
Mantıksal veri tipi iki değişkenin bir operatör yardımı ile karşılaştırılması
sırasında değişkenin alabileceği değerlerin mantıksal olmasını sağlayan ver
tipidir. Değişkenlerin alabileceği değer TRUE (DOĞRU) veya FALSE
(YANLIŞ) olarak değerlendirilir. Değişkenin yorumlanacak değerleri sonuç
olarak mantıksal olmak zorundadır.
2.5 Char ( Karakter) Veri Tipi;
Karakter veri tipinde belirlenen değişkenlerin alacağı değer sadece bir
karakteri
içerebilir.
değerlerden
birisi
Bu
karakterler
olabilir.
Bu
veri
21
ASCII
tipinin
karakter
kullanım
setinde bulunan
amacı
genelde
Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları
İrfan MACİT
klavyeden girilecek olan sadece bir karakterlik Evet veya Hayır gibi sonuç
oluşturan değerleri belirlemektir.
E,H: char;
Hafıza alanında çok fazla yer işgal etmezler. Genelde kontrol amaçlı
olduğundan her zaman kullanılması bir zorunluluk değildir. Ancak gerekli
olduğunda kullanılmalıdır.
2.6 Word (Kelime) Veri Tipi ;
Kelime veri tipinde 0 ile 65535 sayıları arasındaki değerler değişkelere
atanmaktadır. Bazı özel durumların gerektirdiği değer atamaları sayı
aralığının kesin belli olduğu durumlarda bu veri tipinin kullanılması oldukça
güvenilirdir.
degisken: word;
22
Download