14
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 ...hpss.endustri.cu.edu.tr/ders/ENF101/1-Giris.pdf · Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders

  • Upload
    others

  • View
    18

  • Download
    0

Embed Size (px)

Citation preview

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