Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları İrfan MACİT 1. Giriş Turbo Pascal bilgisayar programlama dili DOS işletim sistemi altında çalışan bilgisayar programlama dili aracıdır. Genel amaçlı bir programlama dili ve aynı zamanda gerekli operatör komutları ile hassas hesaplamalar için kod yazılabilen bir programlama dilidir. Genellikle kullanılan bilgisayar programlarında programcının bir iki fare tıklaması ile program yapmasına izin veren programlar tercih edilmektedir. Pascal bu tür bilgisayar dillerinin temelinde duran aslında yapısal bir bilgisayar programlama dilidir. Yapısal bilgisayar programlama dilleri nesne yönelimli bilgisayar programlama dillerinin atası sayılabilir. Nesne yönelimli bilgisayar programlama dili oluşturulan bir nesnenin özellikleri değiştirilerek defalarca kullanılmasına olanak tanıyan bilgisayar programlama yaklaşımı olarak tanımlanabilir. Detaylı olarak bu konu haricinde incelenecektir. Turbo pascal bilgisayar programlama dilinde yazdığımız program kodlarını bilgisayarın anlayabileceği program kodlarına (hexadecimal code) çevirerek yazarız. Kısa bir örnek vermek gerekirse arkadaşımıza bir e- posta yazdığımızda arkadaşımız yazdığımız yazı dilini biliyor ise e-postayı açarak okuyacaktır. Biz kendi yazı veya anlatım dilimizde kullanıldığımızı ilmişimde kullanarak işlerimizi görüyoruz. Bilgisayarlara bir iş veya eylem yaptırmak istediğimizde bu bir hesaplama veya bir robot kolunun eylemi de olabilir, bilgisayarın anlayabileceği anlatım (kodlara) diline çevirmemiz gerekir. Bu işlemi ise derleyici (compiler) denen bilgisayar programlama araçları yapar. Derleyiciler üretilen firmaların adları veya bu firmaları kolay hatırlansın diye verdikleri adlar ile anılırlar. Turbo pascal Borland firmasının (şu anda Inprise) ürettiği bilgisayar programlama aracıdır. 1 Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları İrfan MACİT Şekil 1. Turbo Pascal Bilgisayar Programlama Dili Ekran Görüntüsü. Turbo pascal yapısal bilgisayar programlama dili olarak bahsetmiştik. Yapısal bilgisayar programlama dilinde program kodları fonksiyon ve alt programlar olarak yazılırlar. Daha sonra yazılan bu bilgisayar programlama kodları ana program bloğu içerisinden çalıştırılır. Yazılan bilgisayar program kodları çalıştırılabilmesi için mutlaka derlenmesi gerekir. Yapısal programlama dillerinde yazılan bilgisayar programlarında yazılacak olan kodlar belirli bir şekle göre yazılmaktadır. Programın başlangıcı, değişkenlerin tanıtılması (deklarasyonu), fonksiyonların ve alt programların tanıtılması ve yazılması ayrı bölümler halinde yazılmaktadır. Program Basla; {Burası programın başlangıcı ilk yazılan kod parçası} type {Programın içerisinde kullanılacak olan değişkenlerin yeniden tanımlanması veya kullanıcı tanımlı tiplerin tanımlandığı bölüm} var {Programın içerisinde kullanılacak olan değişkenlerin tanımlandığı bölüm} function us(x); {Fonksiyonların yazıldığı bölüm} 2 Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları İrfan MACİT procedure tekrar(x,t); { altprogramları yazıldığı bölüm} BEGIN {Bu bölümde programın çalışması sırasında işletilecek olan komut, fonksiyon veya alt programlar belirlenen bir algoritmaya göre yazılır} END. Program durum bildirgecinden (statement) sonra verilen isim pascal bilgisayar programının adıdır. Bu verilen ad yazılan başka bir pascal veya üçüncü kuşak dillerinin herhangi birinden yazılan pascal bilgisayar programının çağırmak için kullanılır. Örneğin bir pascal bilgisayar programı yazıyoruz daha sonra yazdığımız bu programa önceden yazmış olduğumuz ve dizin yerini bildiğimiz yerden çağırmamız gerektiği durumda yazarak çağırmak için kullanırız. Bu örneğe ek olarak önceden yazmış olduğumuz pascal programının içerisindeki herhangi bir fonksiyon veya alt programı da çağırmak için burada yazan program adına ihtiyacımız vardır. type ve var ile belirlenen bölümlerde program içerisinde kullanılacak olan değişkenlerin tanımlandığı veya kullanıcı tarafından tanımlanan değişkenlerin oluşturulduğu ve kullanıma hazır hale getirilen değişken tanımlama bölümüdür. Function ve procedure ile pascal bilgisayar programı içerisinde kullanacağımız fonksiyonlar ve alt programların yazıldığı ve kullanıma hazır duruma getirildiği bölümdür. Yapısal bilgisayar programlama dillerinde fonksiyon ve alt programları kullanmak için mutlaka programın ana bloğundan önce tanımlanması gerekir. Bir fonksiyon veya alt programı başka bir alt program veya fonksiyonda kullanmadan öncede mutlaka tanımlamalıyız. Aksi takdirde yazdığımız bilgisayar programı tanımlı olmayan fonksiyon ve alt program hatası verecek ve program derlenmeyecektir. BEGIN ve END blokları arasında pascal bilgisayar programlama dilinde ana program bloğu olarak adlandırdığımız yerdir. Ana program bloğu içerisine programın yapacağı işlevler ile birlikte program kodları ve 3 Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları İrfan MACİT fonksiyon veya alt programın çalışma sıraları yazılır. Bilgisayar programını yazarken ana blok içerisinde belirlediğimiz algoritmaya uygun olarak geliştirdiğimiz program kodlarını yazarız. Şekil 2. Pascal Bilgisayar Program Kodları. Şekil 2’de görüldüğü gibi Program ad verilmiştir. Daha sonra değişkenlerin tipleri tanımlanmıştır. Bir sonraki bölümde fonksiyon veya alt programlar olmalıdır. Burada gerek olmadığından yazılmamıştır. En son kısımda ise pascal bilgisayar programının belirlenen bir algoritmaya göre yazılması görülmektedir. 1.1 Program Kodlarının Derlenmesi Pascal bilgisayar program kodlarını geliştirdikten sonra artık sıra derlenmeye gelir. Bu derlenme aşamasında yazmış olduğumuz program kodlarını bilgisayarın anlayacağı kodlara çevrilecektir. Turbo Pascal 7.0 sürümünde bu işlemi yapmak için bilgisayarımızın ALT+C tuşlarına birlikte basarak yapabiliriz. Şekil 3’te tuşlara bastıktan sonraki ekran görüntüsü vardır. 4 Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları İrfan MACİT Şekil 3 Turbo Pascal’da Derleme İşlemi. Eğer menü açılmasını istemeden direk derleme işlemini yapmak istiyorsak ALT+F9 tuşlarına birlikte basarak direk derleme işlemini yapabilir. Bu menü açılmadan direk derleme işlemini yaparak bize Şekil 4’te görünen sonucu verecektir. Şekil 3 Turbo Pascal’da Derleme İşleminin Sonucu. 5 Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları İrfan MACİT 1.2 Program Kodlarının Çalıştırılması Yazdığımız kodları derledikten sonra kodlarımız artık bilgisayar tarafından anlaşılabilir duruma gelmiştir. Şimdi program kodlarımızı çalıştırmamız gerekmektedir. Bunun için ALT+R tuşlarına birlikte basarak çalıştırırız. Şekil 5’teki ekran görüntüsünden programımız çalıştırılmadan önceki görüntüsü gelmektedir. Şekil 5 Turbo Pascal’da Derlenen Programın Çalıştırılması. Program kodlarının buraya anlatılan kadar ile sadece yazılması ve çalıştırılması ile ilgili temel bilgileri verdik. Bundan sonraki bölümlerde daha çok program yazılırken kullanılan pascal komutlarını vereceğiz. Pascal bilgisayar programlama kodları Turbo Pascal 7.0 sürümüne göre anlatılacaktır. Bir çok dağıtılan derleyicide bu yazacağımız programlar çalışmaktadır. Bazı bilgisayarların donanımsal özelliklerinden dolayı çalışmayabilir. Bu durumlarda Turbo Pascal 7.0 Fix Tool yardımcı programı ile bilgisayarınızı yamalamanız önerilmektedir. Bu durum Pentium MMX tabanlı bilgisayarlardan sonra geliştirilen Pentium işlemcilerde gereklidir. Eğer Pentium III veya Pentium 4 işlemcili bilgisayarlarda derleme yapılacak ise “tp-patch” adlı klasörü “C:\TP7\BIN” klasörü altına kopyalayarak “TPFIX.EXE” programını “TURBO.EXE” den önce çalıştırmak gerekmektedir. 6 Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları İrfan MACİT 1.3 Kaynak Kodların .exe Uzantılı Duruma Getirilmesi Pascal bilgisayar programlamada yazdığımız kaynak kodlar derlendikten sonra disk alanında saklanmazlar. Derlediğimiz kodlar çalışması bittikten sonra geçici hafızadan (RAM) silinirler. Kalıcı olarak disk alanında kalmasını istediğimizde “Destination Memory” seçeneğini “Disk” olarak işaretlemek gereklidir. Bu bize derlediğimiz programları pascal programını derlediğimiz disk alanı üzerinde kaydetmemize yarayacaktır. Komut satırından pascal kaynak kodlarını derlemek istediğimizde aşağıdaki komut ve parametrelerini vererek derleme işlemini yapabiliriz. C:\tp7\bin\tpc.exe /l /m program.pas Kaynak kodlarımız “C:\tp7\bin\” klasöründe “program.exe” olarak kaydedilecek ve “program” diye yazdığımızda programımız çalışacaktır. 1.4 Turbo Pascal Programlamada Kullanılmayacak Kelimeler Turbo Pascal bilgisayar programlama dilinde bazı kelimeler derleyici tarafından kullanıldığından dolayı program yazarken kullanılmazlar. Bu kelimelere ayrılmış kelimeler (Reserved Words) denir. Aşağıda Tablo 1’de bahsedilen kelimelerin hangileri olduğu görülmektedir. Tablo 1. Ayrılmış Kelimeler absolute destructor if object self uses and div implementation of set var array do in on shl while asm downto inherited operator shr with begin else inline or string xor break end interface packed then case file label procedure to const for mod program type constructor function nil record unit continue goto not repeat until 7 Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları İrfan MACİT Tablo 2. Turbo Pascal Değiştiricileri absolute default forward override public saveregisters abstract export fpccall pascal published softfloat alias external index popstack read stdcall assembler far name private register virtual cdecl far16 near protected safecall write 1.5 Turbo Pascal’da Kullanılan Operatörler a) Aritmetik Operatörler: Turbo Pascal’da aritmetik operatörler altı adettir. Bunlar bilinen matematiksel işlemleri yapmak için kullanılan operatörlerin yanı sıra pascal’da kullanılan veri tiplerinin işlemlerinde kullanılan operatörlerdir. Tablo 3. Aritmetiksel Operatörler Operatör İşlem Operand Tipi Sonucun Tipi + Toplama real,integer real,integer - Çıkarma real,integer real,integer * Çarpma real,integer real,integer / Bölme Real,integer Real Div Tamsayı Bölme integer İnteger Mod Kalan Bulma integer İnteger Matematiksel operatörlerin bazı durumlarda bizlere kısa yoldan sonuç vermesini isteyebiliriz. Div operatörü buna örnek olarak verilebilir. Bu operatör iki tam sayının bölümünden kalan tam sayı kısmını verir. Örnek: 32 / 5 = 6.4 32 div 4 = 6 8 Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları İrfan MACİT Mod operatörü iki tam sayıdan kalanı bulmaya yarayan matematiksel operatördür. İki tamsayı bölümü yapıldıktan sonra sonuçtan kalan sayının tam sayı olanını verir. 32 / 5 = 6.4 32 mod 5 = 2 programlamada kaynak kod yazarken dikkat edeceğimiz önemli konulardan birisi olan operatörler elde ettiğimiz sonuçları direk etkilediğinden operatör kullanırken sonuçları göz önüne alarak kullanmak gereklidir. Normal bölüm işleminde işlemlerin sonucu real tipte olabileceğinden sonuç değişkeninin değeri real olabilir. b) İlişkisel Operatörler: Turbo Pascal bilgisayar programlama dilinde iki veya daha fazla değişken arasındaki ilişkilerin belirlenmesinde kullanılan operatörlerdir. İki değişken arasında küçüklük, eşitlik veya diğer karşılaştırma ilişkisi olması durumunda kullanılır. Karşılaştırılan işlemlerin sonucu Doğru (True) veya Yanlış (False) olarak verilir. Tablo 4. İlişkisel Operatörler Operatörler Anlamı = Eşit <> Eşit Değil >= Büyük Eşit < Küçük > Büyük <= Küçük Eşit 9 Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları İrfan MACİT c) Mantıksal Operatörler: Turbo Pascal değişkenlerin mantıksal olarak karşılaştırılmasına olanak vermektedir. Klasik Bool cebrindeki gibi bu operatör işlemleri aynı sonuçları vermektedir. Tablo 5. Mantıksal Operatörler Operatör Anlamı AND İki operatör doğru ise sonuç doğru, OR İki operatörden en az biri doğru ise sonuç doğru, XOR İki operatörün sadece birinin doğru olması hali için sonuç doğru, NOT Operatör yanlış ise sonuç doğru, operatörün veya sonucun değili alınır Mantıksal operatörlere Tablo 5’e göre iki değişken arasında işlem yaptırdığımızdaki sonuçları aşağıdaki şekilde olmaktadır. Tablo 6. AND Mantıksal Operatör İşlemleri D1 D2 Sonuç Yanlış Yanlış Yanlış Yanlış Doğru Yanlış Doğru Yanlış Yanlış Doğru Doğru Doğru Tablo 7. OR Mantıksal Operatör İşlemleri D1 D2 Sonuç Yanlış Yanlış Yanlış Yanlış Doğru Doğru Doğru Yanlış Doğru Doğru Doğru Doğru Tablo 8. XOR Mantıksal Operatör İşlemleri D1 D2 Sonuç Yanlış Yanlış Yanlış Yanlış Doğru Doğru Doğru Yanlış Doğru Doğru Doğru Yanlış 10
Description: