SİNOP ÜNİVERSİTESİ MESLEK YÜKSEK OKULU

Benzer belgeler
Algoritmalar. 3. Açıklık: Her işlem (komut) açık olmalı ve farklı anlamlar içermemeli.

Programlamanın Temelleri

ÖLÜM 1- GİRİŞ Visual Basic

ALGORİTMA NEDİR? (Adım adım işlem basamaklarının yazılmasıdır.)

Örnek bir Algoritma. Örneğimiz bir insanın evden çıkıp işe giderken izleyeceği yolu ve işyerine girişinde ilk yapacaklarını tanımlamaktadır.

Bilgisayar programlaması sırasında izlenebilecek bir çok yol ve yöntem vardır. Programcının probleme ilişkin çözümü ortaya çıkarabilmesi için problem

Algoritmanın Hazırlanması

GÖRSEL PROGRALAMA HAFTA 3 ALGORİTMA VE AKIŞ DİYAGRAMLARI

BİL1002 Bilgisayar Programlama PROF.DR.TOLGA ELBİR

Genel Programlama I

C PROGRAMLAMA YRD.DOÇ.DR. BUKET DOĞAN PROGRAM - ALGORİTMA AKIŞ ŞEMASI

Bilgisayar Temelleri ve Programlamaya Giriş Yard.Doç.Dr. Metin HASDEMİR İstanbul-2008 PROGRAMLAMAYA GİRİŞ

Bilgisayar Programı Nedir?

PROGRAMLAMAYA GİRİŞ DERS NOTLARI

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma

Bilgisayar Programlama. Giriş

ALGORİTMA VE AKIŞ ŞEMALARI

AKIŞ ŞEMASI AKIŞ ŞEMASI AKIŞ ŞEMASI ŞEKİLLERİ GİRİŞ

Dr. Musa KILIÇ Öğretim Görevlisi

BILGISAYAR PROGRAMLAMAYA GIRIS

Algoritma ve Programlamaya Giriş. Mustafa Kemal Üniversitesi Kırıkhan Meslek Yüksekokulu Bilgisayar Teknolojileri Bölümü

BİLGİSAYAR PROGRAMLAMA MATLAB

Algoritma ve Programlamaya Giriş. Mustafa Kemal Üniversitesi Kırıkhan Meslek Yüksekokulu Bilgisayar Teknolojileri Bölümü

Algoritmalar ve Programlama. Algoritma

HÜPP PYTHON I.HAFTA ALGORİTMA MANTIĞI, AKIŞ DİYAGRAMLARI VE PYTHON'A GİRİŞ

Programlama Temelleri. Ders notları. Öğr.Gör. Hüseyin Bilal MACİT 2017

PROBLEM ÇÖZME PROGRAMLAMA ve ÖZGÜN ÜRÜN GELİŞTİRME

PROGRAMLAMAYA GİRİŞ VE ALGORİTMA. Yazılım Nedir Algoritma Akış Seması Örnekler

ALGORİTMA KAVRAMI. Bir sorunu / problemi çözmek veya belirli bir amaca ulaşmak için gerekli olan sıralı mantıksal adımların tümüne algoritma denir.

BÖLÜM 2: ALGORİTMALAR

Algoritma ve Programlamaya Giriş

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

ALGORİTMALAR. Turbo C Bilgisayarda Problem Çözme Adımları. Bilgisayarda Problem Çözme Adımları.

EM205 26/9/2014. Programlamaya giriş Algoritmalar. Amaçlar

4- ALGORİTMA (ALGORITHM)

FBEB-512 C++ ile Nesne Tabanlı Programlama Güz 2009 (1. Hafta) (Yrd. Doç. Dr. Deniz Dal)

Yrd. Doç. Dr. Fatih YÜCALAR YZM Celal Bayar Üniversitesi Teknoloji Fakültesi

Bilgisayarda Programlama. Temel Kavramlar

4- ALGORİTMA (ALGORITHM) M.İLKUÇAR - 1

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ (Algoritma Geliştirmek, Satır Kod)

