BİLGİSAYAR PROGRAMLAMA DERSİ

Benzer belgeler
BİLGİSAYAR PROGRAMLAMA DERSİ

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

MATLAB İLE PROGRAMLAMAYA GİRİŞ. Nedim TUTKUN Elektrik Elektronik Mühendisliği Bölümü

BİLGİSAYAR PROGRAMLAMA MATLAB

Algoritmanın Hazırlanması

BİLGİSAYAR PROGRAMLAMA DERSİ

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

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

Algoritmalar ve Programlama. Algoritma

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

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

PROGRAMLAMAYA GİRİŞ DERS NOTLARI

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

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

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

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

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

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

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


Dr. Musa KILIÇ Öğretim Görevlisi

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.

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

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

Algoritma ve Programlamaya Giriş

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

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

BİLGİSAYAR PROGRAMLAMA DERSİ

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

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI

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

BÖLÜM 2: ALGORİTMALAR

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

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

Bilgisayar Programı Nedir?

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

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

ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

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

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

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

BLG 1306 Temel Bilgisayar Programlama

Hafta 4 Döngü Yapıları

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

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

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

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

Bilgisayar Programlama. Giriş

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

Bilgisayarda Programlama. Temel Kavramlar

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

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

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

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

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

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

Algoritma ve Akış Diyagramları

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

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Đ

ALGORİTMA VE AKIŞ ŞEMALARI

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

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

Algoritma kelimesinin kökeni:

Bilgisayar II Dersi. Bölüm-2

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-4 Döngü Yapıları. Yrd. Doç. Dr. Ümit ATİLA

BİLGİSAYAR PROGRAMLAMA DERSİ

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

Algoritma ve Akış Diyagramları

Genel Programlama I

Dersin Sorumlusu: Yrd. Doç. Dr. Birol SOYSAL. Sunumları Hazırlayan: Doç. Dr. Bülent ÇAKMAK

Bazen de bir işletme veya yönetimin otomasyonunu sağlamak amacı ile bu tip problemler tanımlanır.

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

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

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

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

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

MATLAB de. Programlama. Kontrol Yapıları. Döngü Yapıları. Doç. Dr. İrfan KAYMAZ Matlab Ders Notları

ALGORİTMA VE PROGRAMLAMA (Bölüm 1) Prof. Dr. Hakan Ündil - Elektronik Teknolojisi Güz Bölüm 1-2

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

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

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

Basit Algoritma Akış Diagramı Örnekleri

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

Hafta 5 Algoritma Örnekleri ve Analizi

C++ Dilinde Bazı Temel Algoritmalar

Eastern Mediterranean University Faculty of Arts & Sciences -- Department Of Mathematics BİLG213 BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

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.

C SHARP UYGULAMA ÇALIŞMASI

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

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

Ünite 01 Algoritma Geliştirme

Algoritma ve Akış Şemaları

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

ÖDEV (Vize Dönemi) CEVAPLAR. 1. Ekrana Merhaba Dünya! yazdıran algoritmanın akış diyagramını çiziniz ve sözde kod olarak yazınız.

3. Bölüm Algoritmalar

BMT 101 Algoritma ve Programlama I 7. Hafta. Yük. Müh. Köksal Gündoğdu 1

Transkript:

BİLGİSAYAR PROGRAMLAMA DERSİ 1. DERS NOTU Konu: Algoritmalar Hazırlayan: Yrd. Doç. Dr. Ahmet DUMLU 1

BİLGİSAYARLA PROBLEM ÇÖZÜMÜNÜN AŞAMALARI René Descartes Felsefeci Problem Çözme Tekniğinde Descartes in Tavsiyesi; 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 ilerleyin. 4. Olaya bakışınız çok genel olmalı ve hazırladığınız ayrıntılı liste ise hiçbir şeyi dışarıda bırakmayacak kadar kusursuz ve eksiksiz olmalıdır. 2

