You are on page 1of 59

ALGORİTMA

ve
AKIŞ ŞEMASI
KAZANIMLAR
• Verilen problemi çözmek üzere farklı algoritmalar tasarlar.
• Karmaşık bir problemi alt problemlere ayırarak çözümleri sözde kod olarak
tasarlar..
• Algoritmayı analiz ederek sonucunu yorumlar.
• Verilen problemin çözümü için uygun akış şemaları oluşturur.
ALGORİTMA VE AKIŞ ŞEMASI
• Bilgisayarların çok iyi çözdüğü problemler, algoritmik yapıda olanlardır
yani adım adım işlemlerden oluşan yapılardır. Bu işlemler bilgisayarın
anlayabileceği biçimde ifade edilir ve bilgisayar bu satırları sıra ile
çalıştırır.

• Evden okula gitmek, kütüphanede aradığın kitabı bulmak gibi günlük


işlerimizde dahi algoritmaları kullanırız.
ALGORİTMA
• Herhangi bir problemin çözümüne dair adımları
göstermeye algoritma denir.

• Bilgisayar biliminde algoritma, bir programın ilerleyiş


adımlarını göstermek için kullanılır.

Harezmi (780-850)
• Algoritmaları iyi bilmek, doğru şekilde ve doğru zamanda
uygulamak ilginç ve önemli programlar yapmanızı sağlar.
SİSTEMATİK PROBLEM ÇÖZME YAKLAŞIMI

Tüm programlar aşağıdaki işlem(lere) bağlı olarak çalışır.

• GİRDİ

• ÇIKTI

• MATEMATİK

• KOŞULLU YÜRÜTME

• TEKRARLAMA
Bir algoritmanın özellikleri şu şekildedir:
1) Başlangıcı olmalı
2) Basit olmalı
3) Problemin çözümünü, mümkün olan en az adım ile en
kısa sürede gerçekleştirmeli
4) Sonu olmalı
Algoritmanın Akış Diyagramı ile İfade Edilmesi
Akış diyagramı (flow chart), bir algoritmanın adımlarının
mantıksal sırasını, adımların birbiri ile bağlantısını, bir
işlemden diğerine nasıl gidileceğini belirten kontrol
mekanizmalarını, özel bazı şekil ve sembollerle anlatan bir
ifade biçimidir.
ALGORİTMA
• Basit bir örnek (Girilen iki sayıyı toplayan algoritma)
1. Başla
2. Değişkenler (toplam,s1,s2)
3. Birinci sayıyı gir Birinci sayıyı gir: 6
4. Birinci sayı = s1 İkinci sayıyı gir: 14
20
5. İkinci sayıyı gir
6. İkinci sayı = s2
7. toplam=s1+s2
8. Sonucu (toplam) ekranda göster.
9. Bitir
ALGORİTMA
• Daha zor bir örnek (Hızlı sıralama algoritması)
1. Liste içerisinden pivot olacak bir eleman seçilir.

2. Pivot değerden küçük olanlar pivottan önce,


büyük olanlar pivottan sonra olacak şekilde
elemanlar liste içerisinde yer değiştirilir.

3. Pivotun öncesindeki ve sonrasındaki değerler ayrı


bir liste kabul edilip hızlı sıralama algoritması bu
listeler için yeniden çalıştırılır.
AKIŞ ŞEMASI
• Algoritmaların daha anlaşılır
olabilmesi için akış şemaları
kullanılır.

• Akış şemasına bakan insanlar,


hangi kodları yazması gerektiğini
ve algoritmanın nasıl bir şekilde
işlediğini anlamaktadırlar.
AKIŞ ŞEMASI ŞEKİLLERİ
1. Elips
• Algoritma her zaman "Başla" komutu ile başlar, "Bitir" komutu ile
biter.
• "Başla" ve "Bitir"i belirtmek için "elips"i kullanırız

Başla Bitir
AKIŞ ŞEMASI ŞEKİLLERİ
2. Paralelkenar
• Programımıza klavye ile veri girişi yapılacağı ya da veri işlendikten
sonra ekranda veri çıkışı bilgisini veren semboldür.

Birinci Sayıyı
Not Ortalaması: 65
Giriniz
AKIŞ ŞEMASI ŞEKİLLERİ
3. Dikdörtgen
• Hesaplama veya değişken ataması yapılacağını bildirir.

Değişkenler
toplam=s1+s2
ad, okulNo
AKIŞ ŞEMASI ŞEKİLLERİ
4. Eşkenar Dörtgen
• Programda bir karşılaştırma durumunun olduğunu, yani programın
"Evet" veya "Hayır" cevaplarına göre bir yol izleyeceğini bizlere
aktarır.

E H E H
dersNotu <50 yas>=18
AKIŞ ŞEMASI ŞEKİLLERİ
5. Yön Okları
• Akış şemasının ilerlediği yönü gösterir.
AKIŞ ŞEMASI ŞEKİLLERİ
7. Yamuk Dörtgen
• Ekrana yazdırmak için kullanılır.
AKIŞ ŞEMASI ŞEKİLLERİ
8. Daire
• Akış şemaları arasında bağlantı kurmak için kullanılır.
Başla

