Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma...

Post on 06-Feb-2018

243 views 0 download

Transcript of Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma...

Bilgisayar Programlama

2012-13 / Bahar

2

Program ve programlama dili nedir?

3

Program ve programlama dili nedir?

• İnsanla bilgisayar arasındaki iletişim aracı

• Programlama dili, programcı ile bilgisayar

arasındaki iletişimi sağlayan bir araç olup

programların yazılımında kullanılan bir

notasyondur (simgeler ve özel komutlar,

komut parçacıkları).

4

Program dönüşümü

• Düşük seviyeli diller (assembly : MOV AL, 61h)

• Orta seviyeli diller (PIC programlama: SUBWF f,d [d = f − W])

• Yüksek seviyeli diller (C/C++, Pascal, QBasic : printf(),

writeln(), PRINT)

5

Bilgisayarda problem çözme

aşamaları:

• Problemin tanımı

• Çözüm yolunun tespiti

• Algoritmanın hazırlanması

• Akış diyagramının çizilmesi

• Programın hazırlanması

• Hazırlanan programın test edilmesi

• Uygulama

ALGORİTMA

Bilgisayar, sadece

programcının kendisine

söylediği şeyi nasıl

yapacağını bilir.

Bundan dolayı programcı

bilgisayara problemi nasıl

çözeceğini bildirmelidir.

Bilgisayara nasıl iş yaptıracak, nasıl iletişim kuracaksınız?

Bir “Program” ile.

Bilgisayarlar program olmadan çalışmazlar.

Bilgisayarın dili makine dilidir.

Onunla makine mantığı ile iletişim

kurabiliriz. Bu da algoritma

(talimat, rutin, reçete) ile olur.

Program yazma, çözülmüş

bir problemin bir bilgisayar

dili ile kodlarını yazmaktır

(coding). Bu, en son iştir.

Kodlamadan önce

algoritma yazılmalıdır.

Algoritma

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

• 9. yüzyılda El Harezmî Al-Khowarizmi (Al-Harezmi)

tarafından bulunmuş ve onun adında türetilmiştir.

El Harezmî

• Tam adı; Ebu Abdullah Muhammed İbni Musa El Harezmî (Farsça: خوارزمی-

khvârâzmi, Arapça: أبو عبد هللا محمد ابن موسى الخوارزميAbū Abdullāh Muhammad ibn

Mūsā al-Khwārizmī); matematik, gökbilim ve coğrafya alanlarında çalışmış bir

bilim adamıdır. Fars veya Türk olduğu düşünülmektedir. Genel itibariyle Ortaçağ

İslam dünyasının en büyük bilimsel yeteneklerindendir. Batı Türkistan’da Aral

gölü güneyinde bulunan Harezim bölgesinde 780 yılında dünyaya gelmiş, 850

‘de Bağdat’ta vefat etmiştir.

• Harezmî, çağına göre üstün özellikler taşıyan eserler meydana getirmiştir. Bu

eserlerin günümüz matematikçilerini bile hayrete düşüren yönleri vardır. Mesela,

açıların ‘’Sinüs’’ gibi trigonometrik fonksiyonlarla ifade edildiğini gösteren

tabloları oluşturmuştur. 10. yüzyılda yaşayan ve tüm dünyaya isminin (El

Harezmî – Al Khrawarizmi) Latince telaffuzunu “Algoritma” olarak söylettiren bu

Müslüman Türk âlimi, cebir matematiğinin de kurucusudur. Zaten, cebir

kelimesi de Harezmî’nin ( El Kitab’ül Muhtasar Fi Hisab’il Cebri ve’l Mukabele )

“Cebir ve denklem hesabı üzerine özet kitap” adlı eserinden gelir.

Algoritma

Problem çözmek için geliştirilen Adım – adım

çözüm yöntemidir.

Verilen bir problemi çözmek için tasarlanan

talimatlar bütünüdür.

Bir sorunun çözümü için sunulan mantıksal ve

sembolik anlatımdır.

Algoritma

Algoritma sadece bilgisayar

programlamada kullanılmaz.

Bir fabrika üretiminin

algoritması, bir büro çalışma

düzeninin algoritması, bir planlı

gezinin algoritması...

Algoritma hazırlığı

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

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

Algoritma

