Programlamanın Temelleri



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

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

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

Ö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

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

Algoritmanın Hazırlanması

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

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

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

Genel Programlama I

PROGRAMLAMAYA GİRİŞ DERS NOTLARI

Bilgisayar Programı Nedir?

Dr. Musa KILIÇ Öğretim Görevlisi

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

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

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

ALGORİTMA VE AKIŞ ŞEMALARI

BİLGİSAYAR PROGRAMLAMA MATLAB

Bilgisayar Programlama. Giriş

Algoritmalar ve Programlama. Algoritma

BILGISAYAR PROGRAMLAMAYA GIRIS

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

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

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

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

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

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

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

BÖLÜM 2: ALGORİTMALAR

4- ALGORİTMA (ALGORITHM)

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.

Algoritma ve Programlamaya Giriş

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

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

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

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

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

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

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

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

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

Bilgisayarda Programlama. Temel Kavramlar

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

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


EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

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

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

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

Yazılım Mühendisliği 1

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI

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

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

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

Algoritma kelimesinin kökeni:

İÇ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

BİLGİSAYAR PROGRAMLAMA DERSİ

Ö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.

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

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

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

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

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

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Đ

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

İÇ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

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

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

BLG 1306 Temel Bilgisayar Programlama

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

ALGORİTMA ÖRNEKLERİ ve YAZILIYA HAZIRLIK SORULARI

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

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

ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

PROGRAMLAMA DİLLERİ I

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

Algoritma ve Akış Şemaları

PROGRAMLAMAYA GİRİŞ ve BASIC

BİLGİSAYAR PROGRAMLAMA DERSİ

Basit Algoritma Akış Diagramı Örnekleri

Algoritma ve Akış Diyagramları


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

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

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

Hafta 4 Döngü Yapıları

Algoritma ve Akış Şemaları

PROGRAM AKIŞ DİYAGRAMLARI

BLG 1306 Temel Bilgisayar Programlama

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

SİNOP ÜNİVERSİTESİ MESLEK YÜKSEKOKULU MEKATRONİK PROGRAMI

Erzurum Teknik Üniversitesi Mühendislik Mimarlık Fakültesi Bilgisayar Programlama Dersi Ödevi Soru

BİLGİSAYAR PROGRAMLAMA DERSİ

Problem Yaklaşım Temelleri, Algoritma ve Akış Şeması

EM-554 İleri Bilgisayar Programlama Teknikleri Algoritma ve Akış Diyagramları

Algoritma ve Akış Diyagramları

Programlama Dilinin Özellikleri

Transkript:

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

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. Şekil 1.1 Yazılım oluşturma evreleri 2.1. Bilgisayar Programcılığı 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... 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 Bilgisayar üzerinde belirli bir problemi çözmek için, bir bilgisayar dili kullanılarak yazılmış deyimler dizisine program adı verilir. 5

Bir programın yazımında izlenecek adımlar şu şekildedir; 1 ) Analiz Problemin farkına varılır. Problemi analiz edilir, Çözüm yolları düşünülür. Problemin girdileri, çıktıları ve diğer kısıtlama ve gereksinimleri belirlenir. 2 ) Algoritma :İyi çözüm yolları seçilip Algoritma oluşturulur ve Akış diyagramı çizilir. 3 ) Dil Secimi :Uygun bir dil seçilir. 4 ) Kodlama : Programlama dili ile kodlama gerçekleştirilir. 5 ) Test : Programın doğru çalışıp çalışmadığını test edilir. Bu test değişik veriler (girdiler) için tekrarlanır. 6 ) Program dağıtılır, pazarlanır. 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 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ş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. Algoritma Örneği: 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 İşini yapmaya başla. 6

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. 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ıyı topla A5. Toplamın değerini yaz A6. Bitir. 7

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. Ö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 8

Ö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ı STANDART FLOW CHART ANLAMI 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ışarıdan veri girişleri için kullanılır. Kullanılacak verilere ait değişkenlerin tanımlanması için kullanılır. Değer ataması ve değişik atama işlemleri için kullanılır. Aritmetik işlemler. Kontrol ve karar verme işlemlerini temsil eder. Tekrarlı yapıları (Döngü) temsil eder. Ekrana, belgeye, yazıcıya çı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

