• Tidak ada hasil yang ditemukan

pascal

N/A
N/A
Protected

Academic year: 2021

Membagikan "pascal"

Copied!
357
0
0

Teks penuh

(1)

PPAASSCCAALL

ve

Program Geliþtirme

Zülkif GÜVEN

Asým Taylan ERVERDÝ

Sürat Yayýnlarý

(2)

Yazarlar : Zülkif GÜVEN

Hacettepe Üniversitesi Bilgisayar Bilimleri Mühendisliði, Asým Taylan ERVERDÝ

Yýldýz Teknik Üniversitesi Bilgisayar Bilimleri Mühendisliði

Sayfa Düzen ve Grafik : Zülkif GÜVEN, Asým Taylan ERVERDÝ

Kapak Tasarým : Sürat Görsel Sanatlar Merkezi

Renk Ayrým ve Film :Sürat Görsel Sanatlar Merkezi

Yayým :Sürat A. Þ.

Basým Yeri ve Tarihi :Ýstanbul / Türkiye, Aðustos-1997

Logo SÜRAT A.Þ.’nin Tescilli Markasýdýr. ISBN :975-577-072-0

Copyright ©1997 Sürat Basým Yayýn ve Daðýtým Anonim Þirketi.

Tüm haklarý saklýdýr. Bu kitapta bulunan metin ve grafiklerin tamamýnýn kullaným hakký,

Fikir ve Sanat Eserleri Kanunu’na göre SÜRAT YAYINLARI’na aittir. Sürat A.Þ. ve yazarlarýn önceden yazýlý izinleri olmaksýzýn elektronik, mekanik, fotokopi ya da her-hangi bir

kayýt sistemiyle çoðaltýlamaz, yayýnlanamaz veya depolanamaz.

DAÐITIM

(3)

ÖN SÖZ

Özellikle son 50 yýllýk süre zarfýnda, bilgisayar her alan-da kullanýlmaya baþlamýþ ve tüm ilimlerin hýzla geliþmesinde ana yardýmcý konumuna gelmiþtir. Astronomiden uzay bilim-lerine, eðitimden týbba, maliyeden bankacýlýða kadar pek çok alanda yaygýnlaþarak vazgeçilmez olmuþtur. Ýþte böyle büyü-leyici olarak görülen bilgisayarýn, hizmet üretebilmesi için, biz-zat kendisine problemleri çözme yeteneði kazandýrýlmasý gerekir ki, bu da prog-ramlama ile mümkündür.

Program geliþtirmek, günlük hayatta karþýlaþýlan prob-lemleri çözmeye benzer. Problemlere ne kadar iyi çözüm getirebiliyorsanýz o kadar iyi programlama yapabileceðiniz söylenebilir.

Problemlerin çözümünde kendi düþünce sistemimiz çok önemlidir. Bir soru sorulduðunda, hiç düþünmeden kolayca cevap verebilme, insanýn hýzlý düþünebilme yeteneðinden kay-naklanýr. Ve bu hýzla cereyan eden düþünme süreci içerisinde, elbette takip edilen bir çözüm metodu vardýr. Sonra da bu metodun, bilgisayarýn anlayacaðý bir dilin program kodlama kurallarý çerçevesinde uyarlanmasý gerekir. Biz de bu baðlam-da, bilgisayarla aktif iletiþim kuracaðýmýz dil olan Pascal’ý seçtik.

Pascal programlama dili, 1968 yýlýnda Niklaus Wirth tarafýndan geliþtirilmiþ, özellikle Borland firmasýnýn çýkarttýðý yeni Pascal sürümleriyle güçlenmiþtir. Bir çok yerde program-lama, Pascal diliyle öðretilmektedir. Ýdeal bir öðretim dili olmasýnýn yanýnda, yapýsal programlama bakýmýndan da güçlü bir dildir. Dos, crt, string, grafik fonksiyonlarý, simgesel dil komutlarýnýn kullanýmýna izin vermesi, kütüphane oluþtura-bilme gibi imkanlarý, Pascal’ý güçlü kýlan özelliklerdir.

Program uygulamalarýmýzda Pascal’ýn deðiþik model ve sürümlerinden baðýmsýz kalmaya çalýþtýysak ta programlarýmýz Borland Pascal 7.0 sürümünün komutlarýný desteklemektedir.

a. Kitabýn Hazýrlýðý

Her devirde olduðu gibi günümüzde de yeni yetiþen nes-lin, bilgi çaðýný yakalayabilmesi, düþünüp, düþündüðünü ifade edebil-mesi, olaylar karþýsýnda yorum gücüne sahip olmasý, iyi bir eðitim ve öðretimle mümkündür. Eðitim ve öðretimde kalitenin artýrýlmasýnda, birçok unsurun yanýnda kitap faktörü de çok önemlidir.

Elinizdeki bu kitap, uzun programcýlýk deneyiminin ve titiz bir araþtýrmanýn ürünüdür. Kitabý hazýrlýk aþamasýndan son haline getirinceye kadar, temel hedef olarak, Pascal ile pro-gram geliþtirmenin zor ve sýkýcý olduðu düþüncesini ortadan kaldýrmak ve sevdirerek öðretmek olduðu hiç bir zaman

(4)

Konular büyük bir özenle hazýrlandý. Kendi özeleþtirimizi yapmak, konunun anlaþýlýrlýðýný saðlamak, konunun hazýrlanma amacýna uyup uymadýðýný kontrol için, her konu yazýlýp bittikten sonra kendimize þu sorularý sorduk. “Konu gerekli bilgileri içeriyor mu? Kullanýlan dil akýcý ve sade mi? Konuda pedogojik bir anlatým sýralamasý var mý?“ Bu sorularýn tamamýna evet cev-abýný almaya çalýþtýk. Eðer, bunlardan birine net olarak evet cevabý alamadýysak, konuyu yeniden inceledik ve düzenlemel-er yaptýk.

c. Program Geliþtirme Metodu

Konu anlatýmýnda pek çok örnek program uygulamasý verilmiþtir. Bu programlar doðrudan kodlarý verilerek deðil, aþaðý-da belirtildiði gibi problemi anlama, çözüm metodu geliþtirme, adýmlandýrma, kodlama, test etme aþamalarýndan geçirilmiþtir:

1. Problemi Anlama

Bir problemin çok iyi þekilde anlaþýlmasý gerekir. Problemin çözümü için hangi verilerin elde olduðu ve istendiði iyi bilin-melidir.

2. Çözüm Metodu Geliþtirme (Analiz)

Problemi iyice anladýktan sonra, çözümü için bir metot geliþtirmek gerekir. Bu metot, ya daha evvel çözülen problemlere benzetilir ya da baþtan yeni bir yöntem geliþtirilir. Problemi en ufak detaylarýna kadar alt programlara bölmek ise iyi bir baþlangýçtýr.

3. Çözüm Metodunun Adýmlandýrýlmasý (Tasarým)

Çözüm metoduna iliþkin somut adýmlar belirlenir. Herbir adým kendi içinde kapalý bir noktasý kalmayýncaya kadar detay-landýrýlýr.

4. Programý Kodlama (Uygulama)

Belirlenen somut adýmlar, Pascal dilinin kurallarý çerçe-vesinde kodlanýr. Burada kullanýlan sabit, tip, komut ve diðer ifadelerin söz dizim açýklamasý ve kritiði yapýlýr.

Konunun en baþýnda, anlaþýlmasý güç pek çok taným ve komutlar yýðýnýný vermekten kaçýndýk. Aksine, tümden parçalara doðru mantýðýndan hareketle, örnek program uygulamalarýyla baþladýk. Verilen örnek uygulamalar, kolaydan zora doðru sýra-landý, her yeni örnekte bir baþka taným verilmesi hedeflendi.

5. Programýn Testi (Test Ýþletimi)

Bir program her ne kadar bitmiþ gözükse de bir çok hatalar içerebilir. Bir veri için çalýþýp, baþka bir veride yanlýþ sonuçlar

6.2. Problem (Girilen N Adet Sayýnýn Ortalamasý)

Girilen N sayýnýn ortalamasýný bulan program akýþýný geliþtirin.

Kaç adet sayý girileceði (N) okunur. 1’den N’e kadar sayýlar okunur ve toplama eklenir. En sonunda bulunan toplam deðeri, N’e bölünerek ortalama elde edilir.

N adet sayýnýn toplanmasý, bir havuzu N adet mus-luðun doldurmasýna benzetilebilir. Her sayý toplam havuzuna ilave edilir.

Analiz

5.1.1. Sayýnýn Karakökü (Sqrt)

DikKenar1 ve DikKenar2 deðiþken deðerlerinin karelerini toplar ve toplamýn karekökünü alýp hipotenüsü

hesaplar. Kritik

Program Dik_Ucgenin_Hipotenusunu_Hesaplar; Var DikKenar1, DikKenar2, Hipotenus: Real; Begin

Write('Lütfen dik üçgenin iki kenar uzunluklarýný giriniz :'); ReadLn(DikKenar1,DikKenar2);

Hipotenus:=Sqrt(

Sqr(DikKenar1)+Sqr(DikKenar2));{5.1.1, 5.1.2.}

WriteLn('Hipotenüsün uzunluðu = ',Hipotenus:4:2); WriteLn(‘Hipotenüs uzunluðunun tam kýsmý = ‘,

Trunc(Hipotenus)); {5.1.3.}

WriteLn(‘Hipotenüs uzunluðunun yuvarlatýlmýþ hali = ‘, Round(Hipotenus));{5.1.4.}

End.

Program Kodu (DikUcHip.Pas)

1. Dik üçgenin iki kenar uzunluðunu oku. 2. Hipotenüsü hesapla;

2.1 Dik kenarlarýn karelerini alýp topla ve toplamýn karekökünü al.

3. Hipotenüsü yazdýr ve programý sonlandýr.

Tasarým

Hipotenus:=Sqrt(Sqr(DikKenar1)+Sqr(DikKenar2));

Test Ýþletimi Örnek Program Kodu

(5)

d. Program Geliþtirmede Akýþ Þemalarý

Problemlerin çözümünde, yukarýda belirtilen program geliþtirme aþamalarýna ek olarak, yer yer tasarýmla birlikte akýþ þemalarý da çizilmiþtir. Burada, bir resim birçok cümleden daha fazla anlam ifade eder düþüncesiyle, programýn planý akýþ þemasýyla desteklenmiþtir.

e. Renkli Çizim ve Modelleme Desteði

Kitaba göz gezdirdiðinizde çoðu konunun renkli çizimlerle desteklendiðini göreceksiniz. Konularýn daha iyi anlaþýlýr kýlýn-masý, göze hitap etmesi, soyut bir takým kavramlarýn hayal ale-minden kaðýt üzerine aktarýlmasý saðlandý. Konu anlatýmýndaki bir kýsým yorumlarýn çizim modellemesi de yapýlarak farklý bir bakýþ açýsý kazandýrýldý.

f. Karikatür Desteði

Konularýn anlatýmýnda bazý yorumlarý ve bazý Pascal tip ve komutlarýný karikatürize ettik. Kýsmen espiritüyel olan bu karikatürleri, konuyla önemli oranda iliþkilindirmeye gayret ettik.

g. Bölüm Tarama ve Programlama Sorularý

Ölçme ve deðerlendirme, eðitim ve öðretimde vazgeçilmez bir unsurdur. Her bölümün sonuna ilave edilen sorularýn, kýsmen zor olanlarý da olsa, kendinizi ölçmenizde oldukça yardýmcý ola-caðý kanaatindeyiz.

h. Son Söz