Adım 1 – BaşlaAdım 2 – Birinci Sayıyı OkuAdım 3 – İkinci Sayıyı OkuAdım 4 – İki Sayıyı ToplaAdım 5 – Dur

Algoritmaya dikkat edilirse işlemlerin

sıralanmasında, işlem önceliklerinin

göz önünde bulundurulduğu görülür.

Ayrıca algoritma yazımı sorun

çözümünün başladığını gösteren

“Başla” ifadesi ile başlamakta ve

işlemlerin bittiğini belirten “Dur” ifadesi

ile sona ermektedir.

Algoritmadan Beklentiler

• Etkinlik: Bilgisayarlar düşünemez. Bu yüzden algoritmanın her adımı

anlaşılır, basit ve kesin bir biçimde ifade edilmiş olmalıdır. Yorum

gerektirmemeli ve belirsiz ifadelere sahip olmamalıdır. Gereksiz

tekrarlarda bulunmayan diğer algoritmalar içerisinde de kullanılabilir

olmalıdır.

• Sonluluk: Her algoritmanın bir başlangıç noktası, belirli işlem adımı ve

bir bitiş noktası içermelidir. Sonsuz döngüye girmemelidir.

• Kesinlik: İşlem sonucu kesin olmalı, aynı veri için her yeni çalıştırmada

aynı sonucu üretmelidir.

• Giriş/Çıkış: Algoritma giriş (üzerinde işlem yapılacak değerler) ve çıkış

(yapılan işlemler neticesinde üretilen sonuç değerler) değerlerine sahip

olmalıdır.

• Başarım/Performans: Amaç, donanım gereksinimi (bellek kullanımı

gibi), çalışma süresi gibi performans kriterlerini dikkate alarak yüksek

başarımlı programlar yazmak olmalıdır.

Algoritmaları bilgisayar programına çeviren üç teknik vardır:

• Sözde Kod (Pseudocode) – Programın ana hatlarını ve adımlarını gösteren kısa komutlar.

•Akış diyagramı (Flowchart)- Bir işi yapan mantıksal adımları ve adımlar arası geçişlerin grafiksel gösterimi.

• Sıradüzeni grafiği (Hierarchy charts) - Programın farklı parçalarının birbirleriyle ilişkilerini gösterir.

Bunlar, kullanılacak programlama diline bağlı

değildir.

Pseudo Code (Sözde/Kaba Kod)

• Sözde programlar, doğrudan konuşma dilinde ve programlama mantığı

altında, eğer, iken gibi koşul kelimeleri ve > = < gibi ifadeler ile beraber yazılır.

• İyi bir biçimde yazılmış, sözde koddan programlama diline kolaylıkla geçilebilir.

• ÖRNEK Problem: Verilen bir sıcaklık derecesine göre suyun durumunu belirten

bir sözde program (pseudo kod) yazınız.

• İstenilen programın Pseudo Kodu:

• 1. Program açıklama mesajı yaz.

• 2. Kullanıcın sıcaklığı girmesi için bir uyarı mesajı yaz.

• 3. Girilen Sıcaklığı Oku.

• 5. Eğer Sıcaklık < 0 ise Durum=“Buz”

• 6. Eğer Sıcaklık>= 100 ise Durum=“Buhar”

• 7. Değilse Durum =“Su”

• 8. Sonucu Yaz.

Algoritma çalışmasında iki önemli görev vardır:

1. Belirli bir problemi çözmek için bir

algoritma tasarlamak

2. Verilen bir algoritmayı analiz etmek

– Bu iki görev birbiriyle ilişkilidir.

– Algoritmanın analizi yeni algoritmaların

tasarlanmasını sağlar.

Program geliştirme yöntemi

• Bilgisayar programcılarının program geliştirme

yöntemi aşağıdaki adımlardan oluşur:

1. Problem

2. Analiz

3. Tasarım

4. Uygulama

5. Sınama

6. Bakım

1.Problem

• Bu ilk adımda programcı, problemi

anlamaya çalışır.

• Problemin ne olduğunu, çözümde nelerin

gerekli olduğunu, lazım olan ön bilgileri

belirler.

• Problemi anlamanın çözümün yarısı

olduğu unutulmamalıdır!

Problem çözme sırası(Problem Solving Cycle)

1. Problemi anlama (Understanding, Analyzing),