AKIŞ ŞEMASI toplam, s1, s2

- Girilen iki sayıyı toplayan algoritmanın akış şeması


1. Başla s1
2. Değişkenler (toplam,s1,s2)
3. Birinci sayıyı gir
s2
4. s1 = Birinci sayı
5. İkinci sayıyı gir
6. s2 = İkinci sayı
toplam=s1+s2
7. toplam=s1+s2
8. Sonucu (toplam) ekranda göster.
9. Bitir toplam

Bitir
ALIŞTIRMA-1
• 2 yazılı notu olan dersin not ortalamasını ekranda gösteren akış
şemasını çiziniz.
Girdi - not1 ve not2 iste
Çıktı - ortalamayı ekrana yazdır.
Matematik - not1 ve not2’yi topla ikiye böl
Koşullu yürütme - yok
Tekrarlama - yok
Başla

ALIŞTIRMA-1 ortalama, not1, not2

1. Başla
not1
2. Değişkenler (ortalama,not1,not2)
3. Birinci yazılı notunu gir
4. not1 = Birinci yazılı notu not2

5. İkinci yazılı notunu gir


6. not2 = İkinci yazılı notu ortalama=(not1+not2)/2
7. ortalama = (not1 + not2) / 2
8. Sonucu (ortalama) ekranda göster. ortalama
9. Bitir
Bitir
ALIŞTIRMA-2
- Doğum yılına göre yaşını bulup hesaplayan ve 18 yaşından küçükse kayıt
olmasına izin vermeyen akış şemasını çiziniz.
Girdi - Doğum yılını iste
Çıktı - Kayıt olup olamayacağını ekrana yazdır
Matematik - Bulunduğumuz yıldan doğum yılını çıkar
Koşullu yürütme - Bulunan yaş değeri 18’den küçükse kayıt olamaz, 18
veya 18’den büyükse kayıt olur.
Tekrarlama - yok
ALIŞTIRMA-2
1. Başla
2. Değişkenler (yas, dogumYili)
3. Doğum Yılını gir
4. dogumYili = Doğum Yılı
5. yas = 2020 - dogumYili
6. Yaşı (yas) 18 veya 18’den büyükse Adım 8'e git
7. Yaşı (yas) 18'den küçük ise Adım 9'a git
8. Yaşınız 18 veya 18'den büyük kayıt olabilirsiniz.
9. Yaşınız 18'den küçük kayıt olamazsınız.
10. Bitir
Başla

yas, dogumYili

dogumYili

yas=2020-dogumYili

Kayıt olabilirsin E H Kayıt olamazsın


yas>=18

Bitir
1-100 arasında yer alan sayıların
toplamını bulan algoritma ve akış
şemasını hazırlayınız.
Algoritması :
A1: Başla
A2: Sayısal X, Top
A3: X=0, Top:0
A4: X=X+1
A5: Top=Top+X
A6: Eğer X<100 A4’e git
A7: Yaz; “Sayıların Toplamı’’ & Top
A8: Bitir
Başla

x=0, top=0

x=x+1
top=top+x

E H
x<100 top

Bitir
1-100 arasında yer alan çift sayıların toplamını
bulan algoritma ve akış şemasını hazırlayınız.
Algoritması :
A1: Başla
A2: Sayısal X, Top
A3: X=0, Top:0
A4: X=X+2
A5: Top=Top+X
A6: Eğer X<100 A4’e git
A7: Yaz; “Sayıların Toplamı’’ & Top
A8: Bitir
Başla

x=0, top=0

x=x+2
top=top+x

E H
x<100 top

Bitir
Girilen sayı kadar ekrana ismini yazdıran
algoritma ve akış şemasını hazırlayınız.
Algoritması :
A1: Başla
A2: Sayısal x, say
A3 : Metinsel isim
A4: say=0
A5 : isim değerini gir
A6 : Oku; isim
A7: x değerini gir
A8 : Oku; x
A9: Yaz; isim
A10: say=say+1
A11: Eğer say<X A9’a git
A12: Bitir
Başla

say=0

isim,x

isim

say=say+1

E H
say<x Bitir
Klavyeden girilen iki adet sayı toplayan programı, kullanıcının
doğru şifreyi girmesi durumunda hesaplayan diğer durumlarda
hesaplayamayan algoritma ve akış şemasını
hazırlayınız.(şifre=123 olacak)
Algoritması :
A1: Başla
A2: X,Y değerini gir
A3 : Oku; X
A4 : Oku; Y
A5 : sifre değerini gir
A6 : Oku; sifre
A7: Eğer sifre!=123 A5’e git
A8: top=x+y
A9: Yaz; “Sayıların Toplamı’’ & Top
A10: Bitir
Başla

top,x,y

x,y

sifre

E Bitir
sifre!=123

H
sayıların toplamı = top
top=x+y
Klavyeden girilen iki sayıdan büyük olanını bulup
ekrana yazdıran algoritma ve akış şemasını
hazırlayınız.
Algoritması :
1) Başla
2) A ve B sayılarını oku
3) Eğer A = B ise A B „ye eşit‟ yaz Git 6
4) Eğer A > B ise A B „den büyük‟ yaz git 6
5) Yaz B A „dan büyük‟
6) Dur
Başla