BİLGİSAYARLA PROBLEM ÇÖZÜMÜNÜN AŞAMALARI Bir problemi çözmek için yazılacak programda, genel olarak, aşağıdaki yazılım geliştirme aşamaları uygulanmalıdır. 1. Problemin Analizi: Problemin tam olarak ne olduğunun anlaşılmasıdır. Bu nedenle, problemin çözümünden neler beklendiği ve yaratacağı çözümün girdi ve çıktılarının neler olacağı kesin olarak belirlenmelidir. 2. Algoritma Geliştirme: Problemi çözmek için kullanılacak çözüm adımlarını gösteren bir liste yapılması gereklidir. Bir problemin çözüm adımlarını gösteren bu listeye algoritma denir. Böyle bir liste tasarlanırken, ilk önce problemin ana adımları çıkarılır; daha sonra her adım için, gerekiyorsa, daha ayrıntılı bir çözüm tasarlanmalıdır. 3. Akış Şeması Çizimi: Geliştirilen algoritmanın şekillerle ifade edilmesidir. 3

BİLGİSAYARLA PROBLEM ÇÖZÜMÜNÜN AŞAMALARI 4. Programlama Dili Seçimi: Geliştirilen algoritmayı kolay bir şekilde bilgisayar ortamına aktaracak bir bilgisayar programlama dilinin seçilmesidir. 5. Programın Yazılması: Seçilen programlama dilinin kuralları kullanılarak programın yazılması aşamasıdır. 6. Derleme/Yorumlama: Programlama dili komutlarına dönüşmüş çözümün yazım hatalarının olup olmadığının kontrol edilmesi ve programın makina dili komutlarına çevrilmesidir. 7. Çalıştırma: Derlenmiş programın işletim sistemi tarafından hard diskten alınarak belleğe taşındığı ve programın ilk komutunun adresinin Merkezi İşlem Birimine bildirildiği aşamadır. 8. Test/Hata Ayıklama: Programın mantıksal olarak test edildiği ve muhtemel her giriş için doğru sonuçlar üretip üretmediğinin kontrol edildiği aşamadır. 4

PROGRAM (BİLGİSAYAR PROGRAMI) NEDİR? Problem çözümü kısmında anlatılan adımlar uygulandıktan sonra ortaya çıkan ve sorunumuzu bilgisayar ortamında çözen ürüne program denir. PROGRAMLAMA (BİLGİSAYAR PROGRAMLAMA) NEDİR? Problem çözümünde anlatılan adımların tümüne birden programlama denir. 5

PROGRAMLAMA DİLİ NEDİR? Bir problemin algoritmik çözümünün bilgisayarda yazılmasını sağlayan kurallar dizisidir. BAZI PROGRAMLAMA DİLLERİ MATLAB, Delphi, Pascal, Fortran C, C++, C#, Visual Basic, Java 6

ALGORİTMA Algoritma, herhangi bir sorunun çözümü için izlenecek yol anlamına gelmektedir. Çözüm için yapılması gereken işlemler hiçbir alternatif yoruma izin vermeksizin sözel olarak ifade edilir. Diğer bir deyişle algoritma, verilerin, bilgisayara hangi çevre biriminden girileceğinin, problemin nasıl çözüleceğinin, hangi basamaklardan geçirilerek sonuç alınacağının, sonucun nasıl ve nereye yazılacağının sözel olarak ifade edilmesi biçiminde tanımlanabilir. Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları göz önünde bulundurularak ayrıntılı bir biçimde tanımlanmalıdırlar. 7

ALGORİTMA İşine gitmek üzere uyanan birinin yapması gereken işler için nasıl bir algoritma geliştirilmelidir? 8

ALGORİTMA 1.Yataktan Kalk 2. Pijamalarını Çıkar 3. Duş Al 4. Elbiselerini Giy 5. Kahvaltını Yap 6. Otobüse Bin ve İşe Git 9

Sıra önemli!!! Doğru Sıralama Hatalı Sıralama 1. Adım 1. Adım 2. Adım 2. Adım 3. Adım 3. Adım 4. Adım 5. Adım 4. Adım 5. Adım 6. Adım 6. Adım 10

Bisküvili Pasta Yapılışı (ALGORİTMASI ) Bisküvili Pasta Malzemeleri: 1 litre süt 2 paket puding (çikolata parçalı) Kakaolu bisküvi Antep fıstığı (dövülmüş) 1 paket krem şanti Krem şanti yapmak için süt Bisküvili Pasta Tarifi (ALGORİTMASI) 1. Pudingleri bir tencere içine döküp 1 litre süt ilave ederek pişirin. 2. Dikdörtgen borcam içine bisküvileri düzgün şekilde dizin ve üst kısmına puding dökün. 3. Aynı işleme 3 kat olacak şekilde devam edin. 4. Pasta tam olarak soğuduktan sonra krem şantiyi üstündeki tarife göre hazırlayın. 5. Kremayı pastanın üstüne sürün. 6. En üst kısma ise fıstık serpip buzdolabında dinlenmeye alın. 11

Bir Hastanenin Röntgen Çektirme Algoritması 12

Algoritmalarda Kullanılan Temel Terimler Değişken Atama Sayaç Döngü 13

Değişken Bir program içerisinde bilgileri geçici olarak saklamak ve ihtiyaç duyduğumuzda bu bilgiler üzerinde işlem yapmak için değişkenlerden yararlanırız. Su bardağını bir değişken olarak düşünün. Resimdeki bardakların hepsi aynı hacme sahip özdeş bardaklardır. Fakat; Birinci bardağın %10 nu dolu ve dolayısıyla bardak değişkeninin değeri %10 dur. İkinci bardağın %35 i dolu ve dolayısıyla bardak değişkeninin değeri %35 dir. Üçüncü bardağın %75 i dolu ve dolayısıyla bardak değişkeninin değeri %75 dir. Dördüncü bardağın %90 i dolu ve dolayısıyla bardak değişkeninin değeri %90 dır. 14

Atama Herhangi bir değişkenin içine bir değeri veya ifadenin/işlemin sonucunu aktarma işlemine atama denir. Sürahinin içindeki su bizim değerimiz veya ifademiz/işlemimizdir. Değişkenimiz Bardak 15

Atama (devam) değişken yazan kısım, herhangi bir değişkenin adıdır (Örneğin bardak değişkeni). ifade yazan kısımda ise matematiksel, mantıksal veya alfanümerik bir ifade olabilir (Sürahi içindeki su). Aradaki = sembolü, atama operatörü olarak adlandırılır ve sağdaki ifadenin/işlemin sonucunu soldaki değişkene aktarır. Bu durumda değişkenin (eğer varsa) bir önceki değeri silinerek yeni değere atanır. (Bardak değişkenine %10, %35, %75 değerlerinde su koymak) Y=9 X=26 X=3 Y=X+5 16 işleminin sonucunda Y nin bir önceki değeri silinerek yerine 8 değeri atanır.

Sayaç Programlarımızda bazı işlemlerin belirli sayıda yaptırılması veya işlenen/üretilen değerlerin sayılması gerekebilir. Sayma amacıyla kullanılan bu tür değişkenlere sayaç denir. 1. Dolum İşlemi 2. Dolum İşlemi 3. Dolum İşlemi Bardak bir değişkendir aynı zamanda bardağa yapılan su dolum işlemi ise sayaç adı verilen bir değişkendir. Resimdeki örnekte 3 kez dolum işlemi yapılmaktadır. 17

Sayaç (devam) sayac = sayac + 1 bilgisayar deyimi ile sayac adlı değişkenin eski (önceki) değerine 1 eklenmektedir. Bulunan sonuç yine kendisine, yeni değer olarak aktarılmaktadır. Bu tür değişkenlere, algoritmada sayaç veya sayıcı (counter) adı verilir. Yani sayaç işlem akışı kendisine her geldiğinde, belirtilen adım değeri kadar artan veya azalan değişkendir. 18

Sayaç(devam) bardak=%0 bardak=%10 sayac=0 sayac=sayac+1 sayac=1 19