FLOWCHART AKIŞ DİAGRAMI PROGRAMI Flowchart programı akış diagramlarının hazırlanmasında kullanılan yardımcı bir programlama yazılımıdır. Kağıt üzerinde yapılacak akış diagramları bu program ile daha kolay bir şekilde düzenlenebilir ve test edilebilir. Test ederek programın nasıl çalışacağını görebilirsiniz. Programa başlama Atamlar, Aritmetik İşlemler ve Metinsel işlemler Dışarıdan veri girişi (Bu işlem yapılırken veri aynı zamanda tanımlanmış olur) Ekrana, belgeye ya da yazıcıya veri çıkışı Karar ve kontrol deyimi (Döngüler için de bu yapı kullanılır) Birleştirme Kullanıcı tanımlı fonksiyon çağırma Windows penceresi açma Programı bitirme Diyagramdaki nesneleri bağlamak, düzenlemek, bağlatı ve nesneleri silmek için bu bölüm kullanılır. Akış digramını test etmek için çalıştırma Çalıştırılan programı durdurma Çalıştırılan programa ara verme Test aşamasında adımlar arasındaki geçiş zamanını ayarlamayı sağlar Programda kullanılan verilerin bellekteki yerleşimini görmeyi sağlar Programda kullanılan değişkenleri görmeyi sağlar 13

Örnek 1: Dışardan girilen bir sayıyı okuyup bu sayıyı tekrar yazdıran programın akış şemasını çiziniz. A2. sayı tanımla A3. sayı yı gir A4. sayı yı ekrana yaz A5. Bitir. Örnek 2: Dışarıdan girilen iki sayıyı toplayıp sonucu ekrana yazan programın akış şemasını çiziniz. Algoritma : A2. Sayılar s1,s2, Sonuç toplam olsun A3. s1 i gir A4. s2 yi gir A5. toplam= s1 + s2 A6. toplam ı ekrana yaz A7. Bitir Örnek 3: Yarıçap uzunluğu girilen dairenin alanını hesaplayıp sonucunu ekrana yazdıran programın akış semasını çiziniz. A2. Yarı çap r Alan al, Çevre cev, pi=3,14 olsun A3. r yi gir A4. alan = pi * r * r A5. alan ı ekrana yaz A6. Bitir. 14

Ö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. Çözüm A2. dd, dolar, tl A3. dd'i gir A4. dolar ı gir A5. tl=dd * dolar A5. tl değerini ekrana yaz A9. 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. A2. vz, fnl, Ort tanımla A3. vz i gir A4. fnl i gir A5. Ort= (vz * 0,4) + (fnl * 0,6) A6. Ort yı ekrana yaz A7. Eğer (Ort > 60) ise A8. Ekrana Geçtiniz yaz A9. Değilse Kaldınız yaz A10. Bitir 15

Ö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 Ö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: fakt Faktöriyeli hesaplanacak sayı: sayi A2. fakt = 1, sayi A3. Sayi yi gir A4. fakt = fakt * sayi A5. Sayi = sayi -1 A6. sayi >= 1 ise A4 e geri dön A7. fakt değerini ekrana yaz A8. Bitir. 16 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.

PROGRAMLAMA TEMELLERİ ALGORİTMA AKIŞ DİYAGRAMI ÇALIŞMALARI Soru1. Kullanıcının girdiği sayının faktöriyelini hesaplayan ve ekrana yazan programı yazınız. (sayaç kullanarak) Soru 3. Başlangıç ve bitiş değerleri kullanıcı tarafından belirlenen aralıktaki sayıları ve bu sayıların toplamını ekrana yazan program Soru 2. 0 ile 10 arasındaki sayıların toplamını hesaplayıp sayıları ve toplamı ekrana yazan programın akış diyagramını yapınız. Soru 4. Kullanıcını girdiği iki sayıyı isimlendirerek büyük ve küçük olan sayıyı söyleyen eğer sayılar eşit ise sayılar eşittir mesajı veren program. 17