2. Bir çözüm yolu geliştirme (Designing),

3. Algoritma ve program yazma (Writing),

4. Tekrar tekrar test etme (Reviewing)

Polya, George (1957) ‘How To Solve It’,

Princeton University Press, 2nd Edition

Problem Çözmenin Adımları(Steps in Solving a Problem)

1. İstenenler analizi (Requirements Analysis): Problemi

bütün boyutları ile tanıma ve ne yapılması istendiğini net

olarak anlama, problem çözülebilir mi?

2. Çözüm yolu bulma (Design): Bir çözüm yolu geliştirme

ve algoritmasını yazma.

3. Uygulama (Implementation): Çözüm algoritmasını

uygun bir program diline çevirme

4. Test etme, hatalardan ayıklama, kurma ve bakımını

yapma (Testing, debugging, installing and maintenance)

•Sonunda ne elde

etmek istiyorsun

(Çıktı-Output)

•Elinde hangi ham

veriler var (Girdi-

Input)

•Girdileri istediğin

Çıktıya dönüştürecek

işlemi (process) belirle

Örnek: 2 saatte 190

km yol alan

arabanın ortalama

hızı nedir?

•Output: saatte

ortalama hız

•Input: gidilen

mesafe ve süre

•Process: orthız =

mesafe/süre

Problem çözme olgusunun

grafiksel gösterimi

Girdi-İşlem-Çıktı türüne en iyi örnekler yemek

tarifleridir. Malzemeler ve miktarları, hazırlama -

pişirme ve sonuda istenen yemek!

Girdi

(Input)

İşlem

(Processing)

Çıktı

(Output)