Programlama dersi alan tüm orta ve yüksek okul öðrencile-rine ve programcýkla ilgilenen tüm kiþilere, bu kitabýn oldukça faydalý olacaðýný ümit ediyoruz. Bu kitapla konulara çalýþýrken, bir defa okuduðunuzda anlamadýðýnýz taktirde, ikinci defa okudu-ðunuzda rahatlýkla anlayabileceðiniz kanaatindeyiz. Bu arada þunu da tavsiye ederiz: Bir konuyu iyice anladýðýnýza emin olmadan bir sonraki konuya geçmeyiniz.

Kitabýn hazýrlanmasý esnasýnda ihmal ettiðimiz ailelerimize de gösterdikleri anlayýþtan dolayý teþekkür ederiz.

Zülkif GÜVEN Asým Taylan ERVERDÝ Aðustos 1997, Ýstanbul

1. Sayacý 1’e eþitle. 2. 1000 defa ‘Pascal’ yazdýrý

cak döngüyü kur; 2.1. Ekrana ’Pascal’ yazdýr. 2.2. Sayacý bir artýr. 2.3. Sayac 1000’den küçük

veya eþitse 2.1. adýma geri dön. 3. Programý sonlandýr.

Tasarým ve Akýþ Þemasý

4.3.1. Atama Ýfadesinin Ýþleyiþi

1. Atama operatörünün (:=) sað tarafýndaki ifadenin ... 2. Bulunan bu deðer, atama operatörünün solundaki deðiþkene, tip uyuþmazlýðý yoksa, aktarýlýr.

(6)

ÝÇÝNDEKÝLER

BÖLÜMLER

SAYFA

BÖLÜM-1

PROGRAM GELÝÞTÝRME (PROGRAMMING)

1 - 14

BÖLÜM-2

PASCAL PROGRAMLAMA DÝLÝ

15 - 36

(PASCAL PROGRAMMING LANGUAGE)

BÖLÜM-3

KONTROL DEYÝMLERÝ (DECISION CONTROL)

37 - 58

BÖLÜM-4

DÖNGÜ DEYÝMLERÝ (REPETITION CONTROL)

59 - 94

BÖLÜM-5

DÝZÝLER (ARRAYS AND STRING)

95 - 120

BÖLÜM-6

ALT PROGRAMLAR

121 - 146

(PROCEDURES AND FUNCTIONS)

BÖLÜM-7

GRAFÝK (GRAPHIC)

147 - 200

BÖLÜM-8

ÖZEL TANIMLI TÝPLER (USER DEFINED TYPES) 201 - 220

BÖLÜM-9

DOSYALAR (FILES)

221 - 248

BÖLÜM-10

BELLEK KONUM GÖSTERGECÝ (POINTER)

249 - 274

BÖLÜM-11

ÖZYÝNELEME (RECURSION)

275 - 286

BÖLÜM-12

SIRALAMA (SORTING)

287 - 304

BÖLÜM-13

ARAMA (SEARCHING)

305 - 312

BÖLÜM-14

KESMELER (INTERRUPTS)

313 - 326

(7)

1. V

1. VERÝERÝ ÝÝÞLEMEÞLEME(D(DATAATAPPROCESSINGROCESSING))-3 2. V

2. VERÝERÝ ÝÝÞLEMEÞLEMETTARÝHÇESÝARÝHÇESÝ-3 3. B

3. BÝLGÝSAYARDAÝLGÝSAYARDAVVERÝERÝÝÝÞLEMEÞLEMEVEVESSAKLAMAAKLAMA-4 3.1. Ýkilik Sayý Düzeni (Binary Numbers)-5 3.2. Onaltýlýk Sayý Düzeni (Hexadecimal Numbers)-5 4. B

4. BÝLGÝSAYARINÝLGÝSAYARINGGENELENELYYAPISIAPISI-5 4.1. Ana Bellek (Ram)-6 5. P

5. PROGRAMROGRAM GGELÝÞTÝRMEELÝÞTÝRMEMMETODUETODU-6 5.1. Problemi Anlama-6

5.2. Çözüm Metodu Geliþtirme (Analiz)-6

5.3. Çözüm Metodunun Adýmlandýrýlmasý (Tasarým)-6 5.4. P

5.4. PROGRAMÝROGRAMÝKKODLAMAODLAMA(U(UYGULAMAYGULAMA))-7 5.5. P

5.5. PROGRAMÝNROGRAMÝNTTESTIESTI(T(TESTESTÝÝÞLETIMIÞLETIMI))-7 6. P

6. PROGRAMROGRAM GGELÝÞTÝRMEDEELÝÞTÝRMEDEAAKIÞKIÞÞÞEMALARIEMALARI-7 6.1. Sýralý Akýþ (Sequential Flow)-7

6.1.1. Problem (Çember Alan ve Çevre Hesabý)-7 6.2. Þartlý Akýþ (Conditional Flow)-8

6.2.1. Problem (Üçgenin Eþkenarlýk Kontrolü)-8 6.3. Tekrarlý Akýþ (Repetitive Flow)-9

6.3.1. Problem (1’den 100’e Kadar Sayýlarýn Yazdýrýlmasý)-9

6.3.2. Problem (Girilen N Adet Sayýnýn Ortalamasý)-10 6.3.3. Problem (Girilen N Adet Sayýnýn En Büyüðü)-10 7. P

7. PROGRAMLAMAROGRAMLAMADDÝLLERÝÝLLERÝ-11 7.1. Yüksek Seviyeli Diller-11 7.2. Simgesel (Assembly) Dil-12 7.3. Makine Dili-12

7.4. Yaygýn Kullanýlan Bazý Yüksek Seviyeli Diller-12 B

BÖLÜMÖLÜMTTARAMAARAMASSORULARIORULARI-13 P

PROGRAMLAMAROGRAMLAMASSORULARIORULARI-14

1. P

1. PASCALASCAL’’DADAEEDÝTÖRDÝTÖRKKULLANIMIULLANIMI-17 1.1. Yeni Dosya Açýlmasý (New File)-17 1.2. Yazýlan Programýn Çalýþtýrýlmasý

(Compile & Run)-18

1.3. Dosyanýn Kaydedilmesi (File Save)-18 1.4. Düzenleme: Kes, Kopyala, Yapýþtýr

(Cut, Copy, Paste)-18 1.5. Kelime Arama (Search)-19

1.6. Dosyanýn Kapatýlmasý (Close File)-19 2. P

2. PASCALASCAL’’ININGGENELENELBBLOKLOKYYAPISIAPISI-19

2.1. Uygulama (Verilen Üç Notun Ortalamasý)-19

2.2. Program Baþlýðý-20 2.3. Pascal Söz Dizim Kuralý-20

2.3.1. Ayrýlmýþ Kelimeler-20 2.3.2. Standart Ýfadeler-20 2.3.3. Özel Semboller-21 2.3.4. Bellek Alan Ýsimleri-21 2.4. Açýklama Sembolleri-21

3. DEÐÝÞKEN TANIMLAMA BLOÐU

3. DEÐÝÞKEN TANIMLAMA BLOÐU-21

3.1. Deðiþken Kavram ve Tanýmý-21 3.2. Deðiþken Ýsmi Verme Kurallarý-22 3.3. Deðiþken Tipleri-22

4. ANA PROGRAM BLOÐU

4. ANA PROGRAM BLOÐU-23

4.1. Çýkýþ Deyimleri (Write, WriteLn)-23 4.1.1. Çýkýþ Ortamýna Yazým (Write)-24

4.1.2. Çýkýþ Ortamýna Satýr Baþýyla Yazým (WriteLn)-24 4.2. Giriþ Deyimleri (Read, ReadLn)-24

4.2.1. Giriþ Ortamýndan

Satýr Baþýyla Okuma (ReadLn) -24 4.2.2. ReadLn Deyiminde

Dikkat Edilecek Hususlar -25 4.2.3. Giriþ Ortamýndan Okuma (Read) -26 4.3. Atama Ýfadesi-26

4.3.1. Atama Ýfadesinin Ýþleyiþi -26 4.3.2. Yer Deðiþtirme Ýþlemi (Swap) -26 4.3.3. Atamada Dikkat Edilecek Hususlar -27 4.4. Aritmetik Ýþlemler-27

4.4.1. Kesirli Bölme (/) -27 4.4.2. Tam Bölme (Div) -27 4.4.3. Mod Ýþlemi -28 4.5. Aritmetik Ýþlem Sýrasý-28

4.6. Aritmetik Ýþlem Sonucunun Tipi-28 4.7. Matematik Formüllerinin Yazýmý-29 4.8. Çýkýþ Ýfade Düzeni-29

4.8.1. Tamsayý (Integer) Ýfade Düzeni -29 4.8.2. Gerçek Sayý (Real) Ýfade Düzeni -30 4.8.3. Açýklama Ýfadesi Yazým Düzeni -30 5. MATEMATÝKSEL ÝÞLEMLER

5. MATEMATÝKSEL ÝÞLEMLER-31

5.1. Uygulama (Dik Üçgenin Hipotenüs Hesabý)-31 5.1.1. Sayýnýn Karekökü (Sqrt) -31

5.1.2. Sayýnýn Karesi (Sqr) -31

5.1.3. Gerçek Sayýnýn Tam Kýsmý (Trunc) -31 5.1.4. Gerçek Sayýyý En Yakýn Tamsayýya

Yuvarlama (Round) -32 6. K

6. KODLAMADAODLAMADAYYAPILABÝLECEKAPILABÝLECEKGGENELENELHHATALARATALAR-32 6.1. Söz Dizim Hatalarý (Syntax Errors)-32 6.2. Ýþletim Hatalarý (Runtime Errors)-32 6.3. Hatalý Program Kodunu Düzeltme-32 B

BÖLÜMÖLÜM TTARAMAARAMASSORULARIORULARI-34 P

PROGRAMLAMAROGRAMLAMASSORULARIORULARI-36

BÖLÜM-2 PASCAL PROGRAMLAMA DÝLÝ (PASCAL PROGRAMMING LANGUAGE)-15

BÖLÜM-1 PROGRAM GELÝÞTÝRME (PROGRAMMING)-1

Ýçindekiler

(8)

1.

1. TTEKEKVEVEÇÇÝFTÝFTDDALLANMALIALLANMALIKKONTROLONTROLDDEYÝMLERÝEYÝMLERÝ-39 1.1. Uygulama (Üç Sayýnýn En Büyüðü)-39 1.2. If-Then-Else Deyimi-40

1.3. Mantýksal (Boolean) Ýfadeler-41 1.3.1. Karþýlaþtýrma Operatörleri -41 1.3.2. Mantýksal Deðiþkene Deðer Atama -41 1.3.3. Mantýksal Operatörler (Ve, Veya, Deðil) -41

- Ve (And) Operatörü -42 - Veya (Or) Operatörü -42 - Deðil (Not) Operatörü -42 1.3.4. Genel Ýþlem Sýrasý -42 1.4. Kontrol Ýfadesinde Mantýksal

Deðiþken Kullanýmý-43

1.5. Kontrol Ýfadesinde Gerçek Sayýlarýn Kullanýmý-43 1.6. Else Dallanmasýndan Önce

Noktalý Virgül Kullanýmý-43 1.7. If-Then Deyimi-44

2. B

2. BLOKLOKKKULLANIMIULLANIMI-45

2.1. Uygulama (Dikdörtgen veya Üçgen Alan Hesabý)-45 2.1.1. Kütüphane Bloðu ve

Crt Kütüphanesi (Uses Crt) -46 2.1.2. Ekraný Temizleme (ClrScr) -46

2.1.3. Klavyeden Karakter Okuma (ReadKey) -47 2.1.4. Büyük Harfe Çevirme (UpCase) -47 2.1.5. In Karþýlaþtýrma Operatörü -47 2.1.6. Begin-End Blok Yapýsý -48 2.1.7. Blok Ýfade Kullanmanýn Gereði -48 3. Ç

