Algoritma

66 

Loading....

Loading....

Loading....

Loading....

Loading....

Teks penuh

(1)

Algoritma ve Programlamaya Giriş

Algoritma ve Programlamaya Giriş 11 Öğr. Gör. Mustafa AKSUÖğr. Gör. Mustafa AKSU

DERS NOTLARI

DERS NOTLARI

Ders Adı

Ders Adı : Algoritma ve Programlamaya Giriş: Algoritma ve Programlamaya Giriş

Kısa Ders Özeti Kısa Ders Özeti

Bu dersin I. Bölümünde Programlama ile ilgili kavramlar problem çözme yöntemleri Bu dersin I. Bölümünde Programlama ile ilgili kavramlar problem çözme yöntemleri Algoritma, akış diyagramları anlatılıp diğer bölümlerde ise problemlerin çözümlerinin bir dil Algoritma, akış diyagramları anlatılıp diğer bölümlerde ise problemlerin çözümlerinin bir dil (Pascal) kullanılarak çözülmesi için gereken komutlar anlatılmıştır.

(Pascal) kullanılarak çözülmesi için gereken komutlar anlatılmıştır.

Dersin Hedefleri Dersin Hedefleri

Bu ders sonunda öğrenciler, programlama mantığı, problemlere çözüm yaklaşımı, bir dil Bu ders sonunda öğrenciler, programlama mantığı, problemlere çözüm yaklaşımı, bir dil kullanarak program yazma gibi becerileri kazanacaktır. Ayrıca Pascal programlama kullanarak program yazma gibi becerileri kazanacaktır. Ayrıca Pascal programlama dilinin komutlarını ve bu

dilinin komutlarını ve bu dilde programlar geliştirmeyi öğreneceklerdir.dilde programlar geliştirmeyi öğreneceklerdir.

Dersin Đşlenmesi Dersin Đşlenmesi

Bu ders haftada 4 saat olup 3 saat teorik 1 saat uygulamadan oluşmaktadır. Teorik derslerde Bu ders haftada 4 saat olup 3 saat teorik 1 saat uygulamadan oluşmaktadır. Teorik derslerde konular sınıfta anlatılıp uygulama saatinde ise bilgisayar laboratuarlarında uygulama konular sınıfta anlatılıp uygulama saatinde ise bilgisayar laboratuarlarında uygulama yapılacaktır.

yapılacaktır.

Sınav ve derse devam Sınav ve derse devam

Bu ders için bir vize ve bir final olmak üzere toplam iki teorik sınav yapılmaktadır. Ortalama Bu ders için bir vize ve bir final olmak üzere toplam iki teorik sınav yapılmaktadır. Ortalama hesaplanırken

hesaplanırken Vizenin %40 Vizenin %40 ‘ı f‘ı finalin %60’ı inalin %60’ı alınmaktadır.alınmaktadır.

Derse her öğrenci %70 oranında devam etmek zorundadır. Yani 14 haftalık eğitim döneminde Derse her öğrenci %70 oranında devam etmek zorundadır. Yani 14 haftalık eğitim döneminde her öğrenci en az 10 hafta derslere katılmak zorundadır.

(2)

1. BĐLGĐSAYAR PROGRAMLAMAYA GĐRĐŞ

1. BĐLGĐSAYAR PROGRAMLAMAYA GĐRĐŞ

Đnsanlar her zaman düşünür ve problem çözerler. Birçok problem, az ya da hiç Đnsanlar her zaman düşünür ve problem çözerler. Birçok problem, az ya da hiç düşünülmeden çözülebilir.

düşünülmeden çözülebilir. Her gün evden

Her gün evden çıkarken ne giyilmelidir? Bunun için muhtemelen pencereden dışarıya bakılır.çıkarken ne giyilmelidir? Bunun için muhtemelen pencereden dışarıya bakılır. Hava yağmurlu ise mevsim gereklerine göre giyinmenin yani sıra dışarıya çıkarken bir de Hava yağmurlu ise mevsim gereklerine göre giyinmenin yani sıra dışarıya çıkarken bir de semsiye alınması gerekir. Hava güneşli ve sıcak ise o takdirde daha ince giyinilerek dışarıya semsiye alınması gerekir. Hava güneşli ve sıcak ise o takdirde daha ince giyinilerek dışarıya çıkılır. Böylece problemin çözümü

çıkılır. Böylece problemin çözümü kendiliğinden oluşturulan bir kararla sağlanır.kendiliğinden oluşturulan bir kararla sağlanır.

Yukarıdaki basit örnekte yapılan is, önce problemin belirlenmesi ve sonra problemin Yukarıdaki basit örnekte yapılan is, önce problemin belirlenmesi ve sonra problemin tanımından yola çıkarak çözüm için değişik alternatiflerin değerlendirilmesidir.

tanımından yola çıkarak çözüm için değişik alternatiflerin değerlendirilmesidir.

Bilgisayar programlaması sırasında izlenebilecek birçok yol ve yöntem vardır. Bilgisayar Bilgisayar programlaması sırasında izlenebilecek birçok yol ve yöntem vardır. Bilgisayar programcısının probleme ilişkin çözümü ortaya çıkarabilmesi için problem çözümü ile ilgili programcısının probleme ilişkin çözümü ortaya çıkarabilmesi için problem çözümü ile ilgili bilgileri bilmesi gerekir. Bilgisayar programlamasında genel olarak belirli kalıp ve kurallara bilgileri bilmesi gerekir. Bilgisayar programlamasında genel olarak belirli kalıp ve kurallara uyulur. Bir bilgisayar yazılımının oluşturulması sırasında aşağıda sıralanan ana adımlara uyulur. Bir bilgisayar yazılımının oluşturulması sırasında aşağıda sıralanan ana adımlara uyulur.

uyulur.

** Problemin tanımıProblemin tanımı

** Çözüm yönteminin belirlenmesiÇözüm yönteminin belirlenmesi ** Programın kodlanmasıProgramın kodlanması

** Programın çalışır duruma getirilmesiProgramın çalışır duruma getirilmesi ** Belgeleme ve Belgeleme ve güncelleştirmegüncelleştirme

Problemin tanımı:

Problemin tanımı: Problemin normal yazı diliyle tanımlanması işlemleriniProblemin normal yazı diliyle tanımlanması işlemlerini kapsamaktadır. Problem çözümüne ilişkin iyi bir program yapabilmek için, problemin iyi bir kapsamaktadır. Problem çözümüne ilişkin iyi bir program yapabilmek için, problemin iyi bir şekilde tanımlanması gerekir.

şekilde tanımlanması gerekir.

Çözüm Yönteminin Belirlenmesi:

Çözüm Yönteminin Belirlenmesi: Bu adımda çözümün genel yaklaşımı, temelBu adımda çözümün genel yaklaşımı, temel giriş/çıkışlar belirlenir ve problem çözümü adim adım program akis diyagramlarıyla gösterilir. giriş/çıkışlar belirlenir ve problem çözümü adim adım program akis diyagramlarıyla gösterilir. Programın kodlanması:

Programın kodlanması: Program ayrıntılı olarak tanımlanıp çözüm yolları açıkçaProgram ayrıntılı olarak tanımlanıp çözüm yolları açıkça belirtildikten sonra program kodlama çalışmalarına başlanabilir. Programın bastan sona belirtildikten sonra program kodlama çalışmalarına başlanabilir. Programın bastan sona yapısal bir düzende hazırlanması ve uygun bir programlama dili seçilmesi seçim işleminin ilk yapısal bir düzende hazırlanması ve uygun bir programlama dili seçilmesi seçim işleminin ilk aşamasını oluşturur.

aşamasını oluşturur.

Programın çalışır Hale Getirilmesi:

Programın çalışır Hale Getirilmesi: Programın kodlanması sırasında yapılan imla hataları,Programın kodlanması sırasında yapılan imla hataları, kodlama ve mantık hatalarının giderilmesi işlemlerini kapsar. Đyi bir bilgisayar programının kodlama ve mantık hatalarının giderilmesi işlemlerini kapsar. Đyi bir bilgisayar programının doğruluğundan emin olmak için defalarca test edilmiş olması gerekmektedir.

doğruluğundan emin olmak için defalarca test edilmiş olması gerekmektedir. Belgeleme ve güncelleştirme

Belgeleme ve güncelleştirme:: Oluşturulan bir yazılımı, sadece o yazılımı geliştirenOluşturulan bir yazılımı, sadece o yazılımı geliştiren kişilerin kullanabilmesi gibi bir kısıtlamanın önüne geçmek için ayrıntılı referanslar kişilerin kullanabilmesi gibi bir kısıtlamanın önüne geçmek için ayrıntılı referanslar hazırlanmalı ve programla ilgili bilgiler verilmelidir.

hazırlanmalı ve programla ilgili bilgiler verilmelidir.

Bir yazılımda, o yazılımı kullanan kişi veya kuruluşların yeni gereksinimleri ve değişen Bir yazılımda, o yazılımı kullanan kişi veya kuruluşların yeni gereksinimleri ve değişen koşullar nedeniyle değişiklikler yapılması gerekli olabilir. Bu değişikliklere güncelleme adi koşullar nedeniyle değişiklikler yapılması gerekli olabilir. Bu değişikliklere güncelleme adi verilir. Đyi bir programda bulunması gereken özellikler arasında güncelleşebilme ön sıralarda verilir. Đyi bir programda bulunması gereken özellikler arasında güncelleşebilme ön sıralarda yer almaktadır.

(3)

Algoritma ve Programlamaya Giriş

Algoritma ve Programlamaya Giriş 22 Öğr. Gör. Mustafa AKSUÖğr. Gör. Mustafa AKSU

1. BĐLGĐSAYAR PROGRAMLAMAYA GĐRĐŞ

1. BĐLGĐSAYAR PROGRAMLAMAYA GĐRĐŞ

Đnsanlar her zaman düşünür ve problem çözerler. Birçok problem, az ya da hiç Đnsanlar her zaman düşünür ve problem çözerler. Birçok problem, az ya da hiç düşünülmeden çözülebilir.

düşünülmeden çözülebilir. Her gün evden