Sayaç (devam) bardak=%35 bardak=%75 sayac=sayac+1 sayac=2 sayac=sayac+1 sayac=3 20

Sayaç (devam) bardak=%90 sayac=sayac+1 sayac=4 Bardaktaki su sizin için yeterliyse su doldurma işlemini iki farkı şartla durdurabilirsiniz. 1. Bardaktaki su miktarı %90 olduğunda doldurma işlemini durdur. 2. Eğer sayaç değeri 4 ise doldurma işlemini durdur. 21

Sayaç (devam) Şimdi bardaktaki suyu adım adım boşaltalım. bardak=%90 bardak=%75 sayac=sayac-1 sayac=3 sayac=4 22

Sayaç (devam) bardak=%35 bardak=%10 sayac=sayac-1 sayac=2 sayac=sayac-1 sayac=1 23

Sayaç (devam) bardak=%0 sayac=sayac-1 sayac=0 Dolayısıyla sayaç değişkeni artan bir değişken olabileceği gibi azalan bir değişkende olabilir. 24

Döngü Birçok programda bazı işlemler belirli ardışık değerlerle gerçekleştirilmekte veya belirli sayıda yapılmaktadır. Programlardaki belirli işlem bloklarını, belirli sayıda tekrarlayan işlem akış çevrimlerine döngü denir. 25

Bardak hacminin %90 nı dolana kadar su doldurma işlemine devam et. 26

Döngü Oluşturma Kuralları: 1. Döngü değişkeninin başlangıç değeri belirlenir. 2. Döngü değişkeninin bitiş değeri belirlenir. 3. Döngü değişkeninin bitiş değerine ulaşıp ulaşmadığı test edilir. 4. İstenen işlem gerçekleştirilir. 5. Döngü değişkeni, döngü içinde adım miktarı kadar artırılır yada azaltılır. Bardak doldurma işleminde sayaç değişkeni bir döngü değişkeni olarak tanımlanabilir. Sayaç değeri başlangıçta 0 olarak alınırken bitiş değerinin 4 olması istenebilir. Su doldurma işlemi esnasında sayaç değeri test edilir. Sayaç değeri 4 e ulaştığında işlem bitirilir (Döngüden çıkılır). 27

ADIM ADIM ALGORİTMA GELİŞTİRME VE GELİŞTİRİLEN ALGORİTMANIN AKIŞ DİYAGRAMI İLE TEMSİL EDİLMESİ PROBLEM: Ax 2 + Bx + C = 0 şeklinde verilen 2. dereceden bir denklemin köklerini hesaplayarak ekrana yazdıracak bir algoritma geliştiriniz ve akış diyagramını çiziniz. 28

Problemi analiz edelim: 1. Kullanıcı A, B, C sayılarını girecek ve bizden köklerini bulmamızı istenen 2. derecen denklem ortaya çıkacak. Örneğin: A = 3, B = 5, C = 6 3x 2 + 5x + 6 2. Matematik bilgimizi kullanarak denklemin diskiriminantının hesaplanması gerekecek. = B 2 4 A C 3. Eğer diskiriminant sıfırdan küçük ise ( < 0) bu denklemin kökleri sanal olacak. Diskiriminant sıfıra eşit veya daha büyük ise ( 0) kökler aşağıdaki gibi hesaplanacak. 29

Problemin Bilgisayar Programıyla Çözümü İçin Gerekli Olan Değişkenlerin Tanımlanması 30

Problemin Bilgisayar Programıyla Çözümü İçin Gerekli Olan Algoritma Adım 1: Başla Adım 2: A,B,C sabitlerini değişkenlere ata Adım 3: Deltayı hesapla Adım 4: Delta<0 ise Adım 5 e, değilse Adım 6 a geç Adım 5: Ekrana Kökler sanaldır yaz Adım 9 a geç Adım 6: 1. kökü hesapla, x1 değişkenine ata Adım 7: 2. kökü hesapla, x2 değişkenine ata Adım 8: x1 ve x2 değişkenlerini ekrana yaz Adım 9: Bitir 31