3. ÇOKOKDDALLANMALIALLANMALIKKONTROLONTROLDDEYÝMLERÝEYÝMLERÝ-49 3.1. Uygulama (Öðrenci Ders Baþarýsý)-49

3.1.1. Sabit (Const) Bloðu -51 3.1.2. Ýçiçe If Kontrolü -51

3.1.3. Ýçiçe If Kontrolünde Else Kullanýmý -52 3.2. Uygulama (Üçgen Tipini Belirleme)-52

3.2.1. Ýçiçe If-Then-Else Deyimleri -52 3.3. Uygulama (Yüzden Beþe Not Çevrimi)-53

3.3.1. Ýçiçe If-Then-Else ile Not Çevrimi -53 3.4. Case ile Yüzden Beþe Not Çevrim Örneði-53 3.5. Case Deyimi-54

3.5.1. Case Deyiminde Deðer Aralýklarý -54 3.5.2. Case Bloðunda Tekrar Eden Deðerler -55 3.5.3. Case Bloðunda Else ile Yönlendirim -55 3.5.4. Case Blok Sonu -55

3.6. Uygulama (Karakter Tespiti)-55

1. D

1. DÖNGÜÖNGÜ NNEDENEDENGGEREKÝREREKÝR-61 1.1. Uygulama (Ekrana 1000 Defa

Pascal Yazdýrma)-61

1.2. Etiket (Label) Tanýmlama Bloðu-62 1.3. Program Akýþýný

Ýstenen Satýra Yönlendirme (GoTo)-62 2. B

2. BELLÝELLÝSSAYIDAAYIDATTEKRARLIEKRARLIDDÖNGÜÖNGÜ(F(FOROR))-63 2.1. For Döngüsüyle

Ekrana 1000 Defa Pascal Yazdýrma-63 2.2. For-To-Do Deyimi

2.2.1. For Döngüsünün Ýþleyiþ Adýmlarý -63 2.3. Uygulama (1’den 100’e Kadar

Sayýlarýn Toplamý)-64

2.3.1. Yýðmalý Toplama ve Çarpma -65

2.4. Uygulama (Sayýlar ve Karelerinin Yazdýrýlmasý)-65 2.5. For-DownTo-Do Deyimi-65

2.5.1. Döngüde Blok Kullanýmý -66

2.6. A’ dan Z’ye Kadar Karakterlerin Yazýmý-66 2.6.1. Döngü Deðiþkeni Olarak Karakter Kullanýmý -66 2.7. Uygulama (Sýnýfýn Kalan ve

Süper Öðrenci Sayýsý) -66

2.8. For Döngüsünde Dikkat Edilecek Noktalar-68 2.8.1. Döngü Deðiþken Deðerinin Deðiþimi -68 2.8.2. Sonsuz Döngü -68

2.8.3. Döngünün Bitiþ Deðerini Deðiþtirme -69 2.8.4. Döngü Bitiminde Döngü Deðiþkeninin Deðeri-69 2.8.5. Döngü Bloðunun Tekrar Etme Sayýsý -69 2.8.6. Do’dan Sonra Noktalý Virgül Kullanýmý -69 2.8.7. For Döngü Deðiþkeni Tipi -69

3. Ö

3. ÖNN KKONTROLLÜONTROLLÜDDÖNGÜÖNGÜ(W(WHILEHILE))-70 3.1. Uygulama (1 ile10 Arasýndaki Sayýlarý

While ile Yazdýrma)-70 3.2. While-Do Deyimi-71

3.2.1. While Döngüsünde Üç Aþama -72 3.3. Sayma ve Gözcü (Sentinel)

Kontrollü Döngüler-72

3.4. Uygulama (Not Ortalama Hesabý)-73 3.4.1. Döngü Deðiþkeninin Ýlk Deðer Almasý -74 3.4.2. Döngüye Hiç Girmeme Kontrolü -74 3.5. Uygulama (Bir Þehrin Hedef Nüfusa

Ulaþma Süresi)-74

3.5.1. Tamsayý Bölme ve Çarpmada Oluþabilecek Hatalar -75

BÖLÜM-4 DÖNGÜ DEYÝMLERÝ

(REPETITION CONTROL)-59

BÖLÜM-3 KONTROL DEYÝMLERÝ (DECISION CONTROL)-37

(9)

3.7. While Döngüsünde Dikkat Edilecek Noktalar-78 3.7.1. Do Kelimesinden Sonra

Noktalý Virgül Kullanýmý -78 3.7.2. Döngülerde Tamsayý Kullanýmý -78 4. S

4. SONONKKONTROLLÜONTROLLÜDDÖNGÜÖNGÜ(R(REPEAT)EPEAT)-79 4.1. Uygulama (Esc Tuþuna

Basýlana Kadar Tuþ Okuma)-79 4.2. Repeat-Until Deyimi-79