Her gün evden çıkarken ne giyilmelidir? Bunun için muhtemelen pencereden dışarıya bakılır.çıkarken ne giyilmelidir? Bunun için muhtemelen pencereden dışarıya bakılır. Hava yağmurlu ise mevsim gereklerine göre giyinmenin yani sıra dışarıya çıkarken bir de Hava yağmurlu ise mevsim gereklerine göre giyinmenin yani sıra dışarıya çıkarken bir de semsiye alınması gerekir. Hava güneşli ve sıcak ise o takdirde daha ince giyinilerek dışarıya semsiye alınması gerekir. Hava güneşli ve sıcak ise o takdirde daha ince giyinilerek dışarıya çıkılır. Böylece problemin çözümü

çıkılır. Böylece problemin çözümü kendiliğinden oluşturulan bir kararla sağlanır.kendiliğinden oluşturulan bir kararla sağlanır.

Yukarıdaki basit örnekte yapılan is, önce problemin belirlenmesi ve sonra problemin Yukarıdaki basit örnekte yapılan is, önce problemin belirlenmesi ve sonra problemin tanımından yola çıkarak çözüm için değişik alternatiflerin değerlendirilmesidir.

tanımından yola çıkarak çözüm için değişik alternatiflerin değerlendirilmesidir.

Bilgisayar programlaması sırasında izlenebilecek birçok yol ve yöntem vardır. Bilgisayar Bilgisayar programlaması sırasında izlenebilecek birçok yol ve yöntem vardır. Bilgisayar programcısının probleme ilişkin çözümü ortaya çıkarabilmesi için problem çözümü ile ilgili programcısının probleme ilişkin çözümü ortaya çıkarabilmesi için problem çözümü ile ilgili bilgileri bilmesi gerekir. Bilgisayar programlamasında genel olarak belirli kalıp ve kurallara bilgileri bilmesi gerekir. Bilgisayar programlamasında genel olarak belirli kalıp ve kurallara uyulur. Bir bilgisayar yazılımının oluşturulması sırasında aşağıda sıralanan ana adımlara uyulur. Bir bilgisayar yazılımının oluşturulması sırasında aşağıda sıralanan ana adımlara uyulur.

uyulur.

** Problemin tanımıProblemin tanımı

** Çözüm yönteminin belirlenmesiÇözüm yönteminin belirlenmesi ** Programın kodlanmasıProgramın kodlanması

** Programın çalışır duruma getirilmesiProgramın çalışır duruma getirilmesi ** Belgeleme ve Belgeleme ve güncelleştirmegüncelleştirme

Problemin tanımı:

Problemin tanımı: Problemin normal yazı diliyle tanımlanması işlemleriniProblemin normal yazı diliyle tanımlanması işlemlerini kapsamaktadır. Problem çözümüne ilişkin iyi bir program yapabilmek için, problemin iyi bir kapsamaktadır. Problem çözümüne ilişkin iyi bir program yapabilmek için, problemin iyi bir şekilde tanımlanması gerekir.

şekilde tanımlanması gerekir.

Çözüm Yönteminin Belirlenmesi:

Çözüm Yönteminin Belirlenmesi: Bu adımda çözümün genel yaklaşımı, temelBu adımda çözümün genel yaklaşımı, temel giriş/çıkışlar belirlenir ve problem çözümü adim adım program akis diyagramlarıyla gösterilir. giriş/çıkışlar belirlenir ve problem çözümü adim adım program akis diyagramlarıyla gösterilir. Programın kodlanması:

Programın kodlanması: Program ayrıntılı olarak tanımlanıp çözüm yolları açıkçaProgram ayrıntılı olarak tanımlanıp çözüm yolları açıkça belirtildikten sonra program kodlama çalışmalarına başlanabilir. Programın bastan sona belirtildikten sonra program kodlama çalışmalarına başlanabilir. Programın bastan sona yapısal bir düzende hazırlanması ve uygun bir programlama dili seçilmesi seçim işleminin ilk yapısal bir düzende hazırlanması ve uygun bir programlama dili seçilmesi seçim işleminin ilk aşamasını oluşturur.

aşamasını oluşturur.

Programın çalışır Hale Getirilmesi:

Programın çalışır Hale Getirilmesi: Programın kodlanması sırasında yapılan imla hataları,Programın kodlanması sırasında yapılan imla hataları, kodlama ve mantık hatalarının giderilmesi işlemlerini kapsar. Đyi bir bilgisayar programının kodlama ve mantık hatalarının giderilmesi işlemlerini kapsar. Đyi bir bilgisayar programının doğruluğundan emin olmak için defalarca test edilmiş olması gerekmektedir.

doğruluğundan emin olmak için defalarca test edilmiş olması gerekmektedir. Belgeleme ve güncelleştirme

Belgeleme ve güncelleştirme:: Oluşturulan bir yazılımı, sadece o yazılımı geliştirenOluşturulan bir yazılımı, sadece o yazılımı geliştiren kişilerin kullanabilmesi gibi bir kısıtlamanın önüne geçmek için ayrıntılı referanslar kişilerin kullanabilmesi gibi bir kısıtlamanın önüne geçmek için ayrıntılı referanslar hazırlanmalı ve programla ilgili bilgiler verilmelidir.

hazırlanmalı ve programla ilgili bilgiler verilmelidir.

Bir yazılımda, o yazılımı kullanan kişi veya kuruluşların yeni gereksinimleri ve değişen Bir yazılımda, o yazılımı kullanan kişi veya kuruluşların yeni gereksinimleri ve değişen koşullar nedeniyle değişiklikler yapılması gerekli olabilir. Bu değişikliklere güncelleme adi koşullar nedeniyle değişiklikler yapılması gerekli olabilir. Bu değişikliklere güncelleme adi verilir. Đyi bir programda bulunması gereken özellikler arasında güncelleşebilme ön sıralarda verilir. Đyi bir programda bulunması gereken özellikler arasında güncelleşebilme ön sıralarda yer almaktadır.

(4)

Şekil 1.1.

Şekil 1.1. Yazılım oluşturma evrelerini şematik olarak özetlemektedirYazılım oluşturma evrelerini şematik olarak özetlemektedir..

Şekil 1.1 Yazılım oluşturma evreleri Şekil 1.1 Yazılım oluşturma evreleri

1.1. Bilgisayar Programcılığı

1.1. Bilgisayar Programcılığı

(5)

Algoritma ve Programlamaya Giriş 4 Öğr. Gör. Mustafa AKSU işletilmek, çalıştırılmak üzere tasarımlanmış dosyalar yazılım kapsamına girer. Yazılım programlama dilleri ile tasarlanır ve yazılır. Programlama dilleri, bilgisayarınızın donanımını (ekran kartı,ses kartı,modem...) sizin en rahat biçimde kullanabileceğiniz düzeye getirmeye çalışır. Yani bilgisayarın o soğuk 1010110 gibi rakamlarını sizin zevkle kullandığınız programlara, işletim sistemlerine, oyunlara çevirir.

Örneğin kullanılmakta olan Windows işletim sistemi onbinlerce sayfadan, milyonlarca bilgisayar kodunun bir araya gelmesinden oluşur. Đşte işin tüm zorluğu, o kodların arasında dolaşan, hata mesajlarını günlerce o kodları gözden geçirerek arayan, sandalye tepesinde saatlerce aynı ekrana bakarak ilginç görüntüler sergileyen programcıların üzerindedir...

Bilgisayar programcıları işini zevkle yapan ve işini bir hobi edinmiş insanlardan oluşur. Aksi halde yoğun konsantrasyon ve sabır isteyen bu işi yapmak aşırı zorlaşır. Programlama dilleri kendi aralarında sınıflara ayrılmışlardır. Đnsanın en zor öğrenebileceği, anlayabileceği yani 1100101 gibi makina kodlarına yakın diller en alt seviyeli programlama dilleri, insanın en kolay anlayıp kullanabileceği ve insan diline yakın özellikler gösteren diller ise en yüksek seviyeli programlama dilleridir. Şimdi bu sınıflandırmaya örnekler verelim;

1 ) Çok yüksek seviyeli diller: VisualBasic, Acces, Foxpro... 2 ) Yüksek seviyeli diller: Pascal,Basic,Fortran...

3 ) Orta seviyeli diller: C,C++,ADA... 4 ) Düşük seviyeli diller: Assembly...

5 ) Makina dilleri: Bilgisayarın çalışma dilleri 1 ve 0'lardan oluşur... Bu dillerin kullanıldığı alanlara örnek verirsek;

1 ) Bilim ve Mühendislikte: Pascal,C,C++,Fortran...

2 ) Veritabanı Programcılığında: Dbase,Acces,Foxpro,Sql... 3 ) Yapay Zeka Kullanımında:Prolog,Lisp...

4 ) Sistem Programcılığında: C,C++ ve sembolik makina dilleri...

Bir bilgisayar programı nasıl yazılır? Bir yazılım değişik dillerle oluşturulabilir fakat izlenen yöntemler genelde birbirine benzer. Örneğin Algoritma... Algoritma, elimizdeki sorunun çözümüne gidebilmek için tasarlanan yollar, yöntemlerdir. Örneğin bir arkadaşınıza daha önce gitmediği bir yerdeki bir postaneyi tarif edeceksiniz. Bunun için anlatımda genelden özele giden bir yol izlersiniz. Önce gideceği semti sonra caddeyi sonra postanenin olduğu yönü tarif  eder son olarak da kolay bulması için postanenin çevresindeki göze batan özelliklerden bahsedersiniz. Đşte bu yaptıklarınız bir algoritmadır. Ve amacınız arkadaşınıza postaneyi bu algoritma yardımıyla tarif etmektir... Bilgisayar programlama dilleri de programcılıkta bunun gibi yöntemler kullanarak çözüme gider. Algoritmanın uzunluğu kullanılan programlama dilinin seviyesi ve problemin karmaşıklığı ile doğru orantılıdır. Yapılan algoritma ve tasarımdan sonra yazılım aşamasına gelinir ve bu aşamada yapılacak programın kullanım ömrü, programın kullanım düzeyi ve hangi amaçla kullanılacağı gibi soruların cevaplarına bakılarak programlama dili seçilir. Dil seçimi bazı kriterlere göre yapılmaktadır, örneğin kısa sürmesi ve görsel tasarım içermesi, veritabanı iletişimi yoğun kullanılması gereken bir program yapmamız gerekiyor olsun. Bu durumda Assembly dili ile yola çıktığımızda bahsedilen proje birkaç kişilik deneyimli bir programcı grubu ile birkaç yıl alır. C ile iki programcı aynı işi üç dört ayda VisualBasic veya Delphi ile bir programcı bahsedilen işi bir iki aya yakın bir sürede yapabilir.