Monopoly oyununda zar attıkça sizi yönlendiren talimatlar (2 tur bekle,

para öde, 5 geri, 3 ileri git vs birer algoritmadır.

2. Analiz• Bu adımda problemi çözüm için verilen değerler ile

programın elde etmesi gereken değerlerin ne

olduğu belirlenmelidir.

• Girdiler ve çıktılar madde madde yazılır.

• Bu girdi ve çıktı arasındaki ilişki belirlenir.

• Belirlenen ilişki formüller ile açıklanabilir.

• Problem adımı başarılı bir şekilde gerçekleşmeden

analiz adımına geçilmemelidir.

• Problem çözümünde ilk iki adım çok önemlidir.

• Çözüm için bir fikir bulunamamışsa problem tekrar

gözden geçirilmelidir.

ÖRNEK: Taban ve yükseklik değerleri

verilen üçgenin alanını hesaplayınız.

PROBLEM:

• Bu problemde üçgen alanını bulmak için

gerekli olan formülün bulunması

zorunludur.

• Formül olduğunu düşünmek çözüm

yöntemi hakkında bir fikir oluştuğu

anlamına gelir.

ÖRNEK: Taban ve yükseklik değerleri

verilen üçgenin alanını hesaplayınız.

ANALİZ

– Girdiler:

• Taban ve Yükseklik

– Çıktılar:

• Alan

ÖRNEK: Taban ve yükseklik değerleri

verilen üçgenin alanını hesaplayınız.

• Verilen değerler ile çıktı arasındaki formüle

edilmiş ilişkiyi belirlemek gerekir.

• Gerekli olan girdileri ve birbirleri arasındaki

ilişkileri belirleyerek bir problemi

modelleme işlemine soyutlama

(abstraction) adı verilir.

Alan=(Taban X Yukseklik)/2

3. Tasarım

• Problemin çözümü için gerekli olan çözüm

aşamalarını mantıksal sıra içerisinde yazılması

aşamasıdır.

• Yapılan işleme algoritma adı verilir.

• İyi bir algoritmanın iki şartı vardır.

– Bütün adımlar mantıksal bir düzen ve sıra içerisinde

verilmeli

– Verilen adımların tamamı çalıştırılabilir olmalıdır.

Tasarım • Algoritma tasarlanırken bütün problem parçaları aynı

anda çözülmeye çalışılmaz.

• Problem kendi içinde önemli parçalara ya da alt

problemlere ayrılır ve sonra bu alt problemler

çözülerek esas problemin çözümüne gidilir.

• Bu yönteme yukarıdan aşağı tasarım (top-down

design) veya böl ve yönet (divide&conquer) adı verilir.

• Algoritma bütün tanımlamaları içerecek şekilde adım

adım yazılır.

• İlk adım "BAŞLA", son adımda her zaman "DUR" olur.

Böl ve Yönet Metodu(Divide-and-conquer)

• Çok büyük problemleri parçalara

ayırarak daha kolay çözeriz.

• Çözülecek kadar küçülttüğün

parçaları mantıklı bir sıraya koy.

• Her parçayı ayrı modüller olarak

çöz ve birbirine bağla (entegre

olsun)

Tasarım

• Algoritma tasarımının önemli bir parçası

da algoritmanın doğru çalışıp

çalışmadığının adım adım izlenerek

kontrol edilmesidir.

• Bu kontrol etme esnasında erkenden fark

edilen hatalar programcıya hem zaman

kazandıracak, hem de boş yere enerji

harcamasına engel olacaktır.

Aşağıda örnek bir algoritma çalışması

verilmiştir.

• Örnek: Problem “tahtaya adını yazma"

işidir.

• Algoritma aşağıdaki gibi yazılabilir.

Tahtaya adını yazma1. BAŞLA

2. Yerinden kalk

3. Yönün tahtaya doğru mu?

Hayırsa Tahtaya Dön

Evetse adım 4 e git

4. Tahtaya doğru yürü

5. Tahtaya geldin mi?

Hayırsa adım 4‘e

Evetse adım 6'ya git

6. Kalemi al

7. Adını yaz

8. DUR

Tahtaya adını yazma

• Burada emirler, belli sorgulamalar yapılarak vemantıksal bir sıra içinde verilmiştir.

• Yerinden kalk emri verilmeden ondan yürümesiistenemez.

• Kalemi almadan adını yaz emrinin verilmesidoğru olmaz.

• Sorgulamalarla da işlemi yapıp yapmadığıkontrol edilmiştir.

Tahtaya adını yazma

• Bu örnek, sadece adımların tutarlılığını vemantıksal sırasını göstermek içindi.

• Yoksa bilgisayar bu tür işleri yerinegetiremez.

• Esasında kullanıcılar bilgisayarlara belligirdiler verir.

• Onlarda programcının verdiği adımlaragöre bu girdiler üzerinde matematiksel vemantıksal işlemler yaparak bir çıktıüretirler.

Örnek: Üçgenin Alanı

• Yukarıdaki verilen üçgen alanını hesaplama

işlemi için gerekli olan algoritma, sözde kod

(pseudocode) kullanarak aşağıdaki gibi

oluşturulabilir.1. BAŞLA

2. Taban değerini al

3. Yükseklik değerini al

4. Taban ile yüksekliği çarp sonucu ikiye böl

5. Sonucu yaz

6. DUR

Üçgenin Alanı

• Önceki algoritma kendi içerisinde tutarlı ve

mantıksal sıra ile yazılmıştır.

• Değerler verilmeden alan hesabı işlemini

yaptırmak doğru olmazdı.

• Fakat algoritmalarda daha öncede belirtildiği gibi

kısa ve basit kelimelerle emirler verilecektir.

• Böylece uygulama yapılacak program kodlarına

adapte olmak kolaylaşacaktır.

Üçgenin Alanı

1. BAŞLA

2. OKU taban

3. OKU yükseklik

4. alan= (Taban X Yükseklik)/2

5. YAZ alan

6. DUR

Üçgenin Alanı

• Uzun cümleler yazmak yerine kısa basitkelimelerle ve formülize edilmiş işlemlerleçözüm sağlanmış oldu.

• Her algoritma BAŞLA emri ile başlar veDUR emriyle de biter.

• Dışarıdan verilmesi gereken bilgiler içinOKU, sonuçları göstermek içinde YAZemri kullanılabilir.

Örnek: İki sayıyı toplamak için gerekli

programa ait algoritmanın

oluşturulması.

Algoritma:

1. Başla

2. Birinci sayıyı gir

3. İkinci sayıyı gir

4. İki sayının

toplamını yap

5. Toplamın

değerini yaz

6. Bitir

1. Başla

2. X değerini gir

3. Y değerini gir

4. toplam = X+Y

5. toplam’ ı yaz

6. Bitir

Örnek :

• Beş sayının toplamını ve ortalamasını

veren programa ait algoritmanın

oluşturulması

• Toplam adı için Toplam

• Ortalama adı için Ort

• Girilen sayılar için X

• Arttırma için Sayac kullanılırsa

Algoritma:

1. Başla

2. Toplam = 0, Sayac = 0

3. X’i gir

4. Toplam= Toplam+X

5. Sayac = Sayac +1

6. Eğer Sayac <5 ise 3’e git

7. Ort= Toplam/5

8. Toplam ve Ort değerlerini yaz

9. Bitir

4. Uygulama

• Algoritması oluşturulan programın

herhangi bir dilin (Basic, C, Fortran…)

kurallarına uyarak ve komutlarını

kullanarak yazılma aşamasıdır.

• Sözde kod (Pseudocode), kullanılan

programlama diline dönüştürülür.

5. Sınama

• Program yazıldıktan sonra, uygun aşamalardangeçirilip, verilen girdilere göre uygun çıktılarıüretip üretmediği kontrol edilir.

• Bu aşamada program girdi olarak verilebilecektüm değerlere göre; özellikle de uç değerleregöre sınanır.

• Örneğin girdi olarak bir tamsayı girilmesigereken programda, girilen sayının negatifolması halinde yapılacak işlemlertanımlanmamış olabilir.

• Bu gibi durumlar bu aşamada gözdengeçirilmelidir.

6. Bakım

• Sınama aşamasından sonra ortaya çıkan

aksaklıklar varsa bunlar giderilir.

Akış Şemaları

Akış Şemaları (Diyagramları)• Herhangi bir sorunun çözümü için izlenmesi gerekli olan aritmetik ve mantıksal

adımların söz veya yazı ile anlatıldığı 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

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

Akış Şemaları (Diyagramları)• Bir süreci belirleme veya bir projenin adımlarını planlama için görsel bir

sunum oluşturur.

• Proje ve süreç ile ilgili kişilere ortak bir dil veya bir referans noktası

sağlar.

• Algoritmadaki ifadeler şekillerin içerisine yazılır.

• BAŞLA ve DUR şekilleri hariç her bir şeklin anlamı belli olduğundan

içlerine tekrar anlamla aynı olacak kelime ve ifadeler yazılmaz.

Akış Şeması Şekilleri

Başlama ve bitiş işlemleri

Atama ve hesaplama işlemleri

giriş – okutma işlemleri

görüntüleme – yazdırma işlemleri

Araç belirtemeden

giriş ya da çıkış

yapılacağını gösterir.

Akış Şeması Şekilleri

Karar ve kontrol işlemleri

{eğer (koşul bildirimi veya karar)}

Bağlantı işlemleri

Akış yönünü belirten işlemler

Akış Şeması Şekilleri

Örnek

Ekrana "Merhaba" yazdıran

program

1-Başla

2-Merhaba yaz

3-Dur

Program-1

BAŞLA

DUR

Merhaba

Uyarılar...

• Akış şemalarında tek bir başlangıç simgesi olmalıdır

• Bitiş simgesi birden çok olabilir.

• Karar simgesinin haricindeki simgelere her zaman tek

giriş ve tek çıkış yolu bulunur.

• Bağlaç simgesi sayfanın dolmasından ötürü parçalanan

akış şemasının öğelerini birleştirmede kullanılır.

• Simgeler birbirleri ile tek yönlü okla bağlanırlar.

• Okların yönü algoritmanın mantıksal işlem akışını

tanımlar.

Akış Diyagramları (Şemaları)

Akış Diyagramları (Şemaları)

Akış Diyagramları (Şemaları)

Akış Diyagramları (Şemaları)

Akış şemaları içerik ve biçimlerine göre genel olarak üç

grupta sınıflandırılabilirler.

> Doğrusal Akış Şemaları

> Mantıksal Akış Şemaları

> Döngüsel (iteratif, çevrimli, yineli) Akış Şemaları

Doğrusal Akış Şemaları

İş akışları giriş, hesaplama, çıkış biçiminde olan akış şemaları bu grup

kapsamına girer.

Örnek 1: İki sayının çarpımının bulunmasıyla ilgili algoritma aşağıdaki

gibidir.

Değişkenler:

A: Birinci sayıyı

B: İkinci sayıyı

C: İki sayının çarpımını (A*B) göstersin

Algoritma:

Adım 1 – Başla

Adım 2 – A’yı oku

Adım 3 – B’yi oku

Adım 4 – C=A*B’yi hesapla

Adım 5 – C’yi yaz

Adım 6 - Dur

Doğrusal Akış Şemaları

• Örnek 2: Klavyeden girilen İki sayının toplamını hesaplayıp yazan algoritma ve akış şemasını hazırlayınız.

(X: Birinci sayı, Y: İkinci sayı, Z: toplam)

A1 : Başla

A2 : Klavyeden oku X

A3 : Klavyeden oku Y

A4 : Hesapla Z = X + Y

A5 : Yaz Z

A6 : Dur

Örnek 2 – Akış Şeması

BAŞLA

DUR

OKU X

OKU Y

Z=X+Y

YAZ Z

ÖRNEK: Taban ve yükseklik değerleri verilen üçgenin alanını hesaplayınız.

1. BAŞLA

2. OKU taban

3. OKU yukseklik

4. alan= (Taban X

Yukseklik)/2

5. YAZ alan

6. DUR

alan = (taban X yukseklik)/2

BAŞLA

DUR

Taban

Yükseklik

alan

ALGORİTMA AKIŞ ŞEMASI

Mantıksal Akış Şemaları

• Geniş ölçüde mantıksal kararları içeren akış şemalarıdır. Hesap düzenleri genellikle basittir.

Örnek 3: Klavyeden girilen bir sayının pozitif, negatif veya sıfıra eşit olma durumunu hesaplayıp yazdıran algoritma ve akış şemasını hazırlayınız.

(S : Sayı)

A1 : Başla

A2 : Oku S

A3 : Eğer S > 0 ise “Pozitif” yaz,

A4 : Eğer S < 0 ise “Negatif” yaz,

A5 : Eğer S = 0 ise “Sıfıra eşit” yaz,

A6 : Dur

Örnek 3 – Mantıksal Akış Şemaları

BAŞLA

DUR

OKU S

S : 0

YAZ

“Sıfıra eşit”

YAZ

“Pozitif”

YAZ

“Negatif

S < 0S > 0

S = 0

Döngüsel Akış Şemaları

• Sorunun çözümü için, çözümde yer alan

herhangi bir adım ya da aşamanın birden

fazla kullanıldığı akış şemalarına denir. İş

akışları genel olarak giriş ya da başlangıç

değeri verme, hesaplama, kontrol

biçiminde olmaktadır.

Döngüsel Akış Şemaları

• Örnek 4: Klavyeden girilen bir yazıyı 5 kez yazdıran algoritma ve akış şemasını oluşturunuz.

( Y : Yazı, S : Sayaç )

A1 : Başla

A2 : Oku Y

A3 : Yaz Y

A4 : S = S + 1

A5 : Eğer S < 5 ise A3 e git

A6 : Dur

Örnek 4 – Döngüsel Akış Şemaları

BAŞLA

DUR

OKU Y

YAZ Y

S = 0 , 5, 1

S

Sayısı bilinen

döngülerde;

başlangıç

değeri, son

değer, artış

sayısı

Döngünün çalıştığı

bölüm

Algoritma ve

Akış Şemaları ile ilgili

Ek Bilgiler

Algoritmalarda kullanılan Operatörler

Algoritmalarda Matematiksel işlemler

Algoritmalarda Matematiksel işlemler

Algoritmalarda Matematiksel işlemler

Algoritmalarda Matematiksel işlemler

1) Tanımlayıcı