4.2.1. Diyez (#) Ýþaretiyle Karakter Kontrolü -80 4.3. Uygulama (Fibonacci Serisi)-80

4.4. Uygulama (Dört Ýþlem Hesabý)-83 5. Ý

5. ÝÇÝÇEÇÝÇEDDÖNGÜLERÖNGÜLER-84

5.1. Uygulama (Yýldýzlardan Oluþan Kare)-85 5.2. Ýçiçe For Kullanýmý-85

5.3. Uygulama (Bir Sayýnýn Asal Çarpanlarý)-86 6. P

6. PROGRAMINROGRAMINTTESTÝESTÝ-88 6.1. Run Menüsü-88 6.1.1. Step Over (F8) -88 6.1.2. Trace Into (F7) -88 6.1.3. Goto Cursor (F4) -89 6.1.4. Program Reset (Ctrl+F2) -89 6.2. Debug Menüsü-89 6.2.1. Breakpoint -89 6.2.2. Output -89

6.2.3. User Screen (Alt+F5) -89 6.2.4. Evaluate/Modify (Ctrl+F4) -89 6.2.5. Add Watch (Ctrl+F7) -89 B

BÖLÜMÖLÜMTTARAMAARAMASSORULARIORULARI-90 P

PROGRAMLAMAROGRAMLAMASSORULARIORULARI-93

1. T

1. TEKEK BBOYUTLUOYUTLUDDÝZÝLERÝZÝLER-97 1.1. Uygulama (Beþ Sayýnýn

Sondan Baþa Yazdýrýmý)-97 1.1.1. Dizi Tanýmlama -98

- Dizinin Ýsmi -98 - Eleman Aralýðý -98 - Dizi Elemanlarýnýn Tipi -99

1.1.2. Dizilerin Okunmasý ve Read Kullanýmý -99 1.1.3. Dizilerin Yazdýrýlmasý -99

1.2. Uygulama (2 Kat 3 Fazla Kuralýnda Dizi Oluþturma)-100 1.2.1. Dizilerde Atama Ýþlemi -100 1.2.2. Dizinin Diziye Atanmasý -100 1.3. Uygulama (Bir Diziyi Baþka

Bir Diziye Tersten Aktarým)-101

1.4. Uygulama (Dizinin Sýralýlýk Kontrolü)-101 1.4.1. Artýrma ve Eksiltme (Inc, Dec) -102 1.5. Uygulama (Sýnýf Ortalamasý

Üstündeki Öðrenciler)-103 2. K

2. KARAKTERARAKTERDDÝZÝSÝÝZÝSÝ(S(STRINGTRING))-104

2.1. Uygulama (Bir Kelimedeki Sesli Harfler)-104 2.1.1. String Deðiþken Tanýmlama -104

2.1.2. String Okuma ve Yazma -105

2.1.3. Stringin Bir Karakterinin Yazdýrýlmasý -105 2.1.4. Stringin Mevcut

Bir Karakterine Deðer Okuma -105 2.1.5. String Uzunluðunu Öðrenme (Length) -106 2.1.6. String’te 0. Karakter -106

2.1.7. Sýra Deðer Bildirimi (Ord) -106 2.2. Uygulama (Adam Asma Oyunu)-106

2.2.1. Stringlerde Toplama Operatörü -108 2.2.2. Stringleri Toplama (Concat) -109 2.2.3. String ile Kullanýlan

Karþýlaþtýrma Operatörleri -109 2.2.4. Stringte Atama Ýþlemi -109

2.2.5. ASCII Kodun Karakter Karþýlýðý (Chr) -110 2.2.6. Stringe String Atama -110

2.3. String Komutlarý-111 2.3.1. Stringten Belli Bir Kesimin

Kopyalanmasý (Copy) -111 2.3.2. Stringten Belli Bir Kesimin

Silinmesi (Delete) -111

2.3.3. Stringe String Eklenmesi (Insert) -111 2.3.4. String Karakter Dizisinde Arama (Pos) -112 2.4. Uygulama (Cümle Ýçindeki

Kelimeyi Deðiþtirme)-112 2.5. Uygulama (N Tabanýndan

Onluk Tabana Çevrim)-113 2.5.1. Sayýyý Stringe Çevirme (Str) -114 2.5.2. Stringi Sayýya Çevirme (Val) -114

2.6. Uygulama (Büyük Sesli Uyumu Kontrolü)-115 3. Ý

3. ÝKÝKÝBBOYUTLUOYUTLUDDÝZÝLERÝZÝLER-116

3.1. Uygulama (Ýki Boyutlu Tablonun Sayýlarý Toplamý)-116

3.1.1. Ýki Boyutlu Dizilerin Tanýmlanmasý -117 - Dizinin Ýsmi -117

- Ýndis Aralýklarý -117 - Elemanlarýn Tipi -117

3.1.2. Ýki Boyutlu Dizilerin Okunmasý -117

3.2. Uygulama (Öðrenciler ve Yazýlýlarý Ortalamasý)-117 3.2.1. Tablodaki Bir Satýrýn Toplanmasý -118 3.2.2. Tablodaki Bir Sütunun Toplanmasý -118 B

BÖLÜMÖLÜM TTARAMAARAMASSORULARIORULARI-119 P

PROGRAMLAMAROGRAMLAMASSORULARIORULARI-120

BÖLÜM-5DÝZÝLER (ARRAYS AND STRING)-95

Ýçindekiler

(10)

1. A

1. ALTLTPPROGRAMROGRAMKKULLANMANINULLANMANINFFAYDALARIAYDALARI-123 1.1. Kolay Çözüm, Kolay Hata Kontrolü-123 1.2. Alt Programlarýn

Tekrar Tekrar Çaðrýlabilmesi-124 1.3. Programlarýn Kolay Anlaþýlýr ve

Yönetilebilir Olmasý-124 1.4. Kütüphane Haline Getirme-124 1.5. Programcýlar Arasý Ýletiþim-124 2. A

2. ALTLTPPROGRAMLARLAROGRAMLARLA A

ANANAPPROGRAMROGRAMAARASINDAKÝRASINDAKÝÝÝLÝÞKÝLÝÞKÝ-124 3. P

3. PROSEDÜRROSEDÜRAALTLTPPROGRAMIROGRAMI(P(PROCEDUREROCEDURE))-125 3.1. Prosedürün Parametresiz Çaðrýlmasý-125

3.1.1. Prosedürün Baþlýðý -125 3.1.2. Prosedür Kod Bloðu -125 3.1.3. Prosedürün Çaðrýlmasý -125

3.2. Uygulama (Çarpým ve ASCII Tablolarý)-126 3.2.1. Menü Prosedürü -127

3.2.2. Çarpým Tablosu Prosedürü -127 3.2.3. Genel (Global) ve

Yerel (Local) Deðiþkenler -127 3.2.4. ASCII Tablo Prosedürü -129 4. P

4. PROSEDÜREROSEDÜREPPARAMETREARAMETRE G

GÖNDERÝMÝÖNDERÝMÝVEVEKKULLANIMIULLANIMI-129

4.1. Uygulama (Yýldýzlardan Oluþan Dik Üçgen)-129 4.1.1. Deðer Parametreli Prosedür Baþlýðý -130 4.1.2. Deðer Parametreli Prosedürün Çaðrýlmasý-130 4.1.3. Prosedürdeki Deðer

Parametrelerinin Durumu -131 4.2. Uygulama (Üs Hesabý)-132 5. D

5. DEÐÝÞKENEÐÝÞKENPPARAMETRELÝARAMETRELÝPPROSEDÜRLERROSEDÜRLER-132 5.1. Deðiþken Parametreli Prosedürle Üs Hesabý-133

5.1.1. Deðiþken Parametreli Prosedür Baþlýðý -133 5.1.2. Deðiþken Parametreli

Prosedürün Çaðrýlmasý -133

5.1.3. Deðiþken Parametresinin Bellekteki Yeri -134 6. F

6. FONKSÝYONONKSÝYONAALTLTPPROGRAMIROGRAMI (F(FUNCTIONUNCTION))-135 6.1. Fonksiyonla Üs Hesabý-135

6.1.1. Fonksiyonun Prosedüre Göre Kullaným Farklýlýklarý -135 6.1.2. Fonksiyon Baþlýðý -136 6.1.3. Fonksiyon Kod Bloðu -136 6.1.4. Fonksiyonun Çaðrýlmasý -136

6.2.3. Rastgele Sayý Üretimi (Random) -139 6.2.4. Sayý Geçerliliði Kontrol Fonksiyonu -140 6.2.5. Tahmin Sayýyý Deðerlendirme Prosedürü -141 7. Ý

7. ÝÇÝÇEÇÝÇEBBÝRBÝRÝNÝÝRBÝRÝNÝÇÇAÐIRANAÐIRANAALTLTPPROGRAMLARROGRAMLAR-142 7.1. Alt Programlarýn Birbirini Çaðýrma Þartlarý-143

7.1.1. Alt Programdan Çýkýþ (Exit) -143 7.1.2. Programdan Tamamen Çýkýþ (Halt) -143 7.1.3. Döngü Bloðundan Çýkýþ (Break) -143 7.1.4. Döngü Baþýndan Devam Etme (Continue)-143 B

BÖLÜMÖLÜMTTARAMAARAMASSORULARIORULARI-144 P

PROGRAMLAMAROGRAMLAMASSORULARIORULARI-146

1. M

1. METÝNETÝN(T(TEXT) TEXT) TABANLIABANLIGGÖSTERÝMÖSTERÝM-149 1.1. Metin Modunda Renkli Yazýmlar-149

1.1.1. Ýstenen Konuma Gidilmesi (GotoXY) -149 1.1.2. Yazý Taban Rengini

Belirleme(TextBackGround) -150

1.1.3. Yazý Üst Rengini Belirleme (TextColor) -150 1.1.4. Deðiþik Taban ve Üst Renkleriyle Yazým -150 1.2. Metin Tabanlý Diðer Ekran Komutlarý-150

-TextAttr, HighVideo, LowVideo, NormVideo -150 2. G

2. GRAFÝKRAFÝK TTABANLIABANLIGGÖSTERÝMÖSTERÝM-151 3. G

3. GRAFÝKRAFÝK KKOORDÝNATOORDÝNATSSÝSTEMÝÝSTEMÝ-151 3.1. Uygulama (Grafik Ortamda

Ekran Dinlendirici)-151

3.1.1. Grafik Kütüphanesi Kullanýmý (Uses Graph) -152

3.1.2. Grafik Sürücü ve Modu Deðiþkenleri -153 3.1.3. Grafik Sürücü ve

Modunun Belirlenmesi (DetectGraph) -153 3.1.4. Grafik Ortamýnýn Baþlatýlmasý (InitGraph) -153 3.1.5. Grafik Hata Kontrolü (GraphResult) -153 3.1.6. Grafik Hata Mesajý (GraphErrorMsg) -154 3.1.7. Grafik Ekrana Piksel Koyulmasý (PutPixel)-154 3.1.8. Grafik Koordinat Sýnýrlarý ve

Maksimum Renk -155

- Maksimum Yatay Piksel Adedi (GetMaxX) -155 - Maksimum Dikey Piksel Adedi (GetMaxY) -155 - Maksimum Renk Adedi (GetMaxColor) -155 3.1.9. Klavye Tuþuna Basýlma Kontrolü

(KeyPressed) -155

3.1.10. Grafik Ekrandan Piksel Okuma (GetPixel)-155 3.1.11. Grafik Ortamýnýn Kapatýlmasý (CloseGraph)-155 4. G

4. GRAFÝKTERAFÝKTE TTEMELEMELÇÇÝZÝMLERÝZÝMLER-156

BÖLÜM-7 GRAFÝK (GRAPHIC)-147

BÖLÜM-6 ALT PROGRAMLAR

(11)

4.1.2. Grafik Zemin Rengi Deðiþimi (SetBkColor)-158 4.1.3. Grafik Ekraný Temizleme (ClearDevice) -159 4.1.4. Doðru Parçasý Çizimi (Line) -159

4.1.5. Dikdörtgen Çizimi (Rectangle) -159

4.1.6. Aktif Çizim Renginin Alýnmasý (GetColor) -159 4.1.7. Aktif Çizim Rengini Deðiþtirme (SetColor) -159 4.1.8. Grafik Ortamda Yazým (OutTextXY) -160 4.1.9. Verilen Açýnýn Sinüsü (Sin) -160 4.1.10. Verilen Açýnýn Kosinüsü (Cos) -160 4.1.11. Çizim Stilini Belirleme (SetLineStyle) -161 4.1.12. Ýmlecin Konumunu Deðiþtirme (MoveTo)-161 4.1.13. Doðru Çizimi (LineTo) -161

4.1.14. Grafik Sürücü ve

Modunun Otomotik Tespiti (Detect) -161 4.1.15. Grafik Hata Kontrolü -161

4.2. Uygulama (Dijital ve Analog Saat)-162 4.2.1. Dos Kütüphanesi (Uses Dos) -166 4.2.2. Yazý Ayarlarý Kaydý (TextSettingsType) -166 4.2.3. Yazý Ayarlarýnýn Alýnmasý (GetTextSettings)-166 4.2.4. Yazý atilini Ayarlama (SetTextStyle) -166 4.2.5. Yazý Konumunu Ayarlama (SetTextJustify)-167 4.2.6. Karakter Büyüklüðü

Ayarlama (SetUserCharSize) -167

4.2.7. Yazý Geniþliðinin Alýnmasý (TextWidth) -168 4.2.8. Yazý Yüksekliðinin Alýnmasý (TextHeight) -168 4.2.9. Çember Çizimi (Circle) -168

4.2.10. Çizim Modunu Ayarlama (SetWriteMode)-168 4.2.11. Bilgisayar Saatini Okuma (GetTime) -169 4.2.12. Programýn Fonksiyonlarý -169

4.2.13. Programýn Prosedürleri -170

4.3. Uygulama (Hareketli Dairenin Takibi)-170 4.3.1. Elips Çizimi (Ellipse) -173

4.3.2. Doðru Çizimi (LineRel) -173

4.3.3. Ýmlecin Konumunu Deðiþtirme (MoveRel)-173 4.3.4. Grafik Ekrana Yazým (OutText) -174

4.3.5. Verilen Deðerin Ark Tanjantý (ArcTan) -174 4.3.6. Ark Çizimi (Arc) -174

4.3.7. Kontrol ve Fonksiyon Tuþlarýný Okuma -174 4.3.8. Program Ýþletimini Geciktirme (Delay) -175 4.3.9. Bilgisayarýn Hoparlöründen

Ses Üretimi (Sound) -175 4.3.10. Bilgisayar Hoparlörünü

Susturma (NoSound)-175 4.3.11. Mutlak Deðer (Abs) -175 5. G

5. GRAFÝKTERAFÝKTE BBÝRLEÞÝKÝRLEÞÝKÇÇÝZÝMÝZÝMVEVEAALANLAN TTARAMAARAMA-176 5.1. Uygulama (Öðrenciler Arasý

Baþarý Çubuk Grafiði)-176

5.1.1. Sabit Tanýmlý Diziler (Constant Array) -179 5.1.2. Desen ve Renk Kodu Kaydý

(FillSettingsType)-179 5.1.3. Mevcut Desen ve

Rengin Alýnmasý (GetFillSettings) -180

5.1.4. Desen ve Renk Kodu Deðiþimi (SetFillStyle)-180 5.1.5. Ýki Boyutlu Çubuk Grafik Çizimi (Bar) -180 5.1.6. Desen Dizi Veri Tipi (FillPatternType) -181 5.1.7. Grafik Pencere Alan Kaydý (ViewPortType)-181 5.1.8. Grafik Pencere Verilerinin

Alýnmasý (GetViewSettings) -181

5.1.9. Grafik Pencere Tanýmlama (SetViewPort) -181 5.1.10. Grafik Pencere Alanýnýn

Silinmesi (ClearViewPort) -182 5.1.11. Mevcut Desen Dizisinin

Alýnmasý (GetFillPattern) -182

5.1.12. Özel Desen Tanýmlama (SetFillPattern) -182 5.1.13. Üç Boyutlu Çubuk Grafik Çizimi (Bar3D)-183 5.2. Uygulama (Dersler Arasý

Baþarý Pasta Grafiði)-183

5.2.1. Programýn Sabit ve Sabit Tanýmlý Dizileri-185 5.2.2. Dairesel Pasta Grafik Çizimi (PieSlice) -185 5.2.3. Eliptik Pasta Grafik Çizimi (Sector) -186 6. G

6. GRAFÝKTERAFÝKTE ÇÇOKLUOKLUEEKRANKRANSSAYFALARIAYFALARI-187 6.1. Uygulama (Gülen ve Aðlayan Yüz)-187

6.1.1. Kapalý Alaný Renklendirme (FloodFill) -189 6.1.2. Çok Sayfalý Grafik Moduna Geçiþ -189 6.1.3. Aktif Ýþlem Sayfasý Seçimi (SetActivePage)-189 6.1.4. Aktif Görüntü Sayfasý

Seçimi (SetVisualPage) -189 7. G

7. GRAFÝKTERAFÝKTE ÝÝKÝKÝBBOYUTLUOYUTLU G

GEOMETRÝKEOMETRÝKDDÖNÜÞÜMLERÖNÜÞÜMLER-190

7.1. Uygulama (Kendi Etrafýnda Dönen Kutu)-190 7.1.1. Dörtgen Kutunun Ýlk Ýþlemleri -193

7.1.2. Dörtgen Kutuyu Döndürme Ýþlemleri -193 7.1.3. Grafik Alan Hacmi Bildirimi (ImageSize) -194 7.1.4. Dinamik Bellek Alaný Ayýrma (GetMem) -194 7.1.5. Grafik Alandan Belleðe

Kopyalama (GetImage) -194 7.1.6. Bellekten Grafik

Alanýna Kopyalama (PutImage) -194 7.1.7. Dinamik Bellek Alanýnýn

Boþaltýlmasý (FreeMem) -195 8. G

8. GRAFÝÐÝNRAFÝÐÝNDDÝÐERÝÐERKKOMUTLARIOMUTLARI-195 -DrawPoly, FillEllipse, FillPoly -195 -GetArcCoords, GetAspectRatio,

GetBkColor, GetDefaultPalette, GetDriverName, GetGraphMode -196 -GetLineSettings, GetMaxMode,

GetModeName, GetModeRange, GetPalette, GetPaletteSize, GetX -197 -GetY, GraphDefaults, InstallUserDriver,

InstallUserFont, RestoreCrtMode, SetAllPalette -198 -SetAspectRatio, SetGraphBufSize,

SetGraphMode, SetPalette, SetRGBPalette -199 B

BÖLÜMÖLÜM TTARAMAARAMASSORULARIORULARI-200 P

PROGRAMLAMAROGRAMLAMASSORULARIORULARI-200

Ýçindekiler

(12)

1. Y

1. YENÝDENENÝDENTTANIMLIANIMLITTÝPLERÝPLER(R(REDEFINEDEDEFINEDTTYPES)YPES)-203 1.1. Prosedür ve Fonksiyonlarda

Yeniden Tip Tanýmý-203 2. S

2. SIRASALIRASALTTÝPLERÝPLER(E(ENUMERATEDNUMERATEDTTYPESYPES))-204 2.1. Yýlýn Mevsimlerini Tanýmlama Örneði-204

2.1.1. Sýrasal Tip Taným ve Ýþlemleri (YýlýnMevsimleri)-204

2.1.2. Deðiþken Hacmi Bildirimi (SizeOf) -205 2.1.3. Önceki Deðerin Bildirimi (Pred) -205 2.1.4. Sonraki Deðerin Bildirimi (Succ) -205 2.2. Tip Çevrimleri-206

2.3. Uygulama (Öðrenci Ders Notlarý Aðýrlýklý Ortalamasý)-206 3. A

3. ARALIKLIRALIKLI TTÝPLERÝPLER(S(SUBRANGEUBRANGETTYPESYPES))-207 3.1. Uygulama (Verilen Rakamýn Yazýlý Ýfadesi)-207 4. K

4. KAYITAYITTTÝPÝÝPÝ (R(RECORDECORDTTYPEYPE))-210

4.1. Öðrenci Kayýt Tipi Taným Örneði-210 4.2. With Deyiminin Kullanýmý-210

4.3. Nüfus Kayýt Tipi Tanýmlama Örneði-211 4.4. Uygulama (Sýnav Not Sýralý Öðrenci Listesi)-211 5. K

5. KÜMEÜMETTÝPÝÝPÝ(S(SETETTTYPEYPE))-213

5.1. Küme Tip Tanýmý ve Deðer Atama Örneði-213 5.2. Uygulama (Sesli Harf Geçiþleri)-214

5.2.1. Satýr Sonu Kontrolü (EoLn) -215

5.2.2. Küme Eleman Kontrolü (BirKr In Kume) -215 5.3. Küme Ýþlemleri (Set Operations)-215

5.3.1. Kesiþim Ýþlemi (Intersection Operation) -215 5.3.2. Birleþim Ýþlemi (Union Operation) -215 5.3.3. Fark Ýþlemi (Difference Operation) -216 5.3.4. Karþýlaþtýrma Ýþlemleri

(Relational Operations) -216 5.4. Uygulama (Not Geçiþ Aralýklarý)-216 6. P

6. PROSEDÜRROSEDÜRTTÝPÝÝPÝ(P(PROCEDURALROCEDURALTTYPE)YPE)-217 6.1. Prosedür Tip ile Üç Ýþlem Örneði-217

6.1.1. Uzak Adresleme Metodu (Far Call Model :{$F+}) -218

6.1.2. Özel Tanýmlý Prosedür Tip ve Deðiþkeni -218 6.1.3. Prosedür Tipi Deðiþkenin Yönlendirimi -218 B

BÖLÜMÖLÜMTTARAMAARAMASSORULARIORULARI-219 P

PROGRAMLAMAROGRAMLAMASSORULARIORULARI-220

1. V

1. VERÝERÝ DDOSYASIOSYASI VEVE TTÜRLERÝÜRLERÝ-223 2. S

2. SIRALIIRALIEERÝÞÝMLÝRÝÞÝMLÝDDOSYALAROSYALAR (S

(SEQUENTIALEQUENTIAL-T-TEXTEXTFFILESILES))-223 2.1. Metin Dosyasýnýn

Diðer Karakteristik Özellikleri-223 2.2. Metin Dosya Oluþturma ve Listeleme-224 2.3. Uygulama (Yeni Metin Dosyasý Oluþturma)-224

2.3.1. Metin Dosya Tipi (Text) -225

2.3.2. Dosya Ýle Ýliþki Kurulmasý (Assign) -225 2.3.3. Dosyanýn Yazým Modlu Açýlmasý (ReWrite)-225 2.3.4. Metin Dosyaya Yazma

Deyimleri (Write, WriteLn) -225 2.3.5. Dosyanýn Kapatýlmasý (Close) -226 2.4. Uygulama (Mevcut Metin

Dosyasýný Listeleme)-226 2.4.1. Dosya Mevcudiyetinin

Kontrolü (DosyaMevcutMu) -227 2.4.2. Giriþ/Çýkýþ Kontrolleri

Yönlendirimi ({$I-}, {$I+}) -227 2.4.3. Giriþ/Çýkýþ Ýþlemleri

Sonuç Bildirimi (IOResult) -227 2.4.4. Komut Satýrý

Parametre Sayýsý (ParamCount)-227

2.4.5. Komut Satýrý Parametre Adlarý (ParamStr)-228 2.4.6. Dosyanýn Okuma Modlu Açýlmasý (Reset)-228 2.4.7. Dosya Sonu Kontrolü (Eof) -228

2.4.8. Metin Dosyasýndan Okuma Deyimleri (Read, ReadLn) -228 3. M

3. METÝNETÝNDDOSYASIOSYASI KKAYITAYITKKONUMONUMDDÜZENÝÜZENÝ-229 3.1. Uygulama (Test Sýnavý

Sonuç Rapor Dosyasý)-230 4. M

4. METÝNETÝNDDOSYASININOSYASININDDÝÐERÝÐERKKOMUTLARIOMUTLARI-231 - Append, Eoln -231

5. D

5. DOÐRUDANOÐRUDANEERÝÞÝMLÝRÝÞÝMLÝ DDOSYALAROSYALAR (R

(RANDOMANDOM-B-BINARYINARYFFILES)ILES)-232 5.1. Doðrudan Eriþimli

Dosyalarýn Diðer Özellikleri-232 5.2. Doðrudan Eriþimli Dosya Türlerý-232 6.

6. TTANIMLANMIÞANIMLANMIÞTTÝPTEKÝÝPTEKÝDDOSYALAROSYALAR(T(TYPEDYPEDFFILES)ILES)-233 6.1. Standart Tipte Tanýmlý Dosyalar-233

6.2. Özel Tipte Tanýmlý Dosyalar-233 6.3. Uygulama (Kayýt Tipli

Yeni Test Dosyasý Üretimi)-234

BÖLÜM-9 DOSYALAR (FILES)-221

BÖLÜM-8 ÖZEL TANIMLI TÝPLER (USER DEFINED TYPES)-201

(13)

6.3.3. Dosya Kayýt Adedi (FileSize) -236 6.3.4. Dosyanýn Ýstenilen Kaydýna

Doðrudan Eriþim (Seek) -236 6.3.5. Dosyaya Kayýt Ekleme ve

Güncelleme (Write) -237 6.4. Uygulama (Test Netlerinin

Hesaplanýp Listelenmesi)-237 6.4.1. Dosyadan Kayýt Okuma (Read) -240 6.5. Uygulama (Öðrenci Test Sonuç Karnesi)-241 6.6. Dosya Kayýt Ýþlemlerinin

Ana Menüden Takibi-242 7.

7. TTANIMSIZANIMSIZTTÝPTEKÝÝPTEKÝDDOSYALAROSYALAR(U(UNNTTYPEDYPEDFFILESILES))-243 7.1. Uygulama (Dosyalarý Hýzlý

Kopyalama ve Þifreleme)-243 7.1.1. Tanýmsýz Tipli Dosya (File) -245 7.1.2. Dosyanýn Okuma ve Yazým

Modlu Açýlmasý (Reset, ReWrite) -245 7.1.3. Dosyadan Blok Veri Okunmasý (BlockRead)-245 7.1.4. Dosyaya Blok Veri Yazýlmasý (BlockWrite) -246 8.

8. SSIRALIIRALIVEVEDDOÐRUDANOÐRUDANEERÝÞÝMLÝRÝÞÝMLÝ D

DOSYAOSYAKKOMUTLARIOMUTLARI-246 B

BÖLÜMÖLÜMTTARAMAARAMASSORULARIORULARI-247 P

PROGRAMLAMAROGRAMLAMASSORULARIORULARI-248

1. D

1. DEÐÝÞKENEÐÝÞKENTTÜRLERÝÜRLERÝ-251

1.1. Statik Deðiþkenler (Static Variables)-251 1.2. Dinamik Deðiþkenler (Dynamic Variables)-251 2. B

2. BELLEKELLEKKKONUMONUMGGÖSTERGECÝÖSTERGECÝVEVE K

KULLANIMULLANIMÝÝHTÝYACIHTÝYACI-251 3. B

3. BELLEKELLEKKKONUMONUMGGÖSTERGECÝÖSTERGECÝ T

TANIMLAMAANIMLAMA VEVE AADRESDRESÝÝÞLEMLERÝÞLEMLERÝ-252 3.1. Bellek Konum Göstergeci

Deðiþkeniyle Ýþlemler-253 3.2. Uygulama (Adres Ýþlemleri)-253

3.2.1. Deðiþkenlerin Bellek Üzerindeki Diziliþi -254 3.2.2. Üst Adres Kesimi (Seg) -254

3.2.3. Alt Adres Kesimi (Ofs) -254 3.2.4. Tam Adres Bildirimi (Addr) -255 3.3. Uygulama (Ekrana Doðrudan Eriþim)-255

3.3.1. Tam Adres Göstergeci (Ptr) -256 3.4. Adres Komutlarý-256

- DSeg, CSeg, SSeg, Mem, MemW, MemL -256 4. B

4. BELLEKELLEKKKONUMONUMGGÖSTERGECÝYLEÖSTERGECÝYLE D

DÝNAMÝKÝNAMÝK AALANLANKKULLANIMIULLANIMI-257 4.1. Dinamik Bellek Alan Kullanýmý-257

4.1.1. Yeni Dinamik Bellek Alaný Açýlmasý (New) -257

4.1.2. Dinamik Bellek Alanýnýn Boþaltýlmasý (Dispose) -257 4.2. Dinamik Alan Komutlarý-258

- GetMem, FreeMem, MaxAvail, MemAvail -258 5. B

5. BELLEKELLEKKKONUMONUMGGÖSTERGECÝNÝNÖSTERGECÝNÝN D

DÝZÝYLEÝZÝYLE KKULLANIMIULLANIMI-258

5.1. Uygulama (Metin Editör Yönetimi)-259 6.

6. BBELLEKELLEKKKONUMONUMGGÖSTERGECÝYLEÖSTERGECÝYLEKKAYITAYITÝÝÞLEMEÞLEME-262 6.1. Uygulama (Konum Göstergeciyle

Not Listesi Yönetimi)-262 7. B

7. BAÐLIAÐLI LLÝSTELERÝSTELER(L(LINKEDINKEDLLISTSISTS))-265 8. T

8. TEKEK BBAÐLIAÐLILLÝSTELERÝSTELER(S(SINGLEINGLELLINKEDINKEDLLISTSISTS))-266 8.1. Tek Baðlý Liste Oluþturma-266

8.2. Uygulama (Tek Baðlý Liste Oluþturma ve Listeleme)-267 8.3. Uygulama (Tek Baðlý

Listede Arama ve Silme)-270 9.

9. ÇÇÝFTÝFTBBAÐLIAÐLILLÝSTELERÝSTELER(D(DOUBLEOUBLELLINKEDINKEDLLISTSISTS))-273 9.1. Çift Baðlý Listeye Yeni Düðüm Ekleme-273 9.2. Çift Baðlý Listeden Düðüm Silme-273 B

BÖLÜMÖLÜM TTARAMAARAMASSORULARIORULARI-274 P

PROGRAMLAMAROGRAMLAMASSORULARIORULARI-274

1. Ö

1. ÖZYÝNELEMELÝZYÝNELEMELÝPPROGRAMLAMAROGRAMLAMA-277 1.1. Uygulama (Üs Hesabý)-277

1.2. Özyinelemeli Modüllerin Genel Çözümü-277 1.3. Uygulama (Faktöriyel Hesabý)-278

1.4. Özyinelemeli Problemin Çözüm Adýmlarý-278 1.4.1. Verilerin Tipi -278

1.4.2. Özyinelemenin Bitiþ Þartý -278 1.4.3. Verinin Küçültme Þekli -278 1.4.4. Parçalanmýþ Veri ile

Sonucun Elde Edilmesi -279 1.5. Uygulama (Tamsayý Dizisinin

En Büyük Elemaný)-279 1.6. Uygulama (Dizi Elemanlarýný

Kaydýrmadan En Büyüðü Bulma) -280 2. Ö

2. ÖZYÝNELEMELÝZYÝNELEMELÝAALTLTPPROGRAMLARDAROGRAMLARDA D

DEÐÝÞKENLERÝNEÐÝÞKENLERÝNYYIÐITTAIÐITTASSAKLANMASIAKLANMASI-281 2.1. Uygulama (Hanoi Kulelerinde Yer Deðiþimi)-281 2.2. Uygulama (Bir Kümenin Permutasyonlarý)-283 B

BÖLÜMÖLÜM TTARAMAARAMASSORULARIORULARI-286 P

PROGRAMLAMAROGRAMLAMASSORULARIORULARI-286

BÖLÜM-11 ÖZYÝNELEME (RECURSION)-275

BÖLÜM-10 BELLEK KONUM

GÖSTERGECÝ (POINTER)-249

Ýçindekiler

(14)

1. E

1. EKLEYEREKKLEYEREKSSIRALAIRALA(I(INSERTIONNSERTION SSORTORT))-290 1.1. Ekleyerek Sýralama Prosedürü-290 1.2. Ekleyerek Sýrala Etkinlik Raporu-290 2. K

2. KABARCIKABARCIK SSIRALAIRALA(B(BUBBLEUBBLESSORTORT))-290 2.1. Kabarcýk Sýralama Prosedürü-291 2.2. Uygulama (Metin

Dosyasýnýn Karakter Frekansý)-291 2.3. Kabarcýk Sýrala Etkinlik Raporu-294 3. S

3. SEÇEÇ SSIRALAIRALA(S(SELECTIONELECTIONSSORTORT))-294 3.1. Seç Sýrala Prosedürü-294 3.2. Uygulama (Metin Dosyasý Kelimelerini Sýralama)-294 3.3. Seç Sýrala Etkinlik Raporu-298

3.4. Seç Sýrala Metodunun Özyineli Prosedürü-298 4. Ý

4. ÝKÝLÝKÝLÝBBÖLEREKÖLEREKSSIRALAIRALA(S(SHELLHELLSSORTORT))-298 4.1. Ýkili Bölerek Sýralama Prosedürü-299 4.2. Ýkili Bölerek Sýralama Etkinlik Raporu-299 5. H

5. HIZLIIZLISSIRALAIRALA(Q(QUICKUICKSSORTORT))-299 5.1. Hýzlý Sýralama Prosedürü-300

5.2. Uygulama (Öðrenci Not Listesi Sýralamalarý)-300 5.3. Hýzlý Sýrala Etkinlik Raporu-304

B

BÖLÜMÖLÜMTTARAMAARAMASSORULARIORULARI-304 P

PROGRAMLAMAROGRAMLAMASSORULARIORULARI-304

1. S

1. SIRALIIRALIAARAMARAMA (L(LINEARINEARSSEARCHEARCH))-307 1.1. Sýralý Arama Fonksiyonu-307 1.2. Sýralý Arama Etkinlik Raporu-308 2. Ý

2. ÝKÝLÝKÝLÝAARAMARAMA(B(BINARYINARYSSEARCHEARCH))-308 2.1. Ýkili Arama Fonksiyonu-308 2.2. Uygulama (Öðrenci Not

Dosyasýnda Ýkili Arama)-308 2.3. Ýkili Arama Etkinlik Raporu-311

2.4. Ýkili Arama Metodunun Özyineli Fonksiyonu-311 B

BÖLÜMÖLÜMTTARAMAARAMASSORULARIORULARI-312 P

PROGRAMLAMAROGRAMLAMASSORULARIORULARI-312

1. K

1. KESMELERÝNESMELERÝN KKULLANIMIULLANIMI-315

1.1. Kesmelerde Yazmaç Kullanýmý-315

2. F

2. FAREAREKKESMELERÝESMELERÝ-317 2.1 Uygulama (Fare Ýþlemleri

Prosedür ve Fonksiyonlarý)-317 2.2 Uygulama (Fare ile

Dikdörtgen ve Daire Çizdirme)-319 2.2.1. Programa Dosya

Dahil Edilmesi ({$I DosyaAdý}) -321 2.2.2. Farenin Mevcut Konumunu Alma -322 2.2.3. Fareyle Ara Dikdörtgenler Çizimi -322 2.2.4. Daire Olarak Otuzikigen Çizimi -322 2.2.5. Menü Seçenekleri Çizimi -322 2.2.6. Farenin Sol Tuþuna

Basýldýðý Sürece Bekle -323 3. S

3. SHIFTHIFTBBAYRAKLARIAYRAKLARI-323

3.1. Uygulama (Shift Bayraklarýnýn Durum Kontrolü)-323

3.1.1. Simgesel (Assembly) Kod Ekleme -324 3.1.2. Saða ve Sola Kaydýrma

Operatörleri (Shr, Shl)-324 3.1.3. Tamsayýnýn 1 ile And

Ýþlemine Tabi Tutulmasý-325 4. K

4. KESMENÝNESMENÝNDDÝÐERÝÐERKKOMUTLARIOMUTLARI-325 - GetIntVec, MsDos, SetIntVec -325 B

BÖLÜMÖLÜMTTARAMAARAMASSORULARIORULARI-326 P

PROGRAMLAMAROGRAMLAMASSORULARIORULARI-326

1. A

1. ASCIISCIITTABLOABLO-329 2. A

2. AYRILMIÞYRILMIÞKKELÝMELERELÝMELERVEVESSTANDARTTANDARTÝÝFADELERFADELER-330 3. D

3. DÝÐERÝÐERSSTANDARTTANDARTKKOMUTLAROMUTLAR-330 4. C

4. CRTRTKKÜTÜPHANESÝNÝNÜTÜPHANESÝNÝN DDÝÐERÝÐERKKOMUTLARIOMUTLARI-331 5. D

5. DOSOSKKÜTÜPHANESÝNÝNÜTÜPHANESÝNÝNDDÝÐERÝÐERKKOMUTLARIOMUTLARI-332 5.1. Tarih ve Saat Komutlarý-332

5.2. Disk Durum Komutlarý-333 5.3. Dosya Ýþleme Komutlarý-333 5.4. Ýþletim Komutlarý-335 6. P

6. PRINTERRINTER KKÜTÜPHANESÝÜTÜPHANESÝ-336 7. K

7. KÜTÜPHANEÜTÜPHANEOOLUÞTURMALUÞTURMA-336

7.1. Kütüphane Baþlýðý (Unit Name)-337 7.2. Tanýmlama Kesimi (Interface)-337

7.3. Gerçekleþtirim Kesimi (Implementation)-337 7.4. Ýlk Ýfadeler (Initialization)-337

8. F

8. FORWARDORWARD(P(PROCEDUREROCEDUREDDIRECTIVEIRECTIVE))-337 9. T

9. TURBOURBO PPASCALASCALHHATAATAMMESAJLARIESAJLARI-338

BÖLÜM-15 EKLER (APPENDIX)-327

BÖLÜM-14 KESMELER (INTERRUPTS)-313

BÖLÜM-13 ARAMA (SEARCHING)-305

(15)

BÖLÜM

1

PROGRAM GELÝÞTÝRME

(PROGRAMMING)

(16)

BÖLÜM

1

PROGRAM GELÝÞTÝRME

(PROGRAMMING)

1. V

1. VERÝERÝ ÝÝÞLEMEÞLEME (D(DATATAA PPROCESROCESSINGSING)) 2. V

2. VERÝERÝ ÝÝÞLEMEÞLEME TTARÝHÇESÝARÝHÇESÝ 3. B

3. BÝLGÝSAÝLGÝSAYARDYARDAA VVERÝERÝ ÝÝÞLEMEÞLEME VEVE SSAKLAMAAKLAMA

3.1. Ýkilik Sayý Düzeni (Binary Numbers)

3.2. Onaltýlýk Sayý Düzeni (Hexadecimal Numbers)

4. B

4. BÝLGÝSAÝLGÝSAYARINYARIN GGENELENEL YYAPISIAPISI

4.1. Ana Bellek (Ram)

5. P

5. PROGRAMROGRAMGGELÝÞTÝRMEELÝÞTÝRME MMETODUETODU

5.1. Problemi Anlama

5.2. Çözüm Metodu Geliþtirme (Analiz)

5.3. Çözüm Metodunun Adýmlandýrýlmasý (Tasarým) 5.4. Programý Kodlama (Uygulama)

5.5. Programýn Testi (Test Ýþletimi)

6. P

6. PROGRAMROGRAMGGELÝÞTÝRMEDEELÝÞTÝRMEDE AAKIÞKIÞÞÞEMALARIEMALARI

6.1. Sýralý Akýþ (Sequential Flow)

6.1.1. Problem (Çember Alan ve Çevre Hesabý) 6.2. Þartlý Akýþ (Conditional Flow)

6.2.1. Problem (Üçgenin Eþkenarlýk Kontrolü) 6.3. Tekrarlý Akýþ (Repetitive Flow)

6.3.1. Problem (1’den 100’e Kadar Sayýlarýn Yazdýrýlmasý) 6.3.2. Problem (Girilen N Adet Sayýnýn Ortalamasý) 6.3.3. Problem (Girilen N Adet Sayýnýn En Büyüðü)

7. P

7. PROGRAMLAMAROGRAMLAMADDÝLLERÝÝLLERÝ

7.1. Yüksek Seviyeli Diller 7.2. Simgesel (Assembly) Dil 7.3. Makine Dili

(17)

Program Geliþtirme (Programming) Bölüm-1

Pascal ve Program Geliþtirme

3

Program geliþtirmek, günlük hayatta karþýlaþýlan problemleri çözmeye benzer. Ne kadar iyi problem çözebiliyorsanýz, o kadar iyi programlar yapa-bileceðiniz söylenebilir. Nasýlki günlük hayattaki problemleri çözmede, kýsa ve uzun metotlar vardýr; aynen öyle de programlar da kýsa ve uzun yollardan çözülebilir. Önemli olan en kýsa, en anlaþýlýr ve en hýzlý çözümü bulmaktýr.

Problemlerin çözümünde kendi düþünce sistemimiz çok önemlidir. Bir soru sorulduðunda, hiç düþünmeden kolayca cevap verebilme, insanýn hýzlý düþünebilme yeteneðinden kaynaklanýr. Ve bu hýzla cereyan eden düþünme süreci içerisinde, elbette takip edilen bir çözüm metodu vardýr. Sonra da bu metodun, bilgisayarýn anlayacaðý program kodlama kurallarýna göre uyarlanmasý gerekir. Bazen kýsa olan bir çözüm sistemi, bilgisayara uyarlandýðýnda daha uzun veya tersi olabilir.

1. V

1. V

ERÝERÝ

Ý

Ý

ÞLEMEÞLEME

(D

(D

AATTAA

P

P

ROCESSINGROCESSING

)

)

Veriler, hammadde (giriþ verileri) olarak bilgisayara sunulur. Ýþlenen bu veriler daha fay-dalý bilgiye dönüþtürülüp (veri iþleme), hazýr bir ürün (çýkýþ bilgisi) olarak takdim edilir.

2. V

2. V

ERÝERÝ

Ý

Ý

ÞLEMEÞLEME

TARÝHÇESÝ

T

ARÝHÇESÝ

Bilgisayar, donaným ve yazýlým olarak iki ana bileþenden oluþur. Donaným bilgisayarýn elle tutulan, gözle görülen fiziksel kýsmýdýr. Yazýlým ise donanýmýn verimli bir þekilde kul-lanýlmasýný saðlayan programdýr.

Önceleri hesaplamalar için, donaným olarak elin parmaklarý, fasulye taneleri veya abaküs gibi aletler kullanýlmýþtýr. Bilgi saklamak için de defter ve kalem kullanýlmýþtýr. Yazýlým olarak ise, onluk sayma sisteminde toplama, çýkarma, çarpma ve bölme gibi yöntemler geliþtirilmiþtir.

Zaman ilerledikçe çok daha fazla iþlem yapýlmasý gerekir oldu. Özellikle çarpma ve bölme iþlemleri çok vakit alýyordu. Bunun üzer-ine geçen yüzyýlda logaritma tablolarýný kulla-narak çarpma yapma mantýðý ortaya atýldý.

BÖLÜM-1

PROGRAM GELÝÞTÝRME

(PROGRAMMING)

16 x 32 a) log216=4, log232=5 b) 4+5=9, 29=512 Örnek: 16 x 32 =?

