Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları İrfan MACİT
1
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.
Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları İrfan MACİT
2
Ş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}
Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları İrfan MACİT
3
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
Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları İrfan MACİT
4
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.
Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları İrfan MACİT
5
Ş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.
Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları İrfan MACİT
6
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.
Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları İrfan MACİT
7
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
Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları İrfan MACİT
8
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
Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları İrfan MACİT
9
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
Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları İrfan MACİT
10
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ış
Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları İrfan MACİT
11
Turbo Pascal’da mantıksal operatörlerin birden fazla karşılaştırma yapması
istendiğinde karşılaştırılacak olan değişkenlerin parantez içerisinde
alınarak kümelenmesi ve önceliklerinin belirlenmesi gereklidir.
Önceliklerinin belirlenmesi işlemlerin doğrulunu etkilemektedir. Yanlış
kullanılacak olan operatör parantez sıralaması işlem soncunda tablolardan
görüldüğü gibi sonucun değişmesine neden olacaktır.
BEGIN
IF ((D1> D2) AND (D3 < D1)) OR (D1=D4) THEN
END;
1.6 Turbo Pascal’da Matematiksel İfadeler
Turbo Pascal matematiksel ifadeleri normal yazı kurallarında yazıldığı gibi
işleyemez. Turbo pascal matematiksel işlemleri yerine getirebilmesi için
sytax denilen formül yazım kurallarına uyması gerekir. Normal yazı dilinde
ifade ettiğimiz cebirsel ifadeleri pascal bilgisayar programlama dilinde
işlemeye çalıştığımızda ifadeleri ve sembolleri değiştirmek zorunda
kalabilir. Kesikli rasgele değişkenin olasılığının formülü nxf i /1)( =
şeklindedir. Bu formül Turbo pascal da aşağıdaki gibi gösterilir.
f_xi := (1/n);
Başka bir örnek n
ne ⎟
⎠⎞
⎜⎝⎛=
1 formülü Turbo Pascal bilgisayar programlama
kodlarında aşağıdaki gibi yazılmalıdır.
e:= EXP(n*(1/n))
1.7 Akış Diyagramları
Genel olarak bilgisayar programlama dillerinde programlamaya başlarken
kodlar yazılmadan önce belirlenen algoritma akış diyagramları ile ifade
edilir. Akış diyagramları belirlenen bilgisayar programlarının kaynak
kodlaması yapılır. Bu işlem programın kaynak kodlarının geliştirilmesi için
gerekli olan öngörü ve işlem kolaylığını sağlar. Akış diyagramı oluşturulan
Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları İrfan MACİT
12
bilgisayar programında algoritmanın nasıl uygulanacağının bilinmesi veya
daha kısa bir yolu var ise bu şekilsel olarak görülmesi konusunda yardımcı
olmaktadır. Algoritmalar bir iş veya işlemin nasıl yapılacağını gösteren yazı
veya şekillerden oluşur.
Tablo 9 Akış Diyagramları
Sembol Açıklama
Program üzerinde işlem yapılacak
Program karar durumunda, program karar veriyor
Programa doküman giriş/çıkışı
Programa veri giriş/çıkışı yapılacak
Programdaki veriler kaydedilecek veya okunacak
Program bilgisayarın iç hafızasından bilgi alacak
veya okuyacak
Program işaret edilen cihaza çıktı / sonuç
gönderecek
Programa El ile veri girişi yapılacak
Program değişkeleri döngü işlemine tutacak
Programa bağlantı yapılacak veya diğer sayfaya
geçiş için bağlantı noktası
Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları İrfan MACİT
13
Bilgisayar ile problem çözmek için birden fazla yöntem olması algoritma
kullanılmasını zorunluluk haline getirmektedir.
Bazı durumlarda yazı ile algoritmanın geliştirilmesi olanaksız
olabilmektedir. Bu durumda şekiller ile anlatmak istediğimiz işlemleri
sembolize ederek işlevleri anlatırız. Bir bilgisayar programının en basit hali
ile akış diyagramlarında gösterimi Şekil 6‘daki gibidir.
Şekil 6. En Basit Algoritma Gösterimi
1.8 Turbo Pascal’da Hazır Matematik Kütüphaneler
Turbo Pascal ile programlama yaparken kullanabileceğimiz hazır
matematik fonksiyonlarının bulunduğu kütüphaneler mevcuttur. Bu
kütüphaneler verilecek parametreler ile sonuçları üreterek program
kaynak kodları içerisine veya değişkenlerine aktarabilirler. Tablo 10’da
bazı yararlı olan hazır fonksiyonlar ve yaptıkları işler verilmektedir.
Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları İrfan MACİT
14
Tablo 10. Turbo Pascal’da Hazır Matematik Kütüphanesine Örnekler
Fonksiyon İşlev Örnek
ABS(x) Verilen x değişken değerinin
mutlak değerini döndürür
ABS( -21 ) sonuç 21
ABS( -3.5) Sonuç 3.5000000000E+00
COS(x) X değerinin raydan
cinsinden değerini döndürür
COS( 0 ) sonuç 1.0
EXP(x) X değişkeninin 10 üssü
değerini gösterir
EXP(5)
sonuç 510
24 ifadesi 2*2*2*2=16
sonucunu vermez
an =EXP(n*LN(a)) şeklinde
hesaplanır
LN(x) X’in doğal logaritmasını
hesaplar, bu x>0 için
geçerlidir
LN(2) sonuç
0.69314….
ODD(x) X tek sayı ise Doğru (True)
döndürür
ROUND(x) X değerini kendine en yakın
tam sayıya tamamlar
ROUND(3.7) sonuç 4
ROUND(3.2) sonuç 3
SIN(X) X değerinin trigonometrik
değerini radyan cinsinden
hesaplar
SIN(PI/2) sonucu 1.0
SIN(PI) sonuç 0.0
SQR Verilen x değerinin karesini
alır
SQR(4) sonuç 16
SQRT(x) Verilen x değerinin
karekökünü alır
SQRT(4) sonuç 2
TRUNC Verilen gerçel sayıyı tam
sayı olarak döndürür
TRUNC(-2.4544) sonuç 2
TRUNC(3.3444) sonuç 3