2) Değişken

3) Sabit

4) Aktarma

5) Sayaç

6) Döngü

7) Ardışık Toplama

8) Ardışık Çarpma

Algoritmalarda Kullanılan Terimler

1) Tanımlayıcı

– Programcı tarafından oluşturulur.

– Programdaki değişkenleri, sabitleri, kayıt alanlarını, özel bilgi tiplerini

vb.

adlandırmak için kullanılan kelimeler

– Tanımlayıcılar, yerini tuttukları ifadelere çağrışım yapacak şekilde

seçilmelidir.

– İngiliz alfabesindeki A-Z veya a-z arası 26 harften

– 0-9 arası rakamlar kullanılabilir

– Sembollerden sadece alt çizgi (_) kullanılabilir.

– Tanımlayıcı isimleri harfle veya alt çizgiyle başlayabilir.

– Tanımlayıcı ismi, rakamla başlayamaz veya sadece rakamlardan

oluşamaz.

Algoritmalarda Kullanılan Terimler

2-)Değişken

• Programın her çalıştırılmasında, farklı değerler alan

bilgi/bellek alanlarıdır.

• Değişken isimlendirilmeleri, yukarıda sayılan tanımlayıcı

kurallarına uygun biçimde yapılmalıdır.

Örneğin ;

• Bir ismin aktarıldığı değişken ; ad