Çözüm :Logaritma tablolarý sayesinde sayýlarýn önce 2 tabanýna göre logaritma deðerleri bulunuyor (a). Bu deðerler toplanýp, sonucun ters logaritma karþýlýðýna bakýlýyor (b). Böylece çarpma iþlemleri kolaylaþýyordu.

(18)

Bu fikirler üzerine, hesaplama tablosu için gerekli donanýmlar üretildi. Ýlk olarak Napier’s bones, ardýndan da sürgülü hesap cetveli (slide rule)geliþtirildi. Bu cetvel bir asýr evveline kadar kullanýldý. Pascal, bir hesap makinesi yaptý; ama çok hata yaptýðýndan tutulmadý. 1820’de ise Charles Babbage bugünkü bilgisayarýn birçok özelliklerini içeren analitik bir makine yaptý. Bu makine, birçok karmaþýk iþlem-leri yapmak üzere programlanabiliyordu.

Bütün bu buluþlar ve fikirler bugünkü bilgisayarlarýn temellerini oluþturdu ve ilk elektronik bilgisayar 1930’da Atanasoff tarafýndan Iowa State Üniversitesinde tasarlandý. 1946’da ise Pensilvanya Üniversitesinde ENIAC ismiyle üretildi. Bu bilgisayar çok aðýr ve büyüktü. Ýlk ticari olarak satýlan bilgisayar, 1951’de çýkan UNIVAC oldu ve bu þekilde bilgisayarlarýn hýzlý geliþimi devam etti.