Başka bir açıdan örnek verirsek örneğin bir ekran kartı programlamamız gerekiyor ve bu kartın driver'ını ( sürücüsünü ) biz yazacağız. Bu durumda bu işi VB veya Delphi ile yapmamız imkansızdır, kullanmamız gereken diller öncelikle Assembly ve C/C++ olmalıdır.

Evet, programlama dillerinin kendi alanları vardır ve her dil kendi alanında kullanıldığı sürece başarılı ve etkili kullanılmış olur. Buraya kadar anlatılanı özetlersek:

Bir bilgisayar programı yazmak için belli aşamalar vardır ve bu aşamalar geçildiğinde kodlamaya başlanabilir.

(6)

Bunlar:

1 ) Analiz 2 ) Algoritma 3 ) Dil Seçimi 4 ) Kodlama

Analiz ile gerçekleştirilmek istenen proje tasarımlanır ve parametreleri araştırılır.

Algoritma ile adımlar tayin edilir. Dil seçimi ile en uygun programlama dili seçilir. Ve kodlamaya başlanır.

1.1.1 Problem Çözme ve Algoritmalar 1.1 Problem Çözme

Problem çözmede, soruna hemen girişmek yerine, dikkatli ve sistematik yaklaşım ilke olmalıdır. Problem iyice anlaşılmalı ve mümkün olduğu kadar küçük parçalara ayrılmalıdır.

Descartes’in "Discourse on Method" isimli kitabında problem çözme tekniklerişu 4 madde ile özetlenir; 1. Doğruluğu kesin olarak kanıtlanmadıkça, hiçbir şeyi doğru olarak kabul etmeyin; tahmin ve önyargılardan kaçının.

2. Karşılaştığınız her güçlüğü mümkün olduğu kadar çok parçaya bölün.

3. Düzenli bir biçimde düşünün; anlaşılması en kolay olan şeylerle başlayıp yavaşyavaşdaha zor ve karmaşık olanlara doğru ilerleyiniz.

4. Olaya bakışınız çok genel, hazırladığınız ayrıntılı liste ise hiçbir şeyi dışarıda bırakmayacak kadar kusursuz ve eksiksiz olsun.

1.2 Algoritmalar

Kısaca algoritma belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir. Geniş anlamda ise algoritma, verilen herhangi bir sorunun çözümüne ulaşmak için uygulanması gerekli adımların hiç bir yoruma yer vermeksizin açık, düzenli ve sıralı bir şekilde söz ve yazı ile ifadesidir. Algoritmayı oluşturan adımlar özellikle basit ve açık olarak sıralandırılmalıdır. M.S. 9.yy daĐranlı Musaoğlu Horzumlu Mehmet (Alharezmi adını araplar takmıştır) problemlerin çözümü için genel kurallar oluşturdu. Algoritma Alharezmi'nin Latince okunuşu.

Her algoritma aşağıdaki kriterleri sağlamalıdır.

1. Girdi: Sıfır veya daha fazla değer dışarıdan verilmeli. 2. Çıktı: En azından bir değer üretilmeli.

3. Açıklık: Her işlem (komut) açık olmalı ve farklı anlamlar içermemeli. 4. Sonluluk: Her türlü olasılık için algoritma sonlu adımda bitmeli.

5. Etkinlik: Her komut kişinin kalem ve kağıt ile yürütebileceği kadar basit olmalıdır.

Not: Bir program için 4. özellik geçerli değil. işletim sistemleri gibi program sonsuza dek çalışırlar .

1.1. PROGRAM YAZMA SÜRECĐ

• Problemin farkına varmak, • Problemi analiz etmek,

(7)

Algoritma ve Programlamaya Giriş 6 Öğr. Gör. Mustafa AKSU • Programı dağıtmak.

Program :Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmışdeyimler dizisi. Bir problemi bilgisayar ile çözmek için geliştireceğimiz programın yazımında izleyeceğimiz adımlar: i) Problemin ne olduğunu kavra. Çözüm için gereksinimleri belirle.

ii) Problemin girdilerini, çıktılarını ve diğer kısıtlama ve gereksinimleri belirle ( bilgilerin girişve çıkış biçimlerinin nasıl olacağına kadar).

iii) Problemin çözümünü veren algoritmayı yaz. iv) Algoritmayı bir programla dili ile yaz.

v) Programın doğru çalışıp çalışmadığını test et. Bu testi değişik veriler (girdiler) için tekrarla. Algoritmik çözüm yöntemlerine ilk örneği günlük yaşantımızdan verelim.

Örnek 1: Örneğimiz bir insanin evden çıkıp ise giderken izleyeceği yolu ve işyerine girişinde ilk yapacaklarını adım adım tanımlamaktadır.

Çözüm 1:

Evden dışarıya çık Otobüs durağına yürü

Durakta gideceğin yöndeki otobüsü bekle Otobüsün geldiğinde otobüse bin

Biletini bilet kumbarasına at

Đneceğin yere yakınlaştığında arkaya yürü Đneceğini belirten ikaz lambasına bas Otobüs durunca in

Đşyerine doğru yürü

Is yeri giriş kapısından içeriye gir Mesai arkadaşlarınla selamlaş Is giysini giy

Đsini yapmaya basla.

Yukarıdaki örnekte görüldüğü gibi, evden ise gidişte yapılabilecek işlemler adım adım sırasıyla, kısa ve açık olarak tanımlanmaya çalışılmıştır. Yukarıdaki algoritma kişinin otobüsü kaçırma olasılığı düşünülmeden oluşturulmuştur. Kişi durağa geldiğinde bineceği otobüsü kaçırmış ise algoritmamız aşağıdaki şekilde değiştirilebilir.

Çözüm 2:

Evden dışarıya çık Otobüs durağına yürü Otobüsün saati geçmiş?

Durakta gideceğin yöndeki bir sonraki otobüsü bekle Bir sonraki otobüs gelene kadar 4. adimi uygula Otobüsün geldiğinde otobüse bin

Biletini bilet kumbarasına at

Đneceğin yere yakınlaştığında arkaya yürü Đneceğini belirten ikaz lambasına bas Otobüs durunca in

Đşyerine doğru yürü

Is yeri giriş kapısından içeriye gir Mesai arkadaşlarınla selamlaş Is giysini giy

Đsini yapmaya basla.

Her iki örnekte görüldüğü gibi sorunu çözüme götürebilmek için gerekli olan adımlar sıralı ve açık bir biçimde belirlenmiştir. Algoritmanın herhangi bir adımındaki küçük bir yanlışlık doğru çözüme ulaşmayı engelleyebilir. Bu nedenle algoritma hazırlandıktan sonra dikkatle incelenmeli ve varsa adımlardaki yanlışlıklar düzeltilmelidir.

(8)

Programlamanın temeli olan algoritma hazırlanmasında dikkat çekici bir nokta, ayni sorunu çözmek için hazırlanabilecek olası algoritma şayisinin birden çok olmasıdır. Başka deyişle, bir sorunun çözümü için birbirinden farklı birden fazla sayıda algoritma hazırlanabilir. Bu da gösteriyor ki herhangi bir problemin çözümü için birbirinden farklı yüzlerce bilgisayar programı yazılabilir.

Bir bilgisayar programı için hazırlanacak olan algoritma da ayni şekilde çözüm yolunu bilmeyen bir kişiye, çözüme ulaşmak için neler yapması gerektiği anlatılıyormuş gibi hazırlanmalı ve eksik bir nokta bırakmaksızın gerekli tüm adımları açık ve düzenli olarak içermelidir. Çözüm için kullanılacak bilgilerin nereden alınacağı, nerede saklanacağı ve çözümün program kullanıcısına nasıl ulaştırılacağı algoritma adımları arasında belirtilmelidir.

Aşağıda değişik işlemlere ilişkin algoritma örnekleri verilmiştir.

Örnek 2: Đki sayıyı toplamak için gerekli programa ait algoritmanın oluşturulması. Algoritma:

1. Birinci sayıyı gir 2. Đkinci sayıyı gir

3. Đki sayının toplamını yap 4. Toplamın değerini yaz 5. Bitir.

Bu tam bir algoritmadır. Sözcüklerin ortaya çıkaracağı yanlış anlamaların ortadan kaldırmak amacıyla semboller ve matematik dilini gerektiren bazı kısaltmalar kullanmak daha uygun olacaktır. Bir algoritma yazılırken su metot izlenmelidir:

Programda kullanılacak elemanları temsil etmek üzere uygun isimler Veya değişkenler seç.

Bazı isimlere başlangıç değeri olarak çözümün gerektirdiği uygun değerler ver. Gerekirse programa girilecek verileri düzenle.

Cebirsel notasyon ve kararlar kullanarak aritmetik işlemleri gerçekleştir. Çıkısı düzenle.

Bitir.

Yukarıda iki sayının toplanması için oluşturduğumuz algoritmayı bu yeni gereksinimlere uyarak yeniden yazalım.

Toplam adi için Z, Birinci sayı için X, Đkinci sayı için Y değerleri kullanılırsa; Algoritma: 1. X değerini gir 2. Y değerini gir 3. Z ? X+Y 4. Z' yi yaz

(9)

Algoritma ve Programlamaya Giriş 8 Öğr. Gör. Mustafa AKSU Örnek 3: Đki sayının ortalamasını bulan programa ait algoritmanın oluşturulması

Algoritma:

1. X değerini gir 2. Y değerini gir 3. Z ? X+Y 4. Ort? Z/2

5. Ort değerini yaz 6. Bitir.

Bu örnekte Ort değeri ile iki sayının ortalaması temsil edilmiştir.

Örnek 4: Beş sayının toplamını ve ortalamasını veren programa ait algoritmanın oluşturulması

Toplam adi için Top Ortalama adi için Ort Girilen sayılar için X

Arttırma için Sayaç kullanılırsa Algoritma:

1. Top ? 0, Sayaç ? 0 2. X'i gir

3. Top? Top+X

4. Sayaç ? Sayaç +1

5. Eğer Sayaç <5 ise A2'ye git 6. Ort? Top/5

7. Top ve Ort değerlerini yaz 8. Bitir.

Örnek 5: Kenar uzunlukları verilen dikdörtgenin alan hesabını yapan programa ait algoritmanın hazırlanması. Kenar uzunlukları negatif olarak girildiği durumda veri girişi tekrarlanacaktır.

Dikdörtgenin kısa kenarı : a Dikdörtgenin uzun kenarı : b Dikdörtgenin alanı: Alan