BÖLÜM 3: AKIŞ DİYAGRAMLARI

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

BMT 101 Algoritma ve Programlama I 3. Hafta. Yük. Müh. Köksal GÜNDOĞDU 1

TEMEL BİLGİSAYAR BİLİMLERİ

ÖRNEK 1: Verilen iki sayının toplamının bulunmasının algoritması aşağıdaki gibi yazılır:

Yazılım Mühendisliği 1

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI


PROGRAMLAMAYA GİRİŞ VE ALGORİTMA «YTÜROK» EĞİTMEN:REHA ÖZGÜR ŞİMŞEK

İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA

ÜNİT E ÜNİTE GİRİŞ. Algoritma Mantığı. Algoritma Özellikleri PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA

ALGORİTMA HAZIRLAMA. Temel tanımlar ve işleyiş. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

Bireylerin yaşadığı çevreye uyum sağlaması durumunda ortaya çıkan olumsuzluklara PROBLEM denir.

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları

BİLGİSAYAR PROGRAMLAMA DERSİ

BMT 101 Algoritma ve Programlama I 2. Hafta. Yük. Müh. Köksal GÜNDOĞDU 1

MAK 1005 Bilgisayar Programlamaya Giriş. BİLGİSAYARA GİRİŞ ve ALGORİTMA KAVRAMI

DEĞERLENDĐRME ÖDEV % 20 ARASINAV % 30 FĐNAL SINAVI % 50

ÖRNEK ALGORİTMA VE AKIŞ ŞEMALARI. Örnek 1: Klavyeden girilen 2 sayının toplamını bulan programın algoritma ve akış şemasını yapınız.

ALGORİTMAYA GİRİŞ. Program: Belirli bir işi gerçekleştirmek için gerekli komutlar dizisi olarak tanımlanabilir.

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ. Yrd.Doç.Dr. Emel ARSLAN

Yazılım Çeşitleri. Uygulama Yazılımları. İşletim Sistemleri. Donanım

Okut. Yüksel YURTAY. İletişim : (264) Sayısal Analiz. Algoritma & Matlab.

GÜMÜŞHANE ÜNĐVERSĐTESĐ MÜHENDĐSLĐK VE DOĞA BĐLĐMLERĐ FAKÜLTESĐ ELEKTRĐK-ELEKTRONĐK MÜHENDĐSLĐĞĐ EEM 114 ALGORĐTMA TASARIMI VE PROGRAMLAMA DĐLLERĐ

Algoritma kelimesinin kökeni:

EĞİTİM ÖĞRETİM MÜNEVVER ÖZTÜRK ORTAOKULU II. DÖNEM BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ DERS NOTLARI

İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA

ALGORİTMA ÖRNEKLERİ ve YAZILIYA HAZIRLIK SORULARI

PROGRAMLAMA DİLLERİ I

BLGM BÖLÜM. Problem Çözme Kavramları (Algoritma ve Akış Şemaları)

ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Program Nedir?(1) Programlamaya Giriş

Hafta 4 Döngü Yapıları

PROGRAMLAMAYA GİRİŞ ve BASIC

Algoritmik Program Tasarımı, Akış Şemaları ve Programlama. Bilgisayar Mühendisliğine Giriş 1

KBÜ. TBP101 Programlama Temelleri. Öğr. Gör. Dr. Abdullah ELEN KARABÜK ÜNİVERSİTESİ.

PROGRAMLAMA TEMELLERİ

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Algoritma ve Akış Şemaları

Programlama Giriş. 17 Ekim 2015 Cumartesi Yrd. Doç. Dr. Mustafa YANARTAŞ 1

BİLGİSAYAR PROGRAMLAMA DERSİ

2. BÖLÜM. Problem Çözme ve Algoritmalar


BLG 1306 Temel Bilgisayar Programlama

Basit Algoritma Akış Diagramı Örnekleri

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

Programlama Dilinin Özellikleri

KODLAMAYA HAZIRLIK MODÜLÜ 1. YAZILI SINAV ÇALIŞMA SORULARI VE MODÜL ÖZETİ

BLG 1306 Temel Bilgisayar Programlama

1.1. Yazılım Geliştirme Süreci

C++ Dilinde Bazı Temel Algoritmalar

5. PROGRAMLA DİLLERİ. 5.1 Giriş

bunları biliyor muydunuz? primo Bill Gates Mark Zuckerberg oyuncak robot codie code.org bulmacalar NEDIR

Ünite 01 Algoritma Geliştirme

Bilgisayar Programlama. 1.Hafta

BİLGİSAYAR PROGRAMLAMA DERSİ

BİLİŞİM TEKNOLOJİLERİ 6. SINIF DERS NOTLARI 2

5- AKIŞ DİYAGRAMLARI (FLOW- CHART) M.İLKUÇAR - 1

Yrd. Doç. Dr. İlhan AYDIN Güz Dönemi Fırat Üniversitesi Bilgisayar Mühendisliği Bölümü

Transkript:

Programlamanın Temelleri ÖĞR. GÖR. RESUL TUNA SİNOP ÜNİVERSİTESİ MESLEK YÜKSEK OKULU SİNOP - 2008

PROGRAMLAMANIN TEMELLERİ 1. BİLGİSAYAR NEDİR? Bilgisayar; Giriş birimleri ile dış dünyadan aldıkları veriler üzerinde, aritmetiksel ve mantıksal işlemler yaparak işleyen ve bu işlenmiş bilgileri, çıkış birimleri ile bize ileten, elektronik bir makinedir. Bilgisayar bir sistemin adıdır. Aşağıda mikrobilgisayarın blok diyagramında görüldüğü gibi giriş işlem çıkış döngüsel işleyişine sahip sitemler bir bilgisayar sistemidir. Bu bir PC olabileceği gibi, bir cep telefonu, oyun konsolu, Sunucu sistemler gibi bir çok farklı sistem bilgisayar sistemidir. Bu sistemin işleyişini anlamak için aşağıdaki diyagramdan faydalanılabilir. 1.1. BİLGİSAYARIN BİLEŞENLERİ Bir Mikrobilgisayarın blok diyagramı Bilgisayar temel olarak iki birimde incelenebilir; Donanım ; Bilgisayarları oluşturan tüm fiziksel birimlere donanım denir. Bir Kişisel Bilgisayarı (PC) oluşturan donanım birimleri; Mikroişlemci Anakart Ram Bellek Ekran Kartı Ses Kartı Yardımcı bellek birimleri (Sabit Disk,CD/DVD/Flash Disk) Kasa Ekran Klavye Mouse Yazılım ; Bilgisayara işlevsellik kazandıran komutların tümü. Donanımı kullanmak ve yönetmek için gerekli programlardır. Bilgisayarın nasıl çalışacağını söylerler. Elle tutulmazlar. Belirli bir işleri yapmak üzere bilgisayara kurulurlar. 3 grupta incelenebilirler; İşletim Sistemleri; Windows XP, Win 7, Pardus Uygulama Programları; Word, Excel, AutoCad, Photoshop, Media Player Programlama Dilleri; Makine Dili, C / C++, Visual Basic, Delphi, Assembly 2

2. BİLGİSAYAR PROGRAMLAMAYA GİRİŞ İnsanlar her zaman düşünür ve problem çözerler. Birçok problem, az ya da hiç düşünülmeden çözülebilir. Her gün evden çı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 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ü kendiliğinden oluşturulan bir kararla sağlanır. Yukarıdaki basit örnekte yapılan iş, önce problemin belirlenmesi ve sonra problemin 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 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 uyulur. Bir bilgisayar yazılımının oluşturulması sırasında aşağıda sıralanan ana adımlara uyulur. Problemin tanımı Çözüm yönteminin belirlenmesi Programın kodlanması Programın çalışır duruma getirilmesi Belgeleme ve güncelleştirme Problemin tanımı: Problemin normal yazı diliyle tanımlanması işlemlerini kapsamaktadır. Problem çözümüne ilişkin iyi bir program yapabilmek için, problemin iyi bir şekilde tanımlanması gerekir. Çözüm Yönteminin Belirlenmesi: Bu 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. Programın kodlanması: Program ayrıntılı olarak tanımlanıp çözüm yolları açıkça belirtildikten sonra program kodlama çalışmalarına başlanabilir. Programın baştan sona yapısal bir düzende hazırlanması ve uygun bir programlama dili seçilmesi secim işleminin ilk aşamasını oluşturur. Programın Çalışır Hale Getirilmesi: 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 doğruluğundan emin olmak için defalarca test edilmiş olması gerekmektedir. Belgeleme ve güncelleştirme: Oluşturulan bir yazılımı, sadece o yazılımı geliştiren kişilerin kullanabilmesi gibi bir kısıtlamanın onune geçmek için ayrıntılı referanslar 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 koşullar nedeniyle değişiklikler yapılması gerekli olabilir. Bu değişikliklere güncelleme adı verilir. İyi bir programda bulunması gereken özellikler arasında güncelleşebilme ön sıralarda yer almaktadır. 3

Şekil 1.1. Yazılım oluşturma evrelerini şematik olarak özetlemektedir. 2.1. Bilgisayar Programcılığı Şekil 1.1 Yazılım oluşturma evreleri Nedir bu bilgisayar programcılığı? Evet, birçok kişi bilgisayar programcılarının ne ile uğraştığını bilir fakat nasıl uğraşıp neler yaptığını pek bilmez... Önce bilgisayar dünyasında sıkça kullanılan bir kelimeden bahsedelim yazılım. Yazılım (software) kelimesi bilgisayar programlama dilleriyle oluşturulan dokümanları, dosyaları ifade eder. Yani bilgisayarınızda 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 bicimde 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. Đite isin tüm zorluğu, o kodların arasında 4

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ı isini zevkle yapan ve isini bir hobi edinmiş insanlardan oluşur. Aksi halde yoğun konsantrasyon ve sabır isteyen bu isi 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 makine kodlarına yakın diller düşük seviyeli programlama dilleri, insanın en kolay anlayıp kullanabileceği ve insan diline yakın özellikler gösteren diller ise yüksek seviyeli programlama dilleridir. Simdi bu sınıflandırmaya örnekler verelim; 1 ) Yüksek seviyeli diller: VisualBasic, Delphi 2 ) Orta seviyeli diller: C,C++,ADA, Pascal,Basic,Fortran... 3 ) Düşük seviyeli diller: Assembly... Makine dilleri: Bilgisayarın çalışma dilleridir ve 1 ve 0'lardan oluşur... Bu dillerin kullanıldığı alanlara örnek verirsek; 1 ) Bilim ve Mühendislikte: Passal, 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 makine 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... 2.2. Bilgisayarda Programlamanın Aşamaları 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 secimi bazı kriterlere Gore 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ı isi uc dort ayda VisualBasic veya Delphi ile bir programcı bahsedilen isi bir iki aya yakın bir surede 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 isi VB veya Delphi ile yapmamız imkânsı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. Bunlar: 1 ) Analiz 2 ) Algoritma 3 ) Dil Secimi 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 secimi ile en uygun programlama dili seçilir ve kodlanır. 5