Yakýn zamana kadar bilgisayarlar, sayýlý kiþilerin alabileceði ve eve sýðmayacak büyüklükte olan makinelerdi; ama bugün herkes evine bir bil-gisayar alabilecek duruma gelmiþtir ve günlük hayatýnda kullanabileceði bir makine olmuþtur.

3. B

3. BÝLGÝSA

ÝLGÝSAYYARDARDAA

V

V

ERÝERÝ

Ý

Ý

ÞLEMEÞLEME VEVE

S

S

AKLAMAAKLAMA

Bilgisayarda bilgiler, 0 ve 1 kümelerinden oluþur. Bunun sebebi, bilgi-lerin elektronik devreler üzerinde ifade edilebilmesini saðlamaktýr. Bilgileri oluþturan 0 ve 1’ler, bu devreler üzerinde birbirine göre farklý voltaj seviyeleriyle temsil edilirler.

Bilgisayarýn iþleyebileceði en küçük bilgi parçasýna (0 veya 1)bit

denir. 8 bit’in bir araya gelmesiyle oluþan anlamlý en küçük bilgiye de byte

denir.

Günlük hayatta kullanýlan bilgiler 0 ve 1’lerden oluþmamaktadýr. Kullanýlan sayýlar, harfler ve resimler ilk önce bilgisayarýn anlayacaðý bilgiye, yani ikili sayý sistemine dönüþtürülür. Ýþlemlerin tümü bu sistemde yapýlýr, sonuçlar bu sistemle üretilir ve çýkýþ kullanýcýnýn anlayabileceði onluk sis-teme geri dönüþtürülür.