Algoritma:

1. a değerini gir

2. a<0 ise 1. adimi tekrarla 3. b değerini gir

4. b<0 ise 3. adimi tekrarla 5. Alan ? a*b

6. Alan değerini yaz 7. Bitir.

(10)

Örnek 6: Çapraz döviz kuru hesabi yapan programın algoritmasının oluşturulması. Bu algoritmanın oluşumunda veriler; 1 Amerikan dolarının TL karşılığı, hesaplanacak $ miktarı, çıkış ise verilen $'in TL karşılığı olacaktır.

Doların değeri :Doldeg Girilen Dolar miktarı :Dolar TL karşılığı :Tlkar

Algoritma:

1. Doldeg'i gir

2. Doldeg<0 ise 1. adimi tekrarla 3. Dolar'i gir

4. Dolar<0 ise 3.adimi tekrarla 5. Tlkar? Doldeg*Dolar

6. Tlkar değerini yaz 7. Bitir

Örnek 7: Verilen bir sayının faktöriyelini hesaplayan programın algoritmasının oluşturulması sayının faktöriyeli :Fak

Faktöriyel değişkeni :X Faktöriyeli hesaplanacak sayi :Y Algoritma:

1. Fak? 1, X? 0 2. Y'i gir

3. Y<0 ise 2. adimi tekrarla 4. X? X+1

5. Fak? Fak*X

6. X<Y ise 4. adıma geri dön 7. Fak değerini yaz

8. Bitir.

Bu algoritmada 1. adımda X 'e 0 ve Fak değişkenine 1 değeri atanıyor. 2. adımda Y değeri giriliyor ve 3. adımda Y değerinin 0 dan küçük bir değer olup olmadığı denetlenerek, sonuca göre gerekli komut veriliyor. 4. adımda X'in değeri 1 arttırılıyor ve 5. adımda X için Fak değeri hesaplanıyor. 6. adımda X in değerinin faktöriyeli hesaplanacak sayıdan küçük olması durumunda 4. adımdan itibaren işlemlerin tekrarlanması komutu veriliyor, X' in değerinin Yiye eşit olması durumunda işlemler tamamlanarak hesaplanan değerin yazdırılması işleminden sonra programın çalışması sona ermektedir.

1.1.2 Akış Diyagramları

Geliştirilecek olan yazılımın genel yapısının şematik gösterimine akis diyagramı adi verilir. Akis diyagramları, yazılımı oluşturacak program parçalarını ve bu parçaların birbirleri ile olan ilişkilerini belirler. Bir bilgisayar programının oluşturulmasında akis diyagramlarının hazırlanması, algoritma oluşturma aşamasından sonra gelmektedir. Bilgisayar programının

(11)

Algoritma ve Programlamaya Giriş 10 Öğr. Gör. Mustafa AKSU Akis diyagramlarında kullanılan semboller, anlamları ve kullanış amaçları aşağıdaki tabloda verilmiştir.

Tablo 1. Akış diyagramlarında kullanılan temel semboller ve anlamları

Akis diyagramının başlangıç ve bitiş yerlerini gösterir. Başlangıç simgesinden çıkış oku vardır. Bitiş simgesinde giriş oku vardır.

Dışardan veri girişi. Veri okutma işlemleri için.

 Aritmetik  işlemler ve değişik atama işlemlerinin temsil edilmesi için kullanılır.

Kontrol ve karar verme işlemlerini temsil eder.

Oklar Diyagramın akis yönünü gösterir.

Belgeye, yazıcıya, ekrana çıktı için kullanılır.

Bu sembolleri daha da çoğaltmak mümkün fakat temel olarak akış diyagramlarında bu şekiller kullanılacaktır.

Ayrıntılı bir akis diyagramı, yazılımı oluşturan işlemleri ve ilişkilerini en küçük detayına kadar belirler.

Bir bilgisayar programının geliştirilmesinde kullanılan programlama dili ne olursa olsun bu programların akis diyagramlarında genel olarak yalnız üç basit mantıksal yapı kullanılır. Bu mantıksal yapılardan en basiti sıralı yapıdır( Şekil 1.2 ). Sıralı yapı, hazırlanacak programdaki her işlemin mantık sırasına göre nerede yer alması gerektiğini vurgular. Bu yapı sona erinceye kadar ikinci bir işlem başlayamaz.

(12)

Mantıksal yapılardan ikincisi Karar Verme yapısıdır (Şekil 1.3). Programlama sırasında If...Then... Else yapısı ile tanıyacağımız bu mantıksal yapılar, birden fazla sıralı yapı seçeneğini kapsayan modüllerde, hangi şartlarda hangi sıralı yapının seçileceğini belirler.

Üçüncü mantıksal yapı çeşidini tekrarlı yapılar (Şekil 1.4) oluşturmaktadır. Bu yapılara Pascal programlama dilinde For (Şekil 1.4)  , While ve Repeat..Until yapısı adi da verilir. Şartlara göre değişik işlem gruplarının yapılmasını sağlar. Bu yapı yukarıda sözü edilen iki yapının çeşitli kombinezonların tekrarlanmasından oluşmuştur.

Söz konusu üç değişik yapı, değişik kombinezonlarda kullanılarak istenilen işlevleri yerine getirecek programlar hazırlanabilir. Programların bu üç basit yapı ile sınırlandırılması program modüllerinin daha kolay tasarlanmasını sağlar.

(13)

Algoritma ve Programlamaya Giriş 12 Öğr. Gör. Mustafa AKSU

1.1.3. Akis diyagramı Örnekleri

Bu bölümde, sözlü veya yazılı olarak oluşturduğumuz algoritmanın programa dönüştürülmesi sırasında programın çalışma sırasını da gösteren akis diyagramlarıyla ilgili örnekler aşağıda verilmiştir.

Örnek 1: Dışardan girilen bir sayıyı okuyup bu sayıyı tekrar yazdıran programın akış şemasını çiziniz.

Örnek 2: Dışardan girilen iki sayıyı toplayıp sonucu ekrana yazdıran programın akış şemasını çiziniz. Ba la Sayı’yı oku Sayı’yı Yazdır Bitir Ba la X,Y oku Toplam’ı Yazdır Bitir Toplam=X+Y

(14)

Örnek 3: Dışardan girilen iki sayıyı toplayıp bunların ortalamasını bulup toplam ve ortalama sonucunu ekrana yazdıran programın akış şemasını çiziniz.

Ba la X,Y oku Toplam ve ort’u Yazdır Bitir Toplam=X+Y Ort=toplam/2

(15)

Algoritma ve Programlamaya Giriş 14 Öğr. Gör. Mustafa AKSU Örnek 4: 1'den 100'e kadar olan sayıların toplamlarını ve ortalamalarını veren programın akış diyagramını çiziniz.

Bitir Ba la

Ortalama ,

(16)

Örnek 5: Dışardan girilen N sayısının faktöriyelini hesaplayan programın akış diyagramını çiziniz.

(17)

Algoritma ve Programlamaya Giriş 16 Öğr. Gör. Mustafa AKSU

Soru :Bir sayıyı dışarıdan okuyup tekrar ekrana yazdıran problemi üç yöntemle de (Akışdiyagramı, Algoritma, Pascal) çözünüz.

Algoritma

1. Başla

2. A sayısını oku

3. Sayıyı yazdır

4. Bitir.

AkışDiyagramı Pascal Kodu

Var

A:integer; Begin

write (‘Bir sayı girin’); readln (A);

writeln(‘Girdiginiz sayı = ‘, A); readln;

end.

Algoritma ve Programlamaya Giriş 17 Öğr. Gör. Mustafa AKSU

Soru:Dışarıdan iki sayı okuyup bunları toplayarak sonucu ekrana yazdıran problemi çözünüz.

Algoritma

1. Başla

2. X,Y sayısını oku

3. Toplam= X+Y al

4. Toplam’ı yazdır

5. Bitir.

AkışDiyagramı Pascal Kodu

Var

X,Y,Toplam:integer; Begin

write (‘Đki sayı girin’); readln (X,Y);

toplam:=X+Y;

writeln(‘Sayıların Toplamı = ‘, toplam); readln;

(18)

Algoritma ve Programlamaya Giriş 17 Öğr. Gör. Mustafa AKSU

Soru:Dışarıdan iki sayı okuyup bunları toplayarak sonucu ekrana yazdıran problemi çözünüz.

Algoritma

1. Başla

2. X,Y sayısını oku 3. Toplam= X+Y al 4. Toplam’ı yazdır 5. Bitir.

AkışDiyagramı Pascal Kodu

Var

X,Y,Toplam:integer; Begin

write (‘Đki sayı girin’); readln (X,Y);

toplam:=X+Y;

writeln(‘Sayıların Toplamı = ‘, toplam); readln;

end.

Soru: Dışarıdan iki sayı okuyup bunların aritmetik ortalamasını bulun problemin çözümü.

Algoritma

1. Başla

2. X,Y sayısını oku 3. Toplam= X+Y al 4. ort=toplam / 2 al 5. Toplam’ı ve ort’u yazdır 6. Bitir.

AkışDiyagramı Pascal Kodu

Var

X,Y,Toplam:integer; Ort:real;

Begin

write (‘Đki sayı girin’); readln (X,Y);

toplam:=X+Y; ort:=toplam / 2;

writeln(‘Sayıların Toplamı =‘ , toplam); writeln(‘Sayıların Ortalaması =‘ , ort); readln;

(19)

Algoritma ve Programlamaya Giriş 18 Öğr. Gör. Mustafa AKSU Soru: Dışarıdan iki sayı okuyup bunların aritmetik ortalamasını bulun problemin çözümü.

Algoritma

1. Başla

2. X,Y sayısını oku

3. Toplam= X+Y al

4. ort=toplam / 2 al

5. Toplam’ı ve ort’u yazdır

6. Bitir.

AkışDiyagramı Pascal Kodu

Var

X,Y,Toplam:integer; Ort:real;

Begin

write (‘Đki sayı girin’); readln (X,Y);

toplam:=X+Y; ort:=toplam / 2;

writeln(‘Sayıların Toplamı =‘ , toplam); writeln(‘Sayıların Ortalaması =‘ , ort); readln;

end.

Algoritma ve Programlamaya Giriş 19 Öğr. Gör. Mustafa AKSU

Soru: Dışarıdan bir sayı okuyup bu sayının faktöriyelini hesaplayan problemin çözümü. Algoritma

1. Başla