Akış Diyagramları (Flow Charts): Algoritmanın, görsel olarak simge ya da sembollerle ifade edilmiş şekline akış şemaları veya FLOWCHART adı verilir. Akış şemalarının algoritmadan farkı, adımların simgeler şeklinde kutular içine yazılmış olması ve adımlar arasındaki ilişkilerin ve yönünün oklar ile gösterilmesidir. Programın saklanacak esas belgeleri olan akış şemalarının hazırlanmasına, sorun çözümlenmesi sürecinin daha kolay anlaşılır biçime getirilmesi, iş akışının kontrol edilmesi ve programın kodlanmasının kolaylaştırılması gibi nedenlerle başvurulur. Uygulamada çoğunlukla, yazılacak programlar için önce programın ana adımlarını (bölümlerini) gösteren genel bir bakış akış şeması hazırlanır. Daha sonra her adım için ayrıntılı akış şemalarının çizimi vardır. Akış şemaları en basit şekliyle dikdörtgen kutulardan ve oklardan oluşur. Akış şeması sembolleri ANSI (American National Standards Institute) standardı olarak belirlenmiş ve tüm dünyada kullanılmaktadır. 32

Başlangıç veya Bitiş Sembolü Programın başında ve sonunda kullanılır. Su doldurma işlemine Başla veya Bitir 33

Veri Girişi Sembolü Klavyeden yapılacak olan veri girişleri için kullanılır. Girilen her bir veri bir değişkende saklanır. Bardak en fazla %90 oranında dolsun 34

Hesaplama ve Atama Sembolü Her türlü hesaplama ve atama işlemi için kullanılır. Bardağa %10, %35, %75 ve %90 oranlarında su doldur. 35

Karşılaştırma Sembolü Evet Hayır Programın akışını bir karşılaştırmanın sonucuna göre değiştirmek için kullanılır. Karşılaştırma doğru ise Evet, yanlışsa Hayır yolu takip edilir. Sayaç değeri 4 oldu mu? Evet o zaman doldurma işlemini durdur. Hayır o zaman doldurma işlemine devam et. 36

Bilgi Çıkış Sembolü Ekran üzerinden kullanıcıya bilgi aktarmak amacıyla kullanılır. 37

Oklar Bilgi akışının yönünü belirtmek amacıyla kullanılır. 38

Başla Bardağın Ne Kadar Dolması Gerektiği Kullanıcıdan Al (Örneğin %90 Olsun) Bardağın %90 nı Dolumu? Evet Hayır Bardağa Su Doldur Bitir 39

Ax 2 + Bx + C = 0 şeklinde verilen 2. dereceden bir denklemin köklerini hesaplayarak ekrana yazdıracak algoritmanın akış diyagramını çiziniz. Başla Adım 1 A, B, C sayılarını Kullanıcıdan Al Adım 2 delta = B 2 4 A C Adım 3 Adım 4 delta < 0 Evet Adım 5 Hayır Ekrana Kökler Sanal Yazdır x 1 = ( B + delta)/(2 A) Adım 6 x 2 = ( B delta)/(2 A) Adım 7 Ekrana x 1 ve x 2 değerlerini yazdır Adım 8 Bitir Adım 9 40

Örnek: Verilen iki sayının ortalamasını hesaplayan programın algoritmasını geliştiriniz ve akış diyagramını çiziniz. Algoritma: Adım 1 : Başla Adım 2 : sayi1 değerini gir Adım 1 Adım 2 Adım 3 Akış diyagramı: Başla Sayi1=? Sayi2=? Adım 3 : sayi2 değerini gir Adım 4 ortalama=(sayi1+sayi)/2 Adım 4 : ortalama = (sayi1+sayi2)/2 Adım 5 : ortalama değerini ekrana yaz Adım 6 : Bitir Adım 5 Adım 6 ortalama Bitir 41