Bilgi dönüþümü için birçok yöntem geliþtirilmiþtir. Bu yöntemlerden ‘A’ .. ’Z’ : 65 .. 90

(19)

Program Geliþtirme (Programming) Bölüm-1

Pascal ve Program Geliþtirme

5

arasýnda deðiþir.

3.1. Ýkilik Sayý Düzeni (Binary Numbers)

Bir sayýyý ikilik düzene çevirmek için, sayý sürekli ikiye bölünür ve kalanlar tersten okunur. Örneðin, 13 sayýsýnýn ikilik düzene çevrimi yandaki gibidir:

Ýkilik düzendeki bir sayýyý onluk düzene çevirmek için, en saðdan baþlayarak rakamlar 2’nin üsleriyle çarpýlýr ve sonuçlar toplanýr.

3.2. Onaltýlýk Sayý Düzeni (Hexadecimal Numbers)

Ýkilik düzende uzun olarak ifade edilebilen bir sayý, onaltýlýk düzende çok daha kýsa gösterilebilir. Bu da anlaþýlýrlýðý

artýrýr.

4 basamaklý ikilik düzendeki bir sayý, onaltýlýk düzendeki 1 basamaklý rakama karþýlýk gelir. Ýkilik düzende 2’ye kadar 0 ve 1 rakamlarý, onluk düzende 0 ile 9 arasýndaki rakamlar, onaltýlýk düzende ise 0 ile 15 arasýn-daki rakamlar kullanýlabilir. 10 ile 15

arasýnda-ki rakamlarý temsilen tek basamaklý harfler (A .. F) kullanýlýr.

4. B

4. B

ÝLGÝSAÝLGÝSAYYARINARIN

G

G

ENELENEL

YAPISI

Y

APISI

Bilgisayarda temel olarak, giriþ birimi, çýkýþ birimi, merkezi iþlem biri-mi ve veri saklama birimleri bulunur. Veriler bilgisayara giriþ birimleri (klavye, fare,..) vasýtasýyla aktarýlýr. Ýþlenen veriler, çýkýþ birimleri (ekran, yazýcý,..) aracýlýðýyla kullanýcýya sunulur. Merkezi iþlem birimi, aritmetik, mantýk iþlemlerini ve bilgisayarýn genel yönetimini üstlenir. Veri saklamak için ana bellek ve ikincil bellek (secondary storage) adý verilen iki ayrý birim bulunur. Ana bellekte veriler bilgisayar açýk olduðu müddetçe tutulur. Disket ve sabit disk gibi ikincil bellekler ise verilerin bilgisayar kapalýyken dahi sak-landýðý birimlerdir.

Bir program sabit diskten çalýþtýrýldýðýnda ana belleðe kopyalanýr ve merkezi iþlemci (CPU-Central Processing Unit) ile olan haberleþmesi ana bellekten devam eder. Bunun sebebi, ana belleðin, sabit diske göre çok daha hýzlý eriþimli olmasýndandýr.

Bilgisayarda, iþlenecek veriler giriþ birimlerinden veya ikincil bellekten

Örnek: (FE)16= (?)2 Çözüm : (F)16=(1111)2, (E)16=(1110)2, (FE)16=(11111110)2 Örnek: (10100011)2= (?)16 Çözüm : Ýlk 4 bit, (1010)2 =(10)10 =(A)16 Sonraki 4 bit, (0011)2 =(3)10 =(3)16 =(A3)16 Örnek: (1101)2= (?)10 Çözüm :(1101)2 = 1 x 20 + 0 x 21 + 1 x 22 + 1 x 23 = 1 + 0 + 4 + 8 = 13

(20)

ana belleðe gelir. Ýþlemci bu verileri ana bellekten alýr, iþler ve sonuçlarý yeniden ana bellekte saklar. Ana bellekteki bu veriler, istenildiðinde çýkýþ bir-imlerine gönderi-lebilir. Bilgilerin uzun süre saklanmasý için ikincil bellekler kullanýlýr.

Bilgisayardaki bilgi akýþý aþaðýda olduðu gibidir:

4.1. Ana Bellek (Ram)

Ana bellek, programlama açýsýndan en önemli birimlerden biridir. Ana bellek, arka arkaya dizilmiþ milyonlarca veri hücresinden oluþur. Bu hücrelerin herbirisinin bir adresi vardýr ve bu adres vasýtasýyla doðrudan eriþilebilir. Her bir hücre bilgi içerir. Bir hücreye bilgi yazýldýðýnda eski bilgi tamamen yok olur ve bir daha elde edilemez.

Ana bellekte bilgiler, bilgisayar açýk olduðu müddetçe tutulabilir. Bu sebeple bilgiler, bilgisayar kapatýlmadan önce disket, disk gibi ikincil bellek ortamýna kaydedilmelidir.

5. P

5. P

ROGRAMROGRAM

G

G

ELÝÞTÝRMEELÝÞTÝRME

M

M

ETODUETODU

Sorulan programýn geliþtirilebilmesi için birçok aþamadan geçilmesi gerekmektedir. Bu aþamalar þu þekilde sýralanabilir:

5.1. Problemi Anlama

Bir problemin çok iyi þekilde anlaþýlmasý gerekir. Problemin çözümü için hangi verilerin elde olduðu ve istendiði iyi bilinmelidir. Ýyi bilinmeyen bir konu üzerinde program yapýlmasý isteniyorsa, evvela konunun araþtýrýlýp öðrenilmesi gerekir. Þayet problem net bir þekilde anlaþýlmaz ise, program geliþtirmenin ortasýnda deðiþikliklere gitmek çok daha zor olacaktýr.

(21)

Program Geliþtirme (Programming) Bölüm-1

Pascal ve Program Geliþtirme

7

gramlara bölmek ise, en iyi baþlangýçlardan birisidir.

5.3. Çözüm Metodunun Adýmlandýrýlmasý (Tasarým)

Çözüm metoduna iliþkin somut adýmlar belirlenir. Herbir adým kendi içinde kapalý bir noktasý kalmayýncaya kadar detaylandýrýlýr.

5.4. Programý Kodlama (Uygulama)

Belirlenen somut adýmlar, seçilen bir bilgisayar dilinin kurallarý çerçevesinde kodlanýr. Program kodlamada yapýlabilecek yazým hatalarý, dilin kurallarýna göre düzeltilir.

5.5. Programýn Testi (Test Ýþletimi)