3. PROBLEM ÇÖZME VE ALGORİTMALAR 3.1 Problem Çözme Problem: Yerine getirilmesi ya da gerçekleştirilmesi gereken bir durumu problem olarak tanımlayabiliriz. Günlük hayatımızda da olduğu gibi Bilgisayar ile ilgili işlemlerde de bir çok problem tanımı yapılabilir. 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 su 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. Karsı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ısı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. 3.2. Program Yazma Sureci 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 aşağıdaki süreç izlenir: Problemin farkına varmak; Problemin ne olduğunu kavra. Problemi analiz etmek; Çözüm için gereksinimleri belirle. Çözüm yolları düşünmek; 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). İyi çözüm yolları seçip algoritma oluşturmak; Problemin çözümünü veren algoritmayı yaz. Akış diyagramı çizmek; Algoritmaya dayanarak akış diyagramını hazırla. Uygun bir dilde kodlamak; Algoritmayı bir programla dili ile yaz. Programı test etmek; Programın doğru çalışıp çalışmadığını test et. Bu testi değişik veriler (girdiler) için tekrarla. Programı dağıtmak. 2.3 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 acık, düzenli ve sıralı bir şekilde söz ve yazı ile ifadesidir. Algoritmayı oluşturan adımlar özellikle basit ve acı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şudur. 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 kâğıt ile yürütebileceği kadar basit olmalıdır. Not: İşletim sistemleri gibi programlar sonsuza dek çalışırlar. Bu nedenle bu tür programlar için 4. özellik geçerli değildir. 6

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 İsyerine doğru yürü Is yeri giriş kapısından içeriye gir Mesai arkadaşlarınla selamlaş İş giysini giy İsini yapmaya başla. 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 acı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 cı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ü İş yeri giriş kapısından içeriye gir Mesai arkadaşlarınla selamlaş İş giysini giy İşini yapmaya başla. Her iki örnekte görüldüğü gibi sorunu çözüme goturebilmek 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. Programlamanın temeli olan algoritma hazırlanmasında dikkat çekici bir nokta, ayni sorunu çözmek için hazırlanabilecek olası algoritma sayısının birden çok olmasıdır. Başka deyişle, bir sorunun çözümü için birbirinden farklı birden fazla sayıda algoritma hazırlanabilir. 7

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ı acı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: Kullanıcının gireceği iki sayıyı toplayıp sonucu ekrana yazdırmak için gerekli programa ait algoritmanın oluşturulması. A2. Birinci sayıyı gir A3. İkinci sayıyı gir A4. İki sayının toplamını yap A5. Toplamın değerini yaz A6. Bitir. Bu tam bir algoritmadır ve işlem basamakları sözel olarak ifade edilmiştir. 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 şu metot izlenmelidir: Programda kullanılacak verileri 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ışı düzenle. Bitir. Yukarıda iki sayının toplanması için oluşturduğumuz algoritmayı bu yeni gereksinimlere uyarak yeniden yazalım. Toplam adı için Z, Birinci sayı için X, İkinci sayı için Y değerleri kullanılırsa; A1. X değerini gir A2. Y değerini gir A3. Z = X+Y A4. Z' yi yaz A5. Bitir. Görüldüğü üzere bu şekilde bir algoritma ile çözüm yolunu izlemek daha kolaydır. Bundan sonra verilen örneklerde bu tip algoritma kullanılacaktır. Örnek 3: İki sayının ortalamasını bulan programa ait algoritmanın oluşturulması A2. X değerini gir A3. Y değerini gir A4. Z = X+Y A5. Ort = Z/2 A6. Ort değerini yaz A7. Bitir. Bu örnekte Ort değeri ile iki sayının ortalaması temsil edilmiştir. 8

Örnek 4: Kenar uzunlukları verilen dikdörtgenin alan hesabını yapan programa ait algoritmanın hazırlanması. Dikdörtgenin kısa kenarı : a Dikdörtgenin uzun kenarı : b Dikdörtgenin alanı A2. a, b, alan tanımla A3. a değerini gir A4. b değerini gir A5. Alan = a*b A6. Alan değerini ekrana yaz A7. Bitir. : alan Örnek 5: Bir öğrenci bir dersten aldığı iki sınav notunu klavyeden giriyor. Öğrencinini ortalamasını hesaplayıp, 50 geçme barajına göre Geçtiniz veya Kaldınız mesajı veren programın algoritmasını hazırlayınız. A2. snv1, snv2, Ort tanımla A3. Snv1 i gir A4. Snv2 i gir A5. Ort= (Snv1 + Snv2) / 2 A6. Ort yı ekrana yaz A7. Eğer (Ort > 50) ise A8. Ekrana Geçti yaz A9. Değilse Kaldı yaz A10. Bitir Örnek 6: Girilen dolar miktarını Türk Lirasına çeviren programın algoritmasını oluşturunuz. Bu algoritmanın oluşumunda girişler, Dolar kuru ve hesaplanacak $ miktarı, çıkış ise verilen $'in TL karşılığı olacaktır. Dolar kuru ve miktarının pozitif girilmesi sağlanmalıdır. Doların değeri: Doldeg Girilen Dolar miktarı: Dolar TL karşılığı: tl A2. Doldeg, Dolar, tl A1. Doldeg'i gir A2. Doldeg<0 ise 1. adimi tekrarla A3. Dolar ı gir A4. Dolar<0 ise 3.adimi tekrarla A5. tl = Doldeg*Dolar A6. tl değerini yaz A7. Bitir 9

