Professional Documents
Culture Documents
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.
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
• 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.
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
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
1. Başla
not1
2. Değişkenler (ortalama,not1,not2)
3. Birinci yazılı notunu gir
4. not1 = Birinci yazılı notu not2
yas, dogumYili
dogumYili
yas=2020-dogumYili
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
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