• Bir isim ve soy ismin aktarıldığı değişken; adsoyad

• Ev telefon no sunun aktarıldığı değişken; evtel

• Ev adresinin aktarıldığı değişken; evadres

• İş adresinin aktarıldığı değişken; isadres

3-) Sabit

Programdaki değeri değişmeyen ifadelere “sabit” denir.

“İsimlendirme kuralları”na uygun olarak oluşturulan sabitlere,

sayısal veriler doğrudan;

Algoritmalarda Kullanılan Terimler

Algoritmalarda Kullanılan Terimler

4-) Aktarma

Algoritmalarda Kullanılan Terimler

5-) Sayaç

Algoritmalarda Kullanılan Terimler

Algoritmalarda Kullanılan Terimler

6-) Döngü

•Bir çok programda bazı işlemler, belirli ardışık

değerlerle gerçekleştirilmekte veya belirli sayıda

yaptırılmaktadır. Programlardaki belirli işlem

bloklarını, verilen sayıda gerçekleştiren işlem akış

çevrimlerine “döngü” denir.

•Örneğin 1 ile 1000 arasındaki tek sayıların

toplamını hesaplayan programda T=1+3+5 ….

yerine 1 ile 1000 arasında ikişer artan bir döngü

açılır ve döngü değişkeni ardışık toplanır.