Örnek 7: 1 den 100 e kadar olan sayıların toplamını hesaplayıp ekrana yazan programın algoritmasını hazırlayınız. Algoritma 1. Çözüm: (Algoritmanın sözel olarak ifade edilmesi) A2. Toplam T, sayılar i olsun A3. Başlangıçta T'nin değeri 0 ve i'nin değeri 1 olsun A4. i'nin değerini T'ye ekle. A5. i'nin değerini 1 arttır. A6. Eğer i'nin değeri 100'den küçük ise 4. adıma git. A7. T'nin değerini yaz. A8. Bitir Algoritma 2. Çözüm: A2. T, i A3. T=0, i=1 A4. i'nin değerini T'ye ekle. A5. i'yi 1 arttır. A6. i<101 ise A4 e git. A7. T'nin değerini yaz. A8. Bitir Örnek 8: Kullanıcının gireceği 10 sayının toplamını veren programa ait algoritmanın oluşturulması Toplam adı için Top, Girilen sayılar için X, Artış değerini saymak için için Sayaç kullanılırsa A2. Toplam tpl, Sayaç say, sayı X olsun A3. tpl = 0, say = 0 A4. X'i gir A5. tpl = tpl+x A6. say = say +1 A7. Eğer say <10 ise A4'e git A8. tpl değerini ekrana yaz A9. Bitir. Kullanıcının girdiği her sayı (X), tpl olarak adlandırılmış olan depo değişkenin üzerine eklenmektedir. Sayaç bu işlemin kaç kez tekrar edildiğini saymaktadır. İstenilen sayıda değer girildiğinde tekrar işlemi bitirilerek, programın diğer adımları işletilmeye devam edilmektedir. 10

3 AKIŞ DİYAGRAMLARI Geliştirilecek olan yazılımın genel yapısının şematik gösterimine akış diyagramı adı 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 oluşturulması sırasında algoritma aşaması atlanarak, doğrudan akis diyagramlarının hazırlanmasına başlanabilir. Programlama tekniğinde önemli ölçüde yol almış kişiler bu aşamayı da atlayarak direkt olarak programın yazımına geçebilirler. Akis diyagramlarının algoritmadan farkı, adımların simgeler seklinde kutular içinde yazılmış olması ve adımlar arasındaki ilişkilerin (iş akışı) oklar ile gösterilmesidir. Akis diyagramlarında kullanılan semboller, anlamları ve kullanış amaçları aşağıda 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. Kullanılacak verilere ait değişkenlerin tanımlanması için kullanılır. Değer atama işlemleri ve dışarıdan veri girişleri için kullanılır. 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. Tekrarlı yapıları (Döngü) temsil eder. Belgeye, yazıcıya, ekrana cıktı için kullanılır. İşlemleri ve program akışını birleştirmek için kullanılır. Oklar Diyagramın akis yönünü gösterir. 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. 11