Örnek: Ax + B = 0 şeklinde verilen 1. derece denklemin çözümünü bulan programın algoritmasını geliştiriniz ve akış diyagramını çiziniz. (A=0 girilmiş ise veri girişi yenilenecektir.) Adım 1 Adım 2 Başla A=? Adım 1: Başla Adım 3 A = 0 Evet Adım 2: A değerini giriniz Adım 3: Eğer A 0 a eşit ise Adım 2 ye git Adım 4 B=? Hayır Adım 4: B değerini giriniz Adım 5 X=-B/A Adım 5: X=-B/A Adım 6 X Adım 6: Yaz X Adım 7 Bitir Adım 7: Bitir 42

Örnek***: 1 den 100 e kadar olan sayıların (100 dahil) toplamını ve ortalamasını bulan algoritmayı geliştiriniz. Not: Kullanıcı sayıları tek tek girmeyecek program bu toplamı otomatik hesaplayacak. Matematiksel olarak problemin çözümü: 1 + 2 + 3 + + 98 + 99 + 100 = Toplam 100 tane sayı olduğundan Ortalama = Toplam/100 43

Bu problemin çözümü için aşağıdaki mantıksal yaklaşımı kullanalım. Başlangıçta Toplam değerini sıfır alalım (Toplam=0). Toplanması gereken sayılar birer birer artımlı olduğundan sayac adı verdiğimiz bir değişken kullanalım. Başlangıçta Toplam=0 ve sayac=0 olsun. sayac değişkeninin değerini bir artıralım (sayac=sayac+1) ve ardından sayac değişkeniyle Toplam değişkenini toplayalım (Toplam=Toplam+sayac). Bu durumda sayac=sayac+1=0+1=1 olurken, Toplam=Toplam+sayac=0+1=1 olur ve bu sayac sayesinde toplanması istenen sayılardan ilkine ulaşmış oluruz. 1 + 2 + 3 + + 98 + 99 + 100 = Toplam Şu an için sayac=1 ve Toplam=1 değerindeyiz 44

sayac değişkenini tekrar bir artıralım ve yine ardından sayac değişkeniyle Toplam değişkenini toplayım. Bu durumda sayac=sayac+1=1+1=2 olurken Toplam=Toplam+sayac=1+2=3 olur ve bu sayac sayesinde toplanması istenen sayılardan ikincise ulaşmış olurken 1+2 toplamını bulmuş oluruz. 1 + 2 + 3 + + 98 + 99 + 100 = Toplam Şu an sayac=2 ve Toplam=3 değerindeyiz İşleme devam edelim; sayac değişkenini tekrar bir artıralım ve yine ardından sayac değişkeniyle Toplam değişkenini toplayım. Bu durumda sayac=sayac+1=2+1=3 olurken Toplam=Toplam+sayac=3+3=6 olur ve bu sayac sayesinde toplanması istenen sayılardan üçüncüsüne ulaşmış olurken 1+2+3 toplamına bulmuş oluruz. 1 + 2 + 3 + + 98 + 99 + 100 = Toplam Şu an sayac=3 ve Toplam=6 değerindeyiz 45

sayac değişkeninin değeri 100 oluncaya kadar bu adımları tekrar ettiğimizde sonuca ulaşacağımız kesindir. Ortalamayı bulmak basittir çünkü Ortalama=Toplam/100. Algoritma: A1: Başla A2: sayac=0 A3: toplam=0 A4: sayac=sayac+1 A5: toplam=toplam+sayac A6: Eğer sayac 100 e eşit değilse Adım 4 e git A7: ortalama=toplam/sayac A8: Yaz toplam, ortalama A9: Bitir 46

Ödev-1: 1 den 100 e kadar olan sayıların (100 dahil) toplamını ve ortalamasını bulan algoritmayı geliştirmiş bulunmaktayız. Geliştirmiş olduğumuz bu algoritmanın akış şemasını çiziniz. 47

Kaynaklar: Matlab İle Programlama (Dr. Deniz Dal) http://www.yildiz.edu.tr/~ayten/algortimaveprogramlama_bolum1-2.pdf (Öğr. Gör. Dr. Umut Engin) 48