Algoritmalarda Kullanılan Terimler

Algoritmalarda Kullanılan Terimler

7-) Ardışık Toplama

Programlarda, aynı değerin üzerine yeni değerler eklemek için

kullanılır.

Toplam değişkeni=Toplam değişkeni + Sayı

Örnek: Klavyeden girilen 5 sayısının ortalamasını bulan programın

algoritması.

1. Başla

2. T=0

3. S=0

4. Eğer S>4 ise git 9

5. S=S+1

6. Sayıyı (A) gir

7. T=T+A

8. Git 4

9. Ortalama=T/5

10. Yaz Ortalama

11. Dur

Algoritmalarda Kullanılan Terimler

8-) Ardışık Çarpma

Ardışık veya ardışıl çarpma işleminde; aynı değer, yeni

değerlerle çarpılarak eskisinin üzerine aktarılmaktadır.

Çarpım değişkeni=Çarpım değişkeni * Sayı

Örnek: Klavyeden girilen N sayısının faktöriyelini hesaplayan

programın algoritmasını yazınız.

1. Başla

2. N sayısını gir

3. Fak=1

4. S=0

5. Eğer S>N-1 ise git 9

6. S=S+1

7. Fak=Fak*S

8. Git 5

9. Yaz Fak

10. Dur

Algoritmalarda Kullanılan Terimler

Akış Diyagramlarında Kullanılan Temel Şekiller

Akış Diyagramlarında Kullanılan Temel Şekiller

Akış Diyagramlarında Kullanılan Temel Şekiller

ÖRNEK UYGULAMALAR

ÖRNEK :

• Çalıştığı gün sayısı ve yevmiyesi girilen

işçinin maaşını hesaplayan algoritmayı ve

akış diyagramını yapınız.

PROBLEM

• Bu program çalıştığı gün sayısı ve günlük

yevmiyesi verilen işçinin maaşını

bulacaktır.

• Maaş hesaplanırken işçinin çalıştığı gün

sayısı ile günlük yevmiyesi çarpılarak

maaş hesaplanabilir.

ANALİZ

• Girdiler:

– Gün

– Yevmiye

• Çıktılar:

– Maaş

• İlişki

– Maas=Gun X Yevmiye

TASARIM

1. BAŞLA

2. OKU gun, yevmiye

3. maas=gun x yevmiye

4. YAZ maas

