11.07.2015 Views

Amiga Dunyasi - Sayi 23 (Nisan 1992).pdf - Retro Dergi

Amiga Dunyasi - Sayi 23 (Nisan 1992).pdf - Retro Dergi

Amiga Dunyasi - Sayi 23 (Nisan 1992).pdf - Retro Dergi

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

DİLLERAMIGA&PASCALha önce belirttiğim tüm matematiksel işlemleriyapabilirsiniz. Ancak ileride göreceğimiz,Sinüs, tanjant gibi bazı fonksiyonlarsadece reel sayılarla çalışırlar.BOOLEAN: Mantıksal işlemlerin babasıGeorge Boole'un adından ismini alanbu değişkenin iki değeri olabilir: True(Doğru) veya False (Yanlış). Bu değerlerarasında False < True ilişkisi geçerlidir.Bu değişken mantıksal işlemlerde kullanılır.Mantıksal işlemler olan AND, OR,NOT ve XOR ile işlemlere girer ve enönemlisi IF döngülerinde kullanılır.Saygılar, esenlikler...Merhabalar, Pascal konulu yazı dizimizinüçüncüsüne geldik. Artık bu dile yabancıolanlarımız bile, Pascal hakkında azçok şey biliyor sayılırlar. Bu ayki yazımızdaPascal'ın bazı özelliklerini,Pascal'da tanımlanabilen tipleri ve bunlarınuygulamalarını, son olarakta Unit kavramınıinceleyeceğiz.Geçen yazımızda değişkenlerin nasıl tanımlandığınıgörmüş ve:vara,b : Integer;şeklinde örnekler de vermiştik. Burada ave b değişkenleri, program içinde integerdiye adlandırılan tamsayı tipinde sayılarolacak şekilde tanımlanıyordu. Pascal'dabu tür standart bazı tanımlar var. Bu standartlarısırayla görelimINTEGER: -32768 ve 32767 arasındakalan tamsayı değerlerini alabilir. İyiprogramlamayla birçok işlem bu değişkenleryardımıyla yapılabilir. Ancak integerolarak tanımlanmış bir sayı, mesela100000 değerini alamaz. Aynı şekilde Integersadece tamsayı değerleri alır. 5.8735gibi bir sayı, Integer olarak sadece 5'tenibarettir.LONGINT veya LONG: Integer tipininbir numara büyüğü olan LONGINT2147483648 ila 2147483647 sayıları arasındakitamsayı değerlerini alabîlir. Nevar ki, Integer tipinin iki katı kadar yerkaplar.SHORTINT veya SHORT: hafızadasadece 1 byte yer kaplayan bu değişken128 ila 127 arasındaki değerleri alır. Ufakdöngüler, yazı koordinatları gibi ufak değerleriçin kullanılabilir.CARDINAL veya WORD: Integer'danfarkı, negatif değerler alamamasıdır. 0 ila65535 arasındaki tamsayı değerlerini alabilir.SHORTCARD veya BYTE: Negatifdeğerler alamayan, sadece 0 ila 255 arasındakitamsayı değerlerini alabilen ve azhafıza kaplayan bir değişken.REAL: Hafızada çok yer kaplayan, ancakondalık sayıları 7 haneye kadar içerebilendeğişken türü. Üst sının artı eksi8*10 A 18 kadardır. Hemen küçümsemeyinbu tür ile 2.876542 * 10^18 gibi sayılarkullanabiliyorsunuz.(2876542000000000000)LONGREAL veya DOUBLE: hafızada8 byte yer kaplar ancak Real ile yetinemeyeninsanları tatmin edebilecek bir aralığıvar. 15 haneli hesap doğruluğu ve10^308'e kadar da sının var.Yukarıda sıralanan tipler, sayılar ile ilgiliydi.Bu tiplerin temel olarak tamsayılarve ondalık sayılar olarak iki gruba ayrıldığınadikkat edin. Kick Pascal, bir alt grubasığamayan bir değişkeni kendiliğindenbir üst gruba atmaya çalışır. Sayılar ile da-varcevap : boolean;begincevap := true;IF cevap then writeln ('Cevapdoğru');end.Belki biraz komik gelecek ama,cevap := (5>2);gibi işlemler de mümkün. Tabii bu tür işlemlerinsabit sayılar ile pek bir kullanışlılığıyok. Ancak değişkenler kullanılarakçok işe yarayabiliyorlar. Örneğin bir sayının(x) a’dan küçük, b’den büyük olmasınıve c’ye eşit olmamasını istiyoruz.cevap := (x < a) AND (x > b) AND(x c);Örnekler çoğaltılabilir. Fazla alışık olmasanızbile, bu değişkenlerin size ne kadarkolaylıkla sağlayabileceğini fark ederekprogramlarınıza dahil etmenizi öneririm.CHAR: " veya " arasında bir adet yazıkarakteri temsil edebilen bir değişkendir.STRlNG [n]: n adet Char’dan oluşanbir dizi satır’a verilen isim. Bu tür birdeğişken ile isimleri tutabilirsiniz.Eğer n sayısını belirtmezseniz, 80 alınır nsayısını 255'in üzerine çıkaramıyoruz.POINTER'lar: Hatırlayın, dedik ki, birdeğişken hafızada belirli bir yer kaplar(Örneğin String [80] hafızada 80 byte yerkaplar). Çok kullanılan bir yöntem, eğerkullandığımız değişken 4 byte'tan fazlayer kaplıyorsa, değişkeni doğrudan kullanmakyerine, o değişkenin hafızada neredeolduğunu belirten bir Pointer kullanmaktır.Her değişkenin bir pointer türünütanımlayabiliriz. Bunun için tek yapacağımızdeğişken tipinin önüne A koymak. Budeğişkeni kullanabilmek için ise,pointer'ın sonuna ^ koymak. Anlaşıldı, eniyisi bir örnek üzerinde konuşmak.Vari: integer;p : ^integer;begini:= 21243;1.0 Pascal ve <strong>Amiga</strong> versiyonları,Pascal ile neler yapılabilir?2.0 Pascal'ın genel yapısı: Tanımlar,bloklar, Procedure ve fonksiyonlar3.0 Pascal dili özellikleri, tiptanımları, unitler.4.0 <strong>Amiga</strong> ile iletişim: Librarykullanımı, <strong>Amiga</strong>'ya has komutlar.5.0 Gelişmiş programcılık: teknikler,başka sistemlere veya sistemlerdenaktarmalar.p:= ^i;writeln (i);writeln (p^);end.İster inanın ister inanmayın, ekrana ikidefa 21243 yazılacaktır. Önce ne yaptığımızabir bakalım. İlk olarak i değişkeniniinteger olarak tanımladık. Daha sonra pdeğişkenini integer gösteren bir pointerolarak tanımladık. Programda ise, öncei'ye bir değer atadık. Daha sonra p değerinii'nin hafızadaki adresine eşitledik.Dikkat edin: p değişkeni i sayısını değil, isayısının değerinin hafızada* nerede olduğunututuyor. Son satırda rahatça görüyoruzki, sadece p'yi kullanarak i sayısınındeğerini bulabiliyoruz. Bunun için p^ kullanıyoruz.Bu ifade artık hafızada bir yergöstermiyor, daha çok o yerde bulunandeğeri veriyor. Bu genel pointer tipleri dışında,bir de ptr ile tanımlanan bir pointerBu pointer ile hafızada yer ayırmakve dinamik değişkenler yaratmak mümkünolacak (sabredin yahu).Kümeler: Hadi bakalım, şu ana dek BasicBasic diyenler tüm şanslarını kaybettiler.Zira Pascal'ın en eğlenceli yerine geldik.Bir değişkeni, değerlerinin sınırlarıile de belirleyebilirsiniz. Örneğin değişkensadece 1 ila 100 değerini mi alacak?Hemen yapalım:vara:1..100;Aradaki iki nokta, bir küme belirlemekiçin kullanılıyor. Çok dikkat edin, a'yı sadece1 ve 2 değerlerini alacak şekilde tanımlamakiçin bile,vara:1..2;demeniz gerekiyor. Kümeler, bu kadar basitdeğil. Kümeleri aralarında işlemler yaparakda tanımlayabiliriz. Herşeyden öncekümeleri parantezlere alıyoruz. Bir değişkeninverilen bir küme elemanlarını içerecekşekilde tanımlamak için ise, SET OFkullanıyoruz. Aşağıda bazı tanımlar var,yanlarında bu tanıma giren kümeyi yazdım:vara:setof[1..8]*[5..12]; {5,6,7,8}AMIGA DÜNYASI 34

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!