2. sayac=0, Faktor=1 al

3. Bir sayı oku (N)

4. sayac=sayac+1 al

5. faktor=faktor*sayac

6. Eğer sayac < N ise 4. adıma git 7. Faktor’u yazdır

8. Bitir.

AkışDiyagramı Pascal Kodu

Var

N,sayac:integer; Faktor:longint; Begin

write (‘Bir sayı girin’); readln (N); for sayac:=1 to N do faktor:=faktor*sayac ; writeln(‘Faktöriyel =‘ , faktor); readln; end.

(20)

Algoritma ve Programlamaya Giriş 19 Öğr. Gör. Mustafa AKSU Soru: Dışarıdan bir sayı okuyup bu sayının faktöriyelini hesaplayan problemin çözümü.

Algoritma

1. Başla

2. sayac=0, Faktor=1 al

3. Bir sayı oku (N)

4. sayac=sayac+1 al

5. faktor=faktor*sayac

6. Eğer sayac < N ise 4. adıma git 7. Faktor’u yazdır

8. Bitir.

AkışDiyagramı Pascal Kodu

Var

N,sayac:integer; Faktor:longint; Begin

write (‘Bir sayı girin’); readln (N); for sayac:=1 to N do faktor:=faktor*sayac ; writeln(‘Faktöriyel =‘ , faktor); readln; end.

Soru: 0-100 aralığındaki çift sayıları toplayıp ekrana yazdıran problemin çözümü Algoritma

1. Başla

2. i=0, top=0 al 3. top:=top+i al 4. i:=i+2 al ;

5. Eğer i>=100 ise 6. adıma değilse 3. adıma git 6. top değerini yaz 7. Bitir.

AkışDiyagramı Pascal Kodu

var i,top:integer; begin top:=0; for i:=1 to 100 do begin if (i mod 2=0) then top:=top+i; end;