a,b

a,b

E
a==b a=b

E
a>b a>b

a<b Bitir
Beş sayının toplamını ve ortalamasını
veren programa ait algoritmanın
oluşturulması
Algoritması :
A1: Başla
A2: Sayısal top, say, ort, x
A3 : top=0
A4: say=0
A5 : x değerini gir
A6 : Oku; x
A7: top=top+x
A8 : say=say+1
A9: Eğer say<5 A5’e git
A10: ort=top/5
A11: Bitir
Başla

sayac=0
toplam=0
x

toplam=toplam+x
sayac=sayaç+1

E
sayac<5

sayac, toplam Bitir


Tiyatro bileti alırken bilet fiyatı yaşa göre değişmektedir. Yaşı 18 den
küçük olanlar için bilet ücreti 15TL, yaşı 18 den büyük ve 65 den
küçük olanlar için bilet ücreti 20TL ve yaşı 65 ten büyük olanlar için
bilet ücreti 10TL olarak belirlenmiştir. Bu durumda tiyatro
seyircilerinin yaşlarına göre bilet almalarına olanak sağlayan bir
çözüm geliştirin.
Düz mantık çözüm: Başla

yas

Algoritması :
1- Başla
E
2- int yas yas<=18 Ücret 15
3- yas<=18 ücret 15 yaz
4- 18<yas<65 ücret 20 yaz H
5- yas>18 ücret 10 yaz E
18<yas<65 Ücret 20
6- bitir
H
E
yas>65 Ücret 10

Bitir
Düşünme biçimimize en çok benzeyen yapı olması nedeni ile pozitif mantık kullanımı en
kolay yapıdır. Pozitif mantık her zaman iç içe if then else yapısını kullanır. Bu yapı
kullanıldığında genellikle bilgisayardan, koşulun doğru olması durumunda işlem
yapması, yanlış olması durumunda farklı bir karar vermesi beklenir. Böylece daha az
adımda karar verilebilir. Bir önceki problemin bu yaklaşım ile çözüm algoritması ve akış
şemasını inceleyelim.
Pozitif mantık çözüm: Başla

Algoritması : yas
1- Başla
2- int yas H E
3- yas<=18 ücret 15 yaz git 6 yas<=18
4- yas<65 ücret 20 yaz git 6
5- ücret 10 yaz
6- bitir
H E
yas<65 Ücret 15

Ücret 10 Ücret 20

Bitir
Genellikle tersten düşünmediğimiz için negatif mantık yapısı, kurgusu,
programcılara en zor gelen yapıdır. Negatif mantık kullanıldığında
bilgisayardan, koşulun doğru olması durumunda farklı yönergeleri takip
etmesi beklenir. Negatif mantık kullanmak, kontrol edilecek koşul sayısını
azalttığından programı daha anlaşılır kılarak geliştirir.
Negatif mantık çözüm: Başla

yas

H E
yas>18

Ücret 15 H E
yas<65

Ücret 10
Ücret 20

Bitir
Çoklu karar yapıları içeren algoritmalarda eğer koşullarını iç içe yazmanız gerekebilir.
Bu durumda pozitif ve negatif mantık yapıları kullanılabilir, düz mantık yapıları
kullanılmaz.
Öğrencilerin puan ortalamasına göre Geçme/Kalma durumunu kontrol ettikten
sonra, geçiyorsa öğrencinin belge alma durumunu belirlemek.
Başla

ortalama

H E
Kaldı ortalama>=50

H E
ortalama>=85

H E
Belge yok ortalama>=70 Takdir

Teşekkür

Bitir
Başla
h paksay h
paksay, paksay<50 <100
kdvlitutar,toptut e e

paksay gir,

kdvlitut=10+(10/100*8)
toptut=(paksay*kdvl toptut=(paksay*kd toptut=(paksay*kd
itut)*95/100 vlitut)*90/100 vlitut)*85/100
h
paksay<10
e

toptut=paksay*kdvlitut

toptut Bitir
ÖDEV
• Bir üniversite öğrencisinin dönem geçme notunu hesaplayıp, bu nota
göre geçme kalma durumunu ekranda gösteren akış şemasını
aşağıdaki şartlara göre yapınız.
• İki vize ve bir final sınav notu vardır.
• Dönem geçme notu, vize notlarının %40'ı, final notunun %60'ı alınıp
toplanarak elde edilir.
• Dönem geçme notu 50’dir.
KAYNAKLAR
• https://www.elektrikport.com/teknik-kutuphane/bes-dakikada-algoritmayi-taniyin/8223#ad-image-0
• https://tr.khanacademy.org/computing/computer-science/algorithms/intro-to-algorithms/v/what-are-algorithms
• https://www.muhendisbeyinler.net/algoritma-ve-akis-semalari/
• https://tolpp.com/quick-sort-hizli-siralama/
• https://www.youtube.com/channel/UCN-0SgO68y9jyEZrJitS1nw

You might also like