bilgisayar programlama 1 - · pdf filealgoritma hazırlığı • algoritma...

104
Bilgisayar Programlama 2012-13 / Bahar

Upload: ngotram

Post on 06-Feb-2018

242 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

Bilgisayar Programlama

2012-13 / Bahar

Page 2: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

2

Program ve programlama dili nedir?

Page 3: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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ı).

Page 4: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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)

Page 5: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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

Page 6: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

ALGORİTMA

Page 7: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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.

Page 8: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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.

Page 9: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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.

Page 10: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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.

Page 11: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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.

Page 12: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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.

Page 13: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

Algoritma

Algoritma sadece bilgisayar

programlamada kullanılmaz.

Bir fabrika üretiminin

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

düzeninin algoritması, bir planlı

gezinin algoritması...

Page 14: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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.

Page 15: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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.

Page 16: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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.

Page 17: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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.

Page 18: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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.

Page 19: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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

Page 20: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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!

Page 21: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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

Page 22: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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)

Page 23: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

•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

Page 24: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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.

Page 25: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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.

Page 26: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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

Page 27: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

ÖRNEK: Taban ve yükseklik değerleri

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

ANALİZ

– Girdiler:

• Taban ve Yükseklik

– Çıktılar:

• Alan

Page 28: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

Ö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

Page 29: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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.

Page 30: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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.

Page 31: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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)

Page 32: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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.

Page 33: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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.

Page 34: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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

Page 35: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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.

Page 36: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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.

Page 37: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

Ö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

Page 38: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

Üç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.

Page 39: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

Üçgenin Alanı

1. BAŞLA

2. OKU taban

3. OKU yükseklik

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

5. YAZ alan

6. DUR

Page 40: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

Üç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.

Page 41: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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

programa ait algoritmanın

oluşturulması.

Page 42: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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

Page 43: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

Ö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

Page 44: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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

Page 45: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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.

Page 46: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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.

Page 47: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

6. Bakım

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

aksaklıklar varsa bunlar giderilir.

Page 48: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

Akış Şemaları

Page 49: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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.

Page 50: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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.

Page 51: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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.

Page 52: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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

Page 53: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

Akış Şeması Şekilleri

Page 54: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

Örnek

Ekrana "Merhaba" yazdıran

program

1-Başla

2-Merhaba yaz

3-Dur

Program-1

BAŞLA

DUR

Merhaba

Page 55: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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.

Page 56: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

Akış Diyagramları (Şemaları)

Page 57: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

Akış Diyagramları (Şemaları)

Page 58: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

Akış Diyagramları (Şemaları)

Page 59: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

Akış Diyagramları (Şemaları)

Page 60: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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ı

Page 61: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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

Page 62: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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

Page 63: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

Örnek 2 – Akış Şeması

BAŞLA

DUR

OKU X

OKU Y

Z=X+Y

YAZ Z

Page 64: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

Ö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

Page 65: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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

Page 66: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

Ö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

Page 67: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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.

Page 68: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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

Page 69: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

Ö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

Page 70: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

Algoritma ve

Akış Şemaları ile ilgili

Ek Bilgiler

Page 71: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

Algoritmalarda kullanılan Operatörler

Page 72: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

Algoritmalarda Matematiksel işlemler

Page 73: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

Algoritmalarda Matematiksel işlemler

Page 74: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

Algoritmalarda Matematiksel işlemler

Page 75: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

Algoritmalarda Matematiksel işlemler

Page 76: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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

Page 77: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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

Page 78: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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

Page 79: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

Algoritmalarda Kullanılan Terimler

Page 80: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

4-) Aktarma

Algoritmalarda Kullanılan Terimler

Page 81: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

5-) Sayaç

Algoritmalarda Kullanılan Terimler

Page 82: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

Algoritmalarda Kullanılan Terimler

Page 83: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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

Page 84: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

Algoritmalarda Kullanılan Terimler

Page 85: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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

Page 86: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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

Page 87: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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

Page 88: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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

Page 89: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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

Page 90: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

ÖRNEK UYGULAMALAR

Page 91: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

ÖRNEK :

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

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

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

Page 92: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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.

Page 93: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

ANALİZ

• Girdiler:

– Gün

– Yevmiye

• Çıktılar:

– Maaş

• İlişki

– Maas=Gun X Yevmiye

Page 94: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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

Page 95: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

Ö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

Page 96: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

Ö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

Page 97: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

Ö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

Page 98: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

Ö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

Page 99: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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

Page 100: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

Çözüm:

Page 101: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

Örnek:

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

faktöriyelini bulan programın algoritmasını

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

Page 102: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

Çözüm:

Page 103: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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.

Page 104: Bilgisayar Programlama 1 - · PDF fileAlgoritma hazırlığı • Algoritma hazırlanırken, çözüm için yapılması gerekli işlemler, öncelik sıraları gözönünde bulundurularak

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.