writeln(‘sayilarin toplami = ',top); readln;

(21)

Algoritma ve Programlamaya Giriş 20 Öğr. Gör. Mustafa AKSU

Soru: 0-100 aralığındaki çift sayıları toplayıp ekrana yazdıran problemin çözümü

Algoritma

1. Başla

2. i=0, top=0 al 3. top:=top+i al 4. i:=i+2 al ;

5. Eğer i>=100 ise 6. adıma değilse 3. adıma git 6. top değerini yaz 7. Bitir.

AkışDiyagramı Pascal Kodu

var i,top:integer; begin top:=0; for i:=1 to 100 do begin if (i mod 2=0) then top:=top+i; end;

writeln(‘sayilarin toplami = ',top); readln;

end.

2. PASCAL PROGRAMLAMA D

Đ

L

Đ

YAPISI

2.1. Giri

ş

Bir Pascal programı en genel anlamda üç ayrı kısımdan oluşmuştur. Bu kısımlar bulunmaları gereken sıraya göre aşağıda verilmiştir.

Program Başlığı; {Đsteğe bağlı}

Tanımlama Bloğu; {Değişken sabit varsa} Begin

Đcra Bloğu; {Yapılacak Đşlemler} End.

Programların asıl icra bölümü son bölümüdür. Yukarıda icra bloğu olarak gösterilen bu bölüm, Pascal komut cümlelerinden oluşur. ICRA bloğu, "BEGIN" ile başlar "END." ile sona erer. Her program bloğu birden fazla "END" içerebilir. Ancak bu end deyimleri program içinde bulunan değişik blokların sonunu göstermek için kullanılır ve hiç birinin sonunda "." işareti bulunmaz. "." işareti sadece ana programın sonunu göstermek amacıyla kullanılabilir. Ana programın sonu haricindeki diğer "END" deyimlerinin sonunda ";" işareti kullanılır.

Örnek Bir Program:

(22)

2. PASCAL PROGRAMLAMA D

Đ

L

Đ

YAPISI

2.1. Giriş

Bir Pascal programı en genel anlamda üç ayrı kısımdan oluşmuştur. Bu kısımlar bulunmaları gereken sıraya göre aşağıda verilmiştir.

Program Başlığı; {Đsteğe bağlı}

Tanımlama Bloğu; {Değişken sabit varsa}

Begin

Đcra Bloğu; {Yapılacak Đşlemler}

End.

Programların asıl icra bölümü son bölümüdür. Yukarıda icra bloğu olarak gösterilen bu bölüm, Pascal komut cümlelerinden oluşur. ICRA bloğu, "BEGIN" ile başlar "END." ile sona erer. Her program bloğu birden fazla "END" içerebilir. Ancak bu end deyimleri program içinde bulunan değişik blokların sonunu göstermek için kullanılır ve hiç birinin sonunda "." işareti bulunmaz. "." işareti sadece ana programın sonunu göstermek amacıyla kullanılabilir. Ana programın sonu haricindeki diğer "END" deyimlerinin sonunda ";" işareti kullanılır.

Örnek Bir Program:

Program Ilk; Program Başlığı, sonuna ; konulur.

Const Sabit sayı tanımlama bölümü

b =10; b sabitinin değeri 10 dur.

Var Değişken tanımlama bölümü

a : integer; a sayısı tam sayıdır. c : real; c sayısı ondalıklı sayıdır.

Begin Ana program başladı.

Write ('a sayısını giriniz : '); Ekrana ' ... ' arasındakileri yaz.

Readln(a); a değişkenini (klavyeden) gir. Alt satırageç. (ln) c := a + b; a değişkeni ile b sabitini topla, c'ye ata. Writeln('a + b = ' , c); '...' içindekileri yaz, sonucunu yaz (c'yi), altsatıra geç.

Readln

Klavyeden herhangi bir karakter oku (Program çalıştırıldığında sonucu (c) ekranda bekletmek içindir. (yazılmasa da olur). Son satırdan bir onceki satıra ; yazılmasa da olur.

End. Program sonu (Hervardır.Programın sonundaki End'in sonunaBegin'in birEnd'i nokta isareti konulur.

(23)

Algoritma ve Programlamaya Giriş 22 Öğr. Gör. Mustafa AKSU Program Başlığı: Bir Pascal programının ilk kısmı, kullanılması programcının seçimine bağlı olan

"program başlığı' dır. Program başlığı, programa bir isim vermek için kullanılır ve program

isimlerinde Đngiliz alfabesinde bulunmayan Türkçe karakterler kullanılmamalıdır. Programa uzun isimler verilebilir ancak sözcükler arasında boşluk bulunmamalıdır.

Tanımlama Bloğu: Pascal programının bu bölümünde program icra bloğunda kullanılan sabitler ve değişkenlerin isimleri ve bunların ne tür sabit/değişken olduğu bildirilir. Bu blok Pascal programı içerisinde mutlaka belirtilmelidir. Örnek olarak, aşağıda değişik veri tiplerindeki değişkenlerin bir tanımlama bloğunda nasıl tanımlanabileceği gösterilmiştir.

Tanım Veri Tipi ABS :REAL; A :STRING; B :INTEGER; C :LONGINT; F :SHORTINT H :BOOLEAN; J :BYTE; KL :WORD;

2.2. Özel Semboller ve Pascal Sözcükleri

2.2.1 Özel Semboller

Bir Pascal programında kullanılabilecek özel semboller A'dan Z'ye büyük ve a'dan z'ye küçük Đngiliz alfabesi harfleri, 0-9 arası rakamlardır. Pascal programlama dilinde kullanılan diğer bazı semboller ve anlamları aşağıda tanımlanmıştır.

>, <, = Herhangi değişken ve sabitlerin karşılaştırılmasında kullanılır. [ ] Bu işaret içine diziye ait indis numarası yazılır.

( ) Veri okunması, yazılması, yazılacak/okunacak bilgilerin başlangıç ve bitişlerinde kullanılır.

Đndisli değişken eleman tanım ayırıcı.

; Pascal komut ve deyimlerini birbirinden ayırmak için kullanılırlar. ' (Tek Tırnak) Alfasayısal bilgilerin tanımlanmasında kullanılır. Bilgilerin başlangıç

ve bitişlerinde kullanılmaktadır.

, Değişken tanımlarında, okunacak yada yazdırılacak bilgiler arasında ayraç olarak kullanılır.

: Bilgi karakter yapı tipi tanımlamalarında ve sayısal bilgilerin çıkış formatlarında kullanılır.

. Bir gruba bağlı bir alt grup veya bir kayıt saha ismi tanımlarında elemanlandırma işareti olarak, sabit bilgilerdeki rakamların ondalık

işareti olarak ve Pascal programlarının sonunu belirlemek amacıyla kullanılır.

:= Đşaretin solundaki değere sağındaki bilgiyi atama işlemini yapar. { } Açıklama ifadelerinin başlangıç ve bitimlerinde kullanılır.

(* *) Açıklama ifadelerinin başlangıç ve bitimlerinde kullanılır.

2.2.2 Pascal Sözcükleri

Turbo Pascalda kendi işlevleri dışında kullanılamayacak olan sözcükler vardır. Bu sözcükler ayrılmış sözcükler olarak tanımlanmakta olup programcı tarafından yeniden tanımlanamaz, bir değişken ismi olarak kullanılamaz veya değiştirilemezler. Bu sözcüklerin isimleri aşağıda verilmiştir:

(24)

And Asm Array Begin

Case Const Constructor Destruct

Div Do Downto Else

End File For Function

Goto If  Implementation Đon

Inline Interface Label Mod

Nil Not Of  Object

Or Packed Procedure Program

Record Repeat Set Shl

Shr String Then To

Type Unit Until Uses

Var While With Xor

2.3. Değişken veya Sabitlerin Tanımlanması

Var Bloğu:

Pascalda değişken tanımlamak için VAR bloğu kullanılır. Bu blokta bir değişken tanımlamak için önce değişkenin adı, sonra “:” (iki nokta üstüste) ve son olarak da değişkenin tipi belirtilir. Aynı tipte olan değişkenleri virgülle ayırarak bir defada da tanımlayabilirsiniz.

Değişken Tanımlamalarına Örnekler: Var Yas : shortint; BOY : byte; SAYI : integer; kisisayisi : integer; BuyukSayi : longint; Para : real; Pi : real; Sayac : word; Nufus : single; sayi2 : double; araLIK : extended; SaYI3 : comp; Yeni : byte; harf : char; Sayi : integer;

isim, Soyisim : string;

Var bloğu başka bir bloğun başlaması ile biter. Programınızın daha okunaklı olması için  “:” leri alt alta getirmeye özen gösterebilirsiniz. Unutmayın ki iyi bir programcı kodunun

okunurluğundan belli olur.

Const Bloğu:

Pascalda sabit tanımları CONST bloğunda yapılır. Sabitlerin özelliği program içerisinde değerlerinin değiştirilememesidir. Bir sabitin tanımlanması için önce sabitin adı, sonra “=”  ve sabit değeri yazılır.

(25)

Algoritma ve Programlamaya Giriş

Algoritma ve Programlamaya Giriş 2424 Öğr. Gör. Mustafa AKSUÖğr. Gör. Mustafa AKSU Sabit Tanımlamalarına Örnekler :

Sabit Tanımlamalarına Örnekler : Const Const Pi = 3.14; Pi = 3.14; Pi_Sayisi = 3.1415; Pi_Sayisi = 3.1415; Bu_yil = 1999; Bu_yil = 1999; Tarih = '29/10/11999'; Tarih = '29/10/11999'; isLEMciler = '+ - * /'; isLEMciler = '+ - * /'; iSim = 'Kenan'; iSim = 'Kenan'; SOYAD = 'DEMĐR'; SOYAD = 'DEMĐR'; YAS =20; YAS =20;

Mesaj = 'Devam etmek için bir tuşa basınız... '; Mesaj = 'Devam etmek için bir tuşa basınız... '; Avagadro_Sayisi = 6.02E23; Avagadro_Sayisi = 6.02E23; Cosinus_45_derece = 0.7071067; Cosinus_45_derece = 0.7071067; TelefonNumarasi = '3434343'; TelefonNumarasi = '3434343'; Katsayi = 100; Katsayi = 100; buyuk_mu = false; buyuk_mu = false; dogru = true; dogru = true; arti = ' + '; arti = ' + '; yanlis = 'false'; yanlis = 'false';

Bu blokta yapılabilecek diğer bir tanım ise değişkenlere tipi ile birlikte ilk değer Bu blokta yapılabilecek diğer bir tanım ise değişkenlere tipi ile birlikte ilk değer verilmesidir. Bunun için önce değişkeninizin adını yazıyorsunuz sonra “:” koyup tipini verilmesidir. Bunun için önce değişkeninizin adını yazıyorsunuz sonra “:” koyup tipini belirliyorsunuz ve ilk değer vermek için “=” yazıp ilk değerini veriyorsunuz. belirliyorsunuz ve ilk değer vermek için “=” yazıp ilk değerini veriyorsunuz.

Örnek: Örnek: Const Const Sayac : byte = 0; Sayac : byte = 0;

Pascal programlama dilinde icra bloğu içinde kullanılan değişkenler

Pascal programlama dilinde icra bloğu içinde kullanılan değişkenler VAR VAR tanım bloğu içinde,tanım bloğu içinde, sabitler ise

sabitler ise CONSTCONST bloğu içinde tanımlanır. Örneğinbloğu içinde tanımlanır. Örneğin A,B A,B değerleri değişken vedeğerleri değişken ve C C değeri sabitdeğeri sabit ise bu değerlerin programın tanım bloklarında ifade edilmesi aşağıdaki şekilde olacaktır.

ise bu değerlerin programın tanım bloklarında ifade edilmesi aşağıdaki şekilde olacaktır. VAR VAR A,B:REAL; A,B:REAL; CONST CONST C=12:INTEGER; C=12:INTEGER;

Burada, VAR'dan sonra gelen REAL ifadesi

Burada, VAR'dan sonra gelen REAL ifadesi A A veve BB değişkenlerinin gerçel sayı veri tipinde olduğunudeğişkenlerinin gerçel sayı veri tipinde olduğunu belirtirken CONST'dan sonra gelen INTEGER ifadesi C sayısının integer veri tipi olduğunu belirtirken CONST'dan sonra gelen INTEGER ifadesi C sayısının integer veri tipi olduğunu belirtmektedir.

belirtmektedir.

Değişkenlere Değer Atama Değişkenlere Değer Atama

Pascalda diğer programlama dillerinden farklı

Pascalda diğer programlama dillerinden farklı olarak değer ataması yapılırken ":=" (ikiolarak değer ataması yapılırken ":=" (iki nokta üst üste ve eşittir işaret ikilisi kullanılır). Yani sayi diye bir integer tipindeki

nokta üst üste ve eşittir işaret ikilisi kullanılır). Yani sayi diye bir integer tipindeki değişkene 20 değerini atamak istediğimizde yapmamız gerekenler şöyle olacaktır. değişkene 20 değerini atamak istediğimizde yapmamız gerekenler şöyle olacaktır.

Örnek: Örnek: Var Var sayi : integer; sayi : integer;

{ sayi adında integer tipinde bir değişken tanımladık } { sayi adında integer tipinde bir değişken tanımladık } ...

(26)

sayi := 20; sayi := 20;

(* sayi değişkenine 20 değerini atadık *) (* sayi değişkenine 20 değerini atadık *) sayi := sayi + 1;

sayi := sayi + 1;

(* sayi değişkeninin değerini 1 arttırdık *) (* sayi değişkeninin değerini 1 arttırdık *) ...

...

Pascalda değişkenlere değer atarken iki nokta üstüstü ve eşittir birlikte kullanılır. Eşittir tek Pascalda değişkenlere değer atarken iki nokta üstüstü ve eşittir birlikte kullanılır. Eşittir tek başına kullanıldığında karşılaştırma operatörü olarak görev yapar.

başına kullanıldığında karşılaştırma operatörü olarak görev yapar. Değişken veya sabit tanımlarken şunlara

Değişken veya sabit tanımlarken şunlara dikkat etmek gerekmektedir:dikkat etmek gerekmektedir:

1.

1. Bir değişken Bir değişken veya sabit veya sabit A..Z veya A..Z veya a..z arasındaki a..z arasındaki harflerle yada harflerle yada _ _ (alt çizgi) (alt çizgi) ile başlar.ile başlar. ADRES,

ADRES, isim, isim, _faktor _faktor gibi.gibi. 2.

2. Değişken veyDeğişken veya sabitlerde a sabitlerde ilk karakter ilk karakter rakam olamaz.rakam olamaz. Var

Var

1a, 23B :

1a, 23B : integer integer gibi. {Bu gibi. {Bu tanımlama yanlış}tanımlama yanlış} a1, B23 :

a1, B23 : integer integer gibi. {Bu gibi. {Bu tanımlama doğru}tanımlama doğru} 3.

3. Değişken birden fazla kelimeden oluşuyorsa kelimeler arasına alt çizgi ( _ ) karekteriDeğişken birden fazla kelimeden oluşuyorsa kelimeler arasına alt çizgi ( _ ) karekteri konulmalıdır. konulmalıdır. Var Var dairenin_alani : real; dairenin_alani : real; 4.

4. Değişken içerisinde sadece Türk alfabesinde olup Đngiliz alfabesinde olmayanDeğişken içerisinde sadece Türk alfabesinde olup Đngiliz alfabesinde olmayan (ç,Ç,ğ,Ğ,ı,Đ,ö,Ö,ü,Ü,ş,Ş) karakterler kullanılamaz.

(ç,Ç,ğ,Ğ,ı,Đ,ö,Ö,ü,Ü,ş,Ş) karakterler kullanılamaz. Var

Var

maaş, sınıf:

maaş, sınıf: integer ; integer ; {Tanımlaması y{Tanımlaması yanlış}anlış} 5.

5. Değişken içerisinde noktalama işaretleri (, . ; ? / { [ ( ) , karşılaştırma operatörleri ( <,> =),Değişken içerisinde noktalama işaretleri (, . ; ? / { [ ( ) , karşılaştırma operatörleri ( <,> =), boşluk kullanılamaz.

boşluk kullanılamaz. Var

Var

sınıfın.mevcudu: integer; {Tanımlaması yanlış} sınıfın.mevcudu: integer; {Tanımlaması yanlış} 6.

6. Tanımlanan değişken veya sabit programlama dilinin komutları olamaz.Tanımlanan değişken veya sabit programlama dilinin komutları olamaz. Örnek: Var

Örnek: Var

Read, file

Read, file : integer : integer ; ; {Kullanımları yanlış{Kullanımları yanlış}} Not: integer

Not: integer ; ; {Kullanımı {Kullanımı yanlış}yanlış} 7.

7. Tanımlanan değişken kullanılacak tipe ve kullanım amacına uygun tanımlanTanımlanan değişken kullanılacak tipe ve kullanım amacına uygun tanımlan malıdır.malıdır.

Programlara Açıklama Eklenmesi Programlara Açıklama Eklenmesi

(27)

Algoritma ve Programlamaya Giriş

Algoritma ve Programlamaya Giriş 2626 Öğr. Gör. Mustafa AKSUÖğr. Gör. Mustafa AKSU kişilerin programı kolayca anlamalarını

kişilerin programı kolayca anlamalarını sağlayacaktır.sağlayacaktır.

Pascalda açıklama satırı yazımı için {,} sembolleri veya (*,*) ikilileri kull

Pascalda açıklama satırı yazımı için {,} sembolleri veya (*,*) ikilileri kullanılır bunlaranılır bunlar açıklamanın nerede başlayıp nerede bittiklerini belirtir. Programın derlenmesi esnasında bu açıklamanın nerede başlayıp nerede bittiklerini belirtir. Programın derlenmesi esnasında bu satırlar derleyici tarafından gözardı edilir, yani

satırlar derleyici tarafından gözardı edilir, yani derlenmiş kodda açıklama satırları yerderlenmiş kodda açıklama satırları yer almaz. Açıklamalar birinci tipte { ile başlar } ile biter. Đkinci tipte ise (* ile başlar ve *) ile almaz. Açıklamalar birinci tipte { ile başlar } ile biter. Đkinci tipte ise (* ile başlar ve *) ile biter.

biter.

Programlarınızda açıklama satırlarına sıkça yer vermeniz hem sizin

Programlarınızda açıklama satırlarına sıkça yer vermeniz hem sizin hem de programıhem de programı inceleyen diğer kişilerin programı

inceleyen diğer kişilerin programı rahat anlamalarını sağlayacaktır.rahat anlamalarını sağlayacaktır. Örnek: Örnek: Var Var sayi:integer; sayi:integer;

{sayi değişkeni kaç kişinin adını

{sayi değişkeni kaç kişinin adını gireceğimizi saymak için kullanıldı. Bu bir açıklamagireceğimizi saymak için kullanıldı. Bu bir açıklama satırıdır ve derleyici tarafından gözardı edilir}

satırıdır ve derleyici tarafından gözardı edilir} adi:string[20];

adi:string[20];

(* Bu da bir açıklama satırıdır ve bu satır da derleyici tarafından gözardı edilir*) (* Bu da bir açıklama satırıdır ve bu satır da derleyici tarafından gözardı edilir*) Pascalda değişken tanımlamalarının ve kod satırlarının sonuna noktalı virgül

Pascalda değişken tanımlamalarının ve kod satırlarının sonuna noktalı virgül geldiği haldegeldiği halde açıklama satırlarının sonuna noktalı virgül gelmediğine özellikle dikkat edi

açıklama satırlarının sonuna noktalı virgül gelmediğine özellikle dikkat edin.n.

2.4. Pascalda Veri Tipleri

2.4. Pascalda Veri Tipleri

Pascal programlama dilinde kullanılan değişik veri tiplerinin tanımları ve geçerli olduğu alanlar Pascal programlama dilinde kullanılan değişik veri tiplerinin tanımları ve geçerli olduğu alanlar aşağıda

aşağıda tanımlanmıştanımlanmıştır.tır.

2.4.1 Tamsayı veri tipleri

2.4.1 Tamsayı veri tipleri

2.4.1.1. Integer Tipi Veriler 

2.4.1.1. Integer Tipi Veriler 

Integer tipindeki veriler tamsayılardan oluşmuşlardır ve kayar nokta içermezler. Turbo Integer tipindeki veriler tamsayılardan oluşmuşlardır ve kayar nokta içermezler. Turbo Pascal'daki integer tipteki tamsayılar -32768 ile

Pascal'daki integer tipteki tamsayılar -32768 ile +32767 arasında sınırlandırılmışladır.+32767 arasında sınırlandırılmışladır.

2.4.1.2. Word Tipi Veriler 

2.4.1.2. Word Tipi Veriler 

Word Tipi veriler, 0-65535 arasındaki tamsayılardan oluşmuşlardır. Word Tipi veriler, 0-65535 arasındaki tamsayılardan oluşmuşlardır.

2.4.1.3. Shortint Tipi Veriler 

2.4.1.3. Shortint Tipi Veriler 

-128 ile +127 arasındaki tamsayılardan oluşmuşlardır. -128 ile +127 arasındaki tamsayılardan oluşmuşlardır.

2.4.1.4. Byte Tipi Veriler 

2.4.1.4. Byte Tipi Veriler 

Byte tipi veriler işaret ve desimal nokta içermeyen 0-255 arasındaki değerlerden oluşan Byte tipi veriler işaret ve desimal nokta içermeyen 0-255 arasındaki değerlerden oluşan tamsayılardır. Programda, 0-255 arasındaki tamsayılar için değişken veya sabitlerin Byte tipi tamsayılardır. Programda, 0-255 arasındaki tamsayılar için değişken veya sabitlerin Byte tipi olarak tanımlanması bellekten tasarruf sağlar.

olarak tanımlanması bellekten tasarruf sağlar.

2.4.1.5. Comp Tip

2.4.1.5. Comp Tip Veriler 

Veriler 

Comp tip veriler çok uzun tamsayıların tanımlanması için kullanılır. Comp veri tipi ile 19-20 Comp tip veriler çok uzun tamsayıların tanımlanması için kullanılır. Comp veri tipi ile 19-20 basamaklı sayılar ifade edilir. Tanım aralığı; -2

basamaklı sayılar ifade edilir. Tanım aralığı; -26363...2...26363

2.4.1.5. Longint Tipi Veriler 

2.4.1.5. Longint Tipi Veriler 

-2147483648 ile +2147483647 arasında görev yaparlar ve tamsayıların menzil olarak en -2147483648 ile +2147483647 arasında görev yaparlar ve tamsayıların menzil olarak en

(28)

kapsamlısıdır.

2.4.2. Ondalıklı Değişken Tipleri

2.4.2.1 Real Tip Veriler 

Real tip veriler desimal nokta içeren ve üslü formda ifade edilebilen gerçel sayılardır. Üs ifadesi olarak "E" harfi kullanılmaktadır. Kullanımları ile ilgili örnekler aşağıda verilmiştir. Tanım aralığı;2.9E-39..1.7E38 'dir. Bellekte 6 byte yer kaplar.

-2.3454

123.11223344

-2.45E+12 2.45E+12

1.123123E-12

Olağan koşullarda bir programlama hatası söz konusu değilse veya çok büyük sayılar ile çalışılmıyor ise REAL tip sayılarla çalışmada bir sorun ile karşılaşmayız.

Kişisel bilgisayarların mikro işlemcileri 80x86 olarak isimlendirilir. Bu işlemci ailesinin yükünü hafifletmek için 80x87 olarak bilinen matematik işlemcisi kullanılır. Pascalda bu işlemci ile kullanılmak üzere dört tip tanımlanmıştır. Bunlar; Single, Double, Extended ve Comp 'tur.

2.4.2.2 Single Tip Veriler 

Single tip veriler, 1.5E-45...3.4E38 sayı kümesi aralığında tanımlanabilir. Bellekte 4 byte yer kaplar.

2.4.2.3. Double Tip Veriler 

Double tip veriler, 5.0E-45...3.4E38 sayı kümesi aralığında tanımlanabilir. Bellekte 8 byte yer kaplar.

2.4.2.4. Extended Tip Veriler 

Extended tip veriler, 3.4E-4932...1.1E4932 sayı kümesi aralığında tanımlanabilir. Bellekte 10 byte yer kaplar.

80x87 sınıfındaki veri tiplerinin kullanılabilmesi için programın en başına {$N+} derleyici komutu verilmelidir. Bilgisayarda matematik işlemci yok ise {$E+} matematik işlemci emülasyonu da bu satıra eklenir.

Günümüzün Pentium tabanlı bilgisayarlarında matematik işlemci bulunduğundan, matematik işlemcili bilgisayarlarda emülasyon direktifini kullanmaya gerek yoktur.

2.4.3. String (Metin veya karakter) veri Tipleri

2.4.3.1. Char Tipi Veriler 

Char tipi veriler, ASCII karakter kümesinin 256 adet elemanından oluşurlar. Char tipi veriler bir sabit olarak ele alındığından ' ' içerisinde yazılır.

(29)

Algoritma ve Programlamaya Giriş 28 Öğr. Gör. Mustafa AKSU

2.4.3.2. String Tipi Veriler 

Bu tip veriler, karakter kümesi şeklinde olup ' ' içerisinde yazılırlar. A:STRING[5];

B:STRING[16];

Burada A isimli karakter kümesi maksimum 5 karakterden, B isimli karakter dizisi ise maksimum 16 karakterden oluşmaktadır.

Bu bilgiler ile ilk Pascal programımızı yazabiliriz. Var

mesaj:string[7]; BEGIN

mesaj :='merhaba' ;

Write('Sayın bilgisayar kullanıcısı ',mesaj); END.

Programımızın çalıştırılmasıyla ekran görüntüsü aşağıdaki gibi olacaktır. Sayın bilgisayar kullanıcısı merhaba

Örnek :

Klavyeden vize ve final notu girildiğinde o öğrencinin not ortalamasını bulan programı yazınız? var vize,final:shortint; begin write('vizeyi giriniz'); readln(vize); write('finali giriniz'); readln(final); write('ortalama',vize*0.4+final*0.6); readln; end.

2.4.4. Boolean (Doğru , Yanlış) Tipi Veriler

Mantıksal ifadeler olarak da isimlendirilebilen Boolean tipi veriler sadece iki değerden oluşurlar. Bunlar "FALSE" ve "TRUE" dir.

Durum: Boolean; Hata: Boolean;

(30)

3. OPERATÖRLER 

3.1. Aritmetik Operatörler

Aritmetik operatörler dört işlem için kullandığımız (toplama, çıkartma, çarpma ve bölme) +, -, / ve * 'dan oluşmaktadırlar. Tam ve reel sayıların aritmetik işlemleri için kullanılan operatörlere ilişkin liste aşağıdaki tabloda verilmiştir.

"+","-" ve "*" işlemlerinde işlem yapılan sayı cinsi reel ise sonuç ta reel'dir. Đşlem yapılan sayılar tamsayı ise sonuçta tamsayıdır. "/" işleminde ise sonuç her zaman reel sayıdır.

Operatör Adı Anlamı

+ toplama Sol ve sağdaki değerleri birbirine ekler. - çıkarma Soldaki değerden sağdaki değerleri çıkarır. * çarpma Sol ve sağdaki değerleri birbiri ile çarpar.   / bölme(Reel) Soldaki değeri sağdaki değere böler.

Div bölme(Tamsayı) Soldaki değeri sağdaki değere böler.

mod kalan Soldaki değerin soldaki değere bölünmesinden kalan

Sık sık kullandığımız bu operatörlerin yanında iki sayının bölümünden kalanı veren MOD, iki

tamsayının bölümünün sonucunda tamsayı üreten DI V programlarımızda sık kullandığımız

aritmetik operatörlerdir.

3.1.1 Div Operatörü

Đki tamsayının bölümünün tamsayı kısmını verir. 123/4=30.75 123 div 4=30

3.1.2 Mod Operatörü

Tamsayı tipindeki operandların bölümünü yapar ve sonucun kalan kısmını bir tamsayı değer olarak üretir.

123/4=30.75 123 mod 4 =3

'/' operatörü operand olarak kullanılan değerlerin tipi ya da bölümün sonuç değeri ne olursa olsun real tipte sonuç üretir. Bu nedenle bir bölümün sonucunun bir tamsayı değişkene direkt olarak aktarılması söz konusu değildir.

Mod ve Div işlemlerinin sonuçları her zaman tamsayıdır.

4 div 12 = 0, 13 div 4 = 3 3 mod 2 = 3, 4 mod 2 = 0

12 div 4 = 3, 16 div 4 = 4 5 mod 2 = 1, 4 mod 0 = (tanımsız)

3.2. Đlişkisel Operatörler

Diğer programlama dillerinde de olduğu üzere, Pascal programlama dilinde iki veya daha fazla operand arasındaki ilişkilerin araştırılmasını yapan ilişkisel operatörler, toplu olarak aşağıdaki tabloda verilmiştir.

(31)

Algoritma ve Programlamaya Giriş 30 Öğr. Gör. Mustafa AKSU

= Eşit Sol ve sağdaki değerler birbirlerine eşitse

<> Eşit değil Sol ve sağdaki değerler birbirlerine eşit değilse < Küçük Soldaki değer sağdaki değerden küçükse

> Büyük Soldaki değer sağdaki değerden büyükse

<= Küçük yada eşit Soldaki değer sağdaki değere eşit yada küçükse >= Büyük yada eşit Soldaki değer sağdaki değere eşit yada büyükse

3.3. Aritmetik Đşlemlerde Đşlem Öncelik Sıraları

Öncelik Sırası Aritmetik Đşlem ve bağıntılı tanımlar 1 işaretli sayısal bilgiler

2 Parantez içindeki işlemler

3 Aritmetik fonksiyonlar

4 Üs alma

5 Çarpma ve Bölme

6 DIV tam sayıya bölme deyimi

7 MOD (Bölme işleminde kalan bulma işlemi)

8 Toplama ve çıkarma

9 Mantıksal ilişki ifadeleri (=, >,<,)

10 Bağlantı ifadeleri (not,and,or,xor)   Đşlem Önceliğinde Bazı Kurallar:

• Aynı öncelik sırasına sahip işlemlerde hangisi önce tanımlanmış ise önce onun işlemi gerçekleştirilir.

• Đşlem öncelik sırası küçük olan bir aritmetik işlemin önce yapılması isteniyorsa parantez içine alınmalıdır.

• Đç içe birden fazla parantez kullanılması durumunda, işlem öncelik sırası daima en içteki paranteze ait işleminindir.

3.4. Matematiksel Formüller

Normal olarak elle yazılan formüllerin bir bilgisayar programına yazımı için belirli bazı kurallar vardır. Matematiksel ifadelerin bilgisayarın anlayacağı şekilde yazımı sırasında dikkat edilecek önemli bir nokta, matematik o peratörleri arasındaki işlem önceliğine dikkat edilmesidir.

Aşağıda verilen cebirsel ifadelerin Pascal programlama dilinde yazımlarını inceleyiniz. CebirselĐfade Pascal'da Yazım Biçimi

b2-4.a.c b*b-4*a*c

(b2-4.a.c)1/2 sqrt(b*b-4*a*b) x + y

(32)

Yukarıdaki örnekte işlem sırası; 1. Z'nin karekökü alınır

2. 1 no.lu işlem 2 sabiti ile çarpılır 3. (2-x) değeri hesaplanır

4. 2 no.lu işten elde edilen sonuç 3 no.lu işlemin sonucuna bölünür.

============================================

Konu Sonu Çalışma Soruları

Soru 1.

Aşağıda verilen matematiksel eşitlikleri Pascal programlama dili

kurallarına göre yazınız.

Soru 2.

Bir öğrencinin 1. Yazılı, 2.yazılı ve sözlü notlarının ortalamasını

hesaplayan programı yazınız.

(33)

Algoritma ve Programlamaya Giriş 32 Öğr. Gör. Mustafa AKSU

4. GĐRĐŞ/ÇIKIŞ DEYĐMLERĐ

4.1. Giriş

Giriş/çıkış deyimleri bilgisayarın ana belleği ile çevre aygıtlar arasında bilgi transferi yaparlar. Herhangi bir çevre aygıtından (klavye gibi) bir verinin belleğe okutulması veya ana bellek üzerindeki bir verinin çevre aygıtlara (Ekrana) gönderilmesi giriş/çıkış deyimleri ile gerçekleştirilir. Genellikle giriş çıkış deyimi olarak aşağıda tanımlanan deyimler kullanılmaktadır.

4.2 Read-Readln

Pascal 'da okuma işlemi için kullanılan komutlar READ ve READLN olup genel kullanım yapısı şu

şekildedir;

Read(A1,A2,A3,...,An); Readln(A1,A2,A3,...,An);

Read ile Readln arasındaki fark: Read, okuma işlemi tamamlandıktan sonra aynı satırda kalınmasını, Readln ise yeni bir satıra gelinmesini sağlar. Bir Pascal programı içerisinde bu iki komutun kullanımı aşağıdaki program parçasında verilmiştir.

Var

s,a,n:real; begin

Read(s,a,n); end.

Okunacak değerlerin düzeni;

12.45 43.543 62.12

Aynı değerleri Readln ile okutturmak istersek; Var

s,a,n:real; begin

Readln(s,a,n) ; end.

Okunacak değerlerin düzeni yukarıdaki okuma düzeni ile aynı olabileceği gibi her değer ayrı bir satırda verilebilir, her hangi satırlarda verilebilir, örnek olarak s, a ve n değerleri aşağıdaki okuma düzeninde okutturulmuştur.

12.45 43.543 62.12

(34)

4.3. Write-Writeln

Pascal programlama dilinde yazma işlemi için WRITE ve WRITELN komutları kullanılmaktadır. Bu komutların genel kullanım yapısı şu şekildedir;

Write(A1,A2,A3,...,An) Writeln(A1,A2,A3,...,An)

Đki kullanım şekli arasındaki fark, Read ile Readln arasındaki fark gibidir. Đfadeler Write ile yazdırıldıktan sonra kursör aynı satırda bekleyecektir, Writeln ile yazdırılması durumunda ise kursör bir sonraki satıra geçecektir.

Var s,a,n:integer; begin s:=3; a:=9; n:=5; Write(s); Write(a); Write(n); end.

Programın çalıştırılmasıyla elde edilen sonuç; 395 olacaktır.

Aynı değişkenleri Writeln ile yazdırdığımızda;

Var s,a,n:integer; begin s:=3; a:=9; n:=5; Writeln(s); Writeln(a); Writeln(n); end. 3 9 5 çıktısı elde edilecektir.

(35)

Algoritma ve Programlamaya Giriş 34 Öğr. Gör. Mustafa AKSU

4.4. Yazım Đçin Format Belirleme

Write ve Writeln deyimi ile yapılan bilgi çıkışlarını düzenlemek için yazım formatları kullanılır. Write yada WriteLn komutlarıyla ekrana "510.4542" gibi reel bir sayı yazdırılmak istendiğinde, ekranda 5.1045420000E+02 gibi karmaşık bir değer görülür. Bu değeri anlaşılır bir şekle dönüştürmek için bir yazım formatı belirtilmesi gerekir.

Örnek: var a:real; begin a:=510.4542; write(a:6:2); end.

Bu örnekte ekrana "510.45" şeklinde bir sayı yazar. Buradaki 6 nokta da dahil sayının karakter uzunluğunu, 2 ise virgülden sonraki kısmın uzunluğunu ifade eder

Yazdırılmak istenilen değerin tipine bağlı olarak iki farklı yazım formatı kullanılır.

1. Yazım Formatı (X:n) :Tam sayı veya karakter tabanlı değerleri ekrana formatlı yazdırırken bu format kullanılır. Bu formata göre yazdırılmak istenilen  X değeri n

karakterlik alanda sağa dayalı olarak yazılır.  X  değerini oluşturan dijit veya karakterin

uzunluğu n sayısından küçük ise, aradaki fark kadar sol tarafta boşluk bırakılır. X değerinin

uzunluğu n sayısına eşit veya büyük ise yazdırma işlemi format belirtilmemiş gibi

gerçekleştirilir. Örnek: Const i:integer=567; b:boolean=True; c:char='b'; h:string[6]='Pascal'; begin Writeln(‘123456789'); Writeln; Writeln(i:9); Writeln(b:9); Writeln(c:9); Writeln(h:9); Writeln(i:2); Writeln(h:5); end.

2. Yazım Formatı (X:n:k) : Bu yazım formatı real sayılar üzerinde çalışmaktadır. Bu

yazım formatıyla reel sayılar üssüz notasyonda yazdırılır. Yazdırılacak X real değeri n karakterlik alanda sağa dayalı olarak üssüz yazdırılır, k  ise n karakterin sonundaki kesirli kısmı göstermektedir.

Örneğin A değeri, A:7:2 şeklinde yazdırılmak istenirse; program real sayı için 7 karakterlik

yer ayırır. Bu alanın son iki hanesi ondalıklı kısım için sondan 3. hanesi ise desimal nokta için kullanılır.

Sayının tamsayı kısmı ayrılan alanın uzunluğundan küçük ise, aradaki fark kadar sol tarafta boşluk bırakılır. Yazdırılacak sayının tam sayı kısmı bu alana sığmıyor ise, tamsayı için ayrılan alanın uzunluğu yazdırılan sayının tamsayı alan uzunluğuna eşit büyüklükte kabul edilir. Kesirli kısmı ayrılan alandan daha küçük ise aradaki fark kadar sağ tarafa 0 dijiti ilave edilir. Kesirli

(36)

Yazım sırasında kesirli alanın yazılması istenmiyorsa k sayısının "0" yazılması gerekir. k sayısının sıfır olması desimal noktanın yok olmasını sağlar.

Bu anlattığımız yazım formatlarını bir tablo halinde özetleyecek olursak:

Tip Yazım Formatı Açıklama

integer Değişken :n yazılırsa buInteger tipindeki bir denkarakterlik bir saha içinde bu sayının sağişkenin adının arkasınangibi sayısal bir değa doğru dayalı birğer şekilde yazılmasını sağlar.

Real Değişken:n:k yazılırsa bunlarReal tipinde bir denkarakterlik alan içinde ondalık kısmı noktadan sonrağişkenin adının arkasınanvekgibi sayısal değerlerm

tane karakter içermek üzere sağa dayalı olarak yazdırılır. String

Char Değişken:n

String tipindeki bir değişkenin adının arkasınangibi sayısal bir değer yazılırsa bunkarakterlik bir saha içinde bu karakter dizisinin sağa doğru dayalı bir şekilde yazılmasını sağlar.

şeklinde olur. Örnek: Const a:real=123.127927; begin Writeln('123456789’ ); Writeln('*********');; Writeln(a:9:4); Writeln(a:9:3); Writeln(a:9:2); Writeln(a:9:0); Writeln(a:7:2); Writeln(a:6:2); Writeln(a:5:2); Writeln(a:0:0); end.

Programın çalışmasıyla elde edilen sonuç aşağıda verilmiştir. Program sonucuna göre sondan 2. ve 3. satırların aynı olduğuna dikkat ediniz.

123456789 ********* 123.1279 123.128 123.13 123 123.13 123.13 123.13 123

Figur

Memperbarui...

Referensi

Memperbarui...

Related subjects :