5. DURmaas = gun X yevmiye

BAŞLA

DUR

Gun, yevmiye

maas

ALGORİTMA AKIŞ ŞEMASI

Örnek: Klavyeden girilen 3 sayının aritmetik

ortalamasını bulan programın algoritma ve akış

şemasını yazın.

Algoritma;1. Oku S1,S2 ve S3

2. Toplam=S1+S2+S3

3. Ort =Toplam/3

4. Yaz “Ortalama=”;Ort

5. Dur

Yerine

Ort = (S1+S2+S3)/3

yazılabilir.

10,15,8 değerleri için bellekteki durum ve

ekran çıktısı:

S1 S2 S3 Toplam Ort

10 15 8 33 11

Ekran Çıktısı

Ortalama=11

Toplam =S1+S2+S3

Ort = Toplam/3

BAŞLA

DUR

S1,S2,S3

Ort

Örnek:Ekrana 5 defa “Pamukkale” yazdıran

programın algoritma ve akış şemasını yazın?

Algoritma;

1. Basla

2. sayac=0

3. YAZ “Pamukkale”, sayac

4. sayac=sayac+1

5. Eğer sayac<5 GİT 3

6. DUR

Sayac=0

sayac=sayac+1

sayac<5

mi?

E

H

Pamukkale

BAŞLA

DUR

Örnek: Klavyeden girilen 2 sayıyı karşılaştırıp

sonucu ekrana yazdıran algoritma ve akış

şemasını yazın?

Algoritma;

1. BAŞLA

2. OKU sayi1,sayi2

3. EĞER sayi1>sayi2 İSE YAZ “Sayi1 sayi2’den

büyüktür”

4. Değilse EĞER sayi2>sayi1 İSE YAZ “Sayi2 sayi1’den

büyüktür”

5. DEĞİL İSE YAZ “Sayi1 sayi2’ye eşittir”

6. BİTİR

Örnek: Klavyeden girilen 2 sayıyı karşılaştırıp sonucu ekrana

yazdıran algoritma ve akış şemasını yazın? Başla

Sayi1>

Sayi2 mi?

E

H

Sayi2>

Sayi1 mi?

E

Bitir

Sayi1> Sayi2

Sayi1, Sayi2

Sayi2> Sayi1

H

Sayi2= Sayi1

Örnek:

Bir öğrencinin numarası, adı ve soyadı,

vize notu ve final notu girilmektedir.

Verilere göre vize notunun %30'ü ile final

notunun %70'i alınarak ortalaması

hesaplanmak isteniyor. Algoritmayı

maddeler halinde yazınız.

Çözüm:

Örnek:

Klavyeden girilen herhangi bir N sayısının

faktöriyelini bulan programın algoritmasını

ve çalışmasını inceleyelim..

Çözüm:

Ev Ödevi 1:

1. Klavyeden girilen 1-1000 arasındaki asal sayıları ve kaç adet olduğunu bulup bunları ekrana yazdıran programın algoritmasını maddeler halinde yazınız.

2. Klavyeden 3 kenarı da girilen bir üçgenin çeşidini (eşkenar, ikizkenar, çeşitkenar) bulan programın algoritmasını maddeler halinde yazınız.

3. 1-100 arasındaki i. Tüm sayıların toplamını

ii. Çift sayıların toplamını

iii. Tek sayıların toplamını bulan programın algoritmasını maddeler halinde yazınız.

Ev Ödevi 1: (devam)

4. Girilen sıcaklık değerine göre bir suyun katı, sıvı ve gaz olma

durumunu gösteren algoritmanın akış şemasını çiziniz.

5. Bankaya aylık getirisi %8 ile 1000 TL yatırılmıştır. Buna göre;

a) 10 ay sonrasında paranın ne kadar olacağını ve aynı zamanda

her ay sonunda ne kadar olduğunu ekrana yazan algoritmanın

akış şemasını çiziniz.

b) Paranın kaç ay sonra 5000 TL olacağını hesaplayan

algoritmanın akış şemasını çiziniz.

6. Dışarıdan girilen n adet sayının karesinin toplamını alan

algoritmanın akış şemasını çiziniz.

7. Dışarıdan girilen 20 adet sayıdan çift olanları toplayan algoritmanın

akış şemasını çiziniz.