3.1. Programlamada kullanılan mantıksal yapılar 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 Gore nerede yer alması gerektiğini vurgular. Bu yapı sona erinceye kadar ikinci bir işlem başlayamaz. Mantıksal yapılardan ikincisi Karar Verme yapısıdır (Sekil 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 (Sekil 1.4) oluşturmaktadır. Bu yapılara Pascal programlama dilinde For (Sekil 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. 3.2. Akis diyagramı örnekleri Şekil 1.4. Tekrarlı yapılar 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. 12

Örnek 1: Dışardan girilen bir sayıyı okuyup bu sayıyı tekrar yazdıran programın akış şemasını çiziniz. A2. Sayı x olsun A3. x i gir A4. x i akrana yaz A5. Bitir. Başla Sayıyı Oku Sayıyı ekrana yaz Bitir Örnek 2: Dışarıdan girilen iki sayıyı toplayıp sonucu ekrana yazan programın akış şemasını çiziniz. A2. Sayılar sy1 ve sy2, toplam top olsun A3. Sy1 i gir A4. Sy2 i gir Başla X, Y, T X, Y Oku A5. Top = sy1 + sy2 A6. Top u ekrana yaz A5. Bitir. T = X+Y T yi ekrana yaz Örnek 3: Yarıçap uzunluğu girilen dairenin alanını ve çevresini hesaplayıp sonucunu ekrana yazdıran programın akış semasını çiziniz. Başla Bitir r, al, cev, pi =3,14 A2. Yarı çap r Alan al, Çevre cev, pi=3,14 olsun A3. r yi gir A4. al = pi * r * r A5. cev = 2 * pi * r A6. al ve cev ekrana yaz A5. Bitir. r yi Oku al = pi * r * r cev = 2 * pi * r Al ve cev i ekrana yaz Bitir 13

Örnek 4: Dolar miktarı ve günlük kur girildiğinde TL miktarını hesaplayan program. Bu algoritmanın oluşumunda girişler; 1 Amerikan dolarının TL karşılığı, hesaplanacak $ miktarı, çıkış ise verilen $'in TL karşılığı olacaktır. Girişlerin 0 dan büyük olması gerekmektedir. Çözüm A2. dol_deg, dolar, tl A3. dol_deg'i gir A4. dol_deg<0 ise 3. adimi tekrarla A5. dolar ı gir A6. dolar<0 ise 5.adimi tekrarla A7. tl = dol_deg*dolar A8. tl değerini ekrana yaz A9. Bitir E E Başla Dol_deg, dolar, tl Dol_deg Oku Dol_deg<0 H Dolar Oku Dolar < 0 H Tl=dol_deg*dolar tl Bitir Örnek 5: Kullanıcının klavyeden girdiği vize ve final notlarına göre ortalamayı hesaplayıp ekrana yazan, 60 barajına göre Geçtiniz veya Bütünlemeye Kaldınız mesajı veren programın akış diyagramını hazırlayınız. A1: Başla A2: say, top, ort A2. vz, fnl, Ort tanımla A3: say=0, top=0 A3. vz i gir A4: say=say+1 A4. fnl i gir A5: top=top+say A5. Ort= (vz * 0,4) + (fnl * 0,6) A6: say<=100 ise A4 e git A6. Ort yı ekrana yaz A7: ort = top / 100 A7. Eğer (Ort > 60) ise A8: top ve ort u ekrana yazdır A8. Ekrana Geçti yaz A9: Bitir A9. Değilse Bütünlemeye Kaldınız yaz A10. Bitir Başla vz, fnl, Ort vz, fnl Ort =(vz*0,4)+(fnl*0,6) Ort E H Ort > 60 Geçtiniz Bütünlemeye Kaldınız Bitir 14

Örnek 6: 1'den 100'e kadar olan sayıların toplamlarını ve ortalamalarını veren programın akış diyagramını çiziniz. A1: Başla A2: say, top, ort A3: say=0, top=0 A4: say=say+1 A5: top=top+say A6: say<=100 ise A4 e git A7: ort = top / 100 A8: top ve ort u ekrana yazdır A9: Bitir E Başla say,top,ort say=0, top=0 say=say+1 top=top+say Say<=100 H Ort=top/100 Top, Ort Bitir Örnek 7: Kullanıcının gireceği 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 sayı: Y Algoritma A2. Fak = 1, X = 0, Y A3. Y'i gir A4. Y<0 ise 2. adimi tekrarla A5. X = X+1 A6. Fak = Fak*X A7. X<Y ise A4 e geri dön A8. Fak değerini yaz A9. Bitir. E Başla fak, x, y fak=1, x=0 x = x + 1 fak = fak * x x <= y H y fak 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 Gore 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. 15