Bir program her ne kadar bitmiþ gözükse de birçok hatalar içerebilir. Bir veri için çalýþýp, baþka bir veride yanlýþ sonuçlar üretebilir. Bu yüzden program kritik bazý uç deðerlerle test edilip, tam doðru çalýþtýðýna emin olun-malýdýr.

Çoðu yazýlým þirketleri programlarýný piyasaya sürmeden önce, den-eme sürümlerini (beta versions) belirlediði bazý kiþi ve kurumlara daðýtýr. Onlardan gelen istek ve hata bildirimlerini göz önüne alarak programlarýnýn yeni sürümlerini üretirler.

6. P

6. P

ROGRAMROGRAM

G

G

ELÝÞTÝRMEDEELÝÞTÝRMEDE

A

A

KIÞKIÞ

Þ

Þ

EMALARIEMALARI

Bu konu baþlýðý altýnda örnek problemler verilecektir. Hedef, bu prob-lemlere en kýsa ve anlaþýlýr çözümler bulmaktýr. Bu problemlerin çözümünde, yukarýda belirtilen program geliþtirme metodunun aþamalarý (analiz, tasarým, program kod ve test) takip edilecektir. Yalnýz, program kodu ve testi yerine akýþ þemasý çizilecektir.

Akýþ þemasý (flowchart), programcý tarafýndan hazýrlanan ve pro-gramýn genel görünümünü, planýný, akýþ yönünü ve sorunun çözümündeki adýmlarý kapsayan çizimsel bir gösterimdir.

Bir resim birçok kelimeden daha fazla anlam ifade eder kaidesince, akýþ þemasý programýn anlaþýlýr olmasýný saðlar. Program kodu, Ýngilizce yazýlmýþ bir metin gibi olduðundan, hatayý bulmak zorlaþabilir. Halbuki akýþ þemasýndaki çizimsel akýþ, hatayý bulmayý kolaylaþtýrýr.

Genel olarak programlarýn kod akýþý üç ana gruba ayrýlýr: 1. Sýralý Akýþ (Sequential Flow),

2. Þartlý Akýþ (Conditional Flow), 3. Tekrarlý Akýþ (Repetitive Flow).

6.1. Sýralý Akýþ (Sequential Flow)

Bütün iþlemlerin sýrayla birbirini takip ettiði akýþtýr. Daha evvelki iþlem-lere geri dönülmez ve karþýlaþtýrma yapýlmaz. Yandaki þekilde, adýmlar halinde belirtilen her bir kutuya iþlem (process) kutusu denir.

(22)

6.1.1. Problem (Çember Alan ve Çevre Hesabý)

Yarýçapý verilen çemberin alanýný ve çevresini hesaplayan program akýþýný geliþtiriniz.

Çemberin yarýçapý okunur. Alan=Pi x r2 ve Çevre=2 x Pi x r formül-leriyle hesaplanýr ve sonuçlar ekrana yazdýrýlýr.

6.2. Þartlý Akýþ (Conditional Flow)

Þartlý akýþta bir karþýlaþtýrma ifadesi vardýr. Bu ifadenin doðru olmasý durumunda bir koldan, yanlýþ olmasý durumunda diðer koldan gidilir. Þartlý yola tek yoldan girilir ve kollardaki iþlemler bittikten sonra da tek bir yolda birleþip yola devam edilir.

Karþýlaþtýrma doðruysa (E:Evet), Ýþlemler1 yapýla-caktýr. Bu adýmda pek çok iþlemler yaptýrýlabilir. Hatta

Ýþlemler1 kýsmýna yeni bir karþýlaþtýrma daha eklenebilir. 1. Çemberin yarýçapýný oku.

2. Alaný hesapla;

2.1. Yarýçap deðerinin karesini, pi sayýsý ile çarp (Alan=Pi x r2) 3. Çevresini hesapla;

3.1. Yarýçap deðerinin iki katýný pi sayýsý ile çarp (Çevre=2 x Pi x r) 4. Hesaplanan, alan ve çevre deðerlerini ekrana yazdýr

ve programý sonlandýr.

Çözümün Adýmlandýrýlmasý (Tasarým) ve Akýþ Þemasý Çözüm Metodu (Analiz)

(23)

Program Geliþtirme (Programming) Bölüm-1

Pascal ve Program Geliþtirme

9

6.2.1. Problem (Üçgenin Eþkenarlýk Kontrolü)

Üç kenarýnýn uzunluðu girilen bir üçgenin eþkenar olup olmadýðýný test edecek program akýþýný geliþtiriniz.

Üçgenin üç kenar uzunluðu okunur. 1. kenar ile 2. kenar uzunluðu

karþýlaþtýrýlýr. Bu kenarlar birbirine eþitse ve 3. kenara da eþitse, üçgen eþkenardýr. Diðer tüm durumlarda üçgen eþkenar deðildir.

6.3. Tekrarlý Akýþ (Repetitive Flow)

Þu ana kadarki bütün iþlemler sadece bir defa yapýl-maktaydý. Halbuki bilgisayarýn en büyük avantajý, ayný iþlem-leri hiç sýkýlmadan çok defa tekrar edebilmesidir.

Genel olarak üç tip tekrarlý akýþ sayýlabilir:

Birincisinde, karþýlaþtýrma doðru olduðu müddetçe iþlemler yapýlýr. Karþýlaþtýrma yanlýþ olduðunda programýn sonraki adýmýna geçilir.

Bu akýþýn iþlemler kýsmýnda, karþýlaþtýrmayý yanlýþ duru-ma getirecek bir ifade bulunduru-malýdýr. Aksi halde programýn diðer adýmlarýna geçiþ saðlanamaz.

Ýkincisinde, birincisinden farklý olarak, önce iþlemler 1. Üç kenar uzunluðunu oku.

2. 1. kenar ile 2. kenar uzunluðunu karþýlaþtýr;

2.1. 1. ve 2. kenar eþitse, birini 3. kenar ile de karþýlaþtýr; 2.1.1. Eþitse, ekrana “Üçgen eþkanardýr” yazdýr. 2.1.2. Eþit deðilse, ekrana “eþkanar deðildir” yazdýr. 2.2. 1. ve 2. kenar eþit deðilse ekrana “eþkenar deðildir” yazdýr. 3. Programý sonlandýr.

Tasarým ve Akýþ Þemasý Analiz

(24)

sonra karþýlaþtýrma yapýlýr ve karþýlaþtýrma doðru olana kadar iþlemler devam eder.

Üçüncüsünde ise iþlemler belli sayýda (N adet) tekrar eder ve sonraki iþlem adýmýna geçilir.

6.3.1. Problem (1’den 100’e Kadar Sayýlarýn Yazdýrýlmasý)

1’den 100’e kadar sýralý sayýlarý yazdýran program akýþýný geliþtiriniz. Sayma iþlemine 1 ile baþlanýr. Sayaç, ekrana yazdýrýlýr ve deðeri bir artýrýlýr. Bu iþlemlere sayaç 100’den küçük veya eþit olduðu sürece devam edilir.

Tasarým ve Akýþ Þemasý Analiz

(25)

Program Geliþtirme (Programming) Bölüm-1

Pascal ve Program Geliþtirme

11

Sayaç önce 1 deðerini alýr ve karþýlaþtýrma iþlemi yapýlýr. Karþýlaþtýrma doðru olduðundan ekrana sayacýn deðeri yazýlýr ve deðeri bir artýrýlýr. Sayaç 2 olduðunda karþýlaþtýrma doðru olup ekrana yazýlýr. Bu þekilde sayaç artýrýlarak deðeri 101 olana kadar devam eder.

6.3.2. Problem (Girilen N Adet Sayýnýn Ortalamasý)

Girilen N sayýnýn ortalamasýný bulacak program akýþýný geliþtiriniz. Analiz

Akýþ Testi

1. Sayacý 1’e eþitleyerek, sayma iþlemini baþlat.

2. Sayaç ile 100’ü karþýlaþtýr. Küçük veya eþit olduðu sürece; 2.1. Sayacý ekrana yazdýr.

2.2. Sayacý bir artýr. 3. Programý sonlandýr.

(26)

Örnek Toplam

MOV AX, Sayi1 MOV BX, Sayi2 ADD AX, BX MOV Toplam, AX

Kaç adet sayý girileceði (N) okunur. 1’den N’e kadar sayýlar okunur ve toplama eklenir. En sonunda bulunan toplam deðeri, N’e bölünerek orta-lama elde edilir.

N adet sayýnýn toplanmasý, bir havuzu N adet musluðun doldurmasý-na benzetilebilir. Her sayý toplam havuzudoldurmasý-na ilave edilir.

6.3.3. Problem (Girilen N Adet Sayýnýn En Büyüðü)

N adet girilen sayý içinden en büyüðünü bulacak programý geliþtiriniz.

Kaç adet sayý girileceði (N) okunur. Ýlk sayý okunur ve bu sayý en büyük sayý olarak kabul edilir. Sayaç 1’e eþitlenir ve döngüye baþlanýr. Döngü içinde bir sayý okunur ve eski belirlenen en büyük sayýdan büyükse bu sayý en büyük olarak kabul edilir. Sayaç bir artýrýlýr ve N’den büyük olana kadar döngüye devam edilir. Döngü bitiminde en büyük sayý deðeri ekrana

Analiz Akýþ Testi

1. Kaç sayý okunacaðýný (N) al. 2. Toplamý sýfýrla.

3. N defa aþaðýdaki iþlemleri tekrarla (Sayaç <-- 1..N); 3.1. Bir sayý oku (Sayýk).

3.2. Okunan sayýyý toplama ekle (Toplam <-- Toplam + Sayýk). 4. Toplamý N’e bölerek ortalamayý hesapla

(Ortalama <-- Toplam / N).

5. Ortalamayý ekrana yazdýr ve programý sonlandýr. Tasarým ve Akýþ Þemasý

Gambar

Grafik ortamýna ge-çiþte kullanýlan GrfSurucu grafik sürücüsü,
Grafik ortamýnýn baþlatýlmasý veya diðer grafik komutlarýnýn iþletilmesi neticesi oluþabilecek hata kodunu tamsayý olarak üretir.

Referensi

Dokumen terkait

Dari Grafik 3 dapat dilihat hubungan kuat tarik lentur pada umur beton 28 hari memiliki nilai terbesar pada presentase tailing 0% atau pada campuran beton

Faktor-Faktor Penyebab Terlambat Sekolah, [Online], ( http://mediainformasiterkin.blogspot.com/2013/08/normal-0-false-false- false-en-us-x-none.html ) diakses akses tanggal

Dari Grafik 3 dapat dilihat hubungan kuat tarik lentur pada umur beton 28 hari memiliki nilai terbesar pada presentase tailing 0% atau pada campuran beton

Pendugaan aksi gen (Tabel 2) diketahui nilai skewnees &gt; 0 yang menunjukkan grafik sebaran tidak normal artinya aksi gen aditif dengan pengaruh epistasis

A1 where p is the oxygen partial pressure in the lens-corneal system, t is time and x is the coordinate for normal cornea, with x=0 in the interface between the anterior chamber and

Hasil pengujian Total Plate Count TPC growol wijen pada hari ke 0 masih memenuhi standar mutu BPOM RI yakni maksimum 1 x 105 koloni/g namun hari ke 2 penyimpanan growol wijen sudah

Hasil pengujian Total Plate Count growol coklat pada hari ke-0 masih memenuhi standar mutu BPOM HK.00.06.1.52.4011 yakni maksimum 1 x 104 koloni/g namun pada hari ke-2 penyimpanan

0 Sama sekali tidak menjawab 1 Dapat menggambar grafik dari setiap persamaan dua variabel pada SPtLDV tetapi titik potong terhadap sumbu x dan sumbu y pada tabel tidak tepat 2 Dapat