Akış Diyagramları2

Download Report

Transcript Akış Diyagramları2

BPR151 ALGORİTMA VE
PROGRAMLAMA - I
Öğr. Gör. Bayram AKGÜL
[email protected]
http://bmyo.bartin.edu.tr/akgul
Algoritmalar
&
Akış Şemaları
-Avantajları
-Türleri
-Örnekleri
Algoritma/Akış Şeması
Avantajları
• Program yazmayı kolaylaştırır.
• Hatalı kodlama oranını azaltır.
• Program yazımı için geçen süreyi kısaltır.
• İşlem akışını bir şekilde gösterdiğinden
program kontrolünü kolaylaştırır.
• Sonradan yapılacak düzenlemelerde
kolaylıklar sağlar.
Öğr. Gör. Bayram AKGÜL
3
Akış Şemaları
•
Kontrol akışını ifade etmek için kullanılan
şekilleri hatırlayalım:
Paralel kenar
girdi adımlarını
gösterir
Çember bağlantı
noktasını gösterir
Altı yamuk
dörtgenler çıktı
adımlarını
gösterir
Dikdörtgenler
işlem adımlarını
gösterir
Oklar Akış
yönünü gösterir
Öğr. Gör. Bayram AKGÜL
Deltoid koşul
durumunda karar
verme adımını
gösterir
Başla
Bitir
Algoritmanın başlangıç
ve bitişini gösterir
4
Akış Şeması Türleri
• Doğrusal Akış Şemaları
• Mantıksal Akış Şemaları
• Döngüsel Akış Şemaları
Öğr. Gör. Bayram AKGÜL
5
Doğrusal Akış Şemaları
• Her işlemin doğrusal olarak yapıldığı akış
şemalarıdır.
• Her işlem sırasıyla çalışır ve bir işlem
diğerini takip eder.
• Koşul veya tekrarlama gerçekleşmez.
• Örnek:
– Girilen iki sayının toplamını bulma
– Üç sayının ortalamasını bulma
– Çemberin çevresini ve alanını hesaplama
Öğr. Gör. Bayram AKGÜL
6
Doğrusal Akış Şemaları Örnek:1
Kullanıcıdan alınan iki
sayının toplamını
hesaplama:
Basla
Sayi1, Sayi2
1.
2.
3.
4.
5.
Başla
Sayi1 ve Sayi2’yi oku
Toplam=Sayi1+Sayi2
Toplamı ekrana yaz
Bitir
Toplam=Sayi1+Sayi2
Toplam
Bitir
Öğr. Gör. Bayram AKGÜL
7
Doğrusal Akış Şemaları Örnek:2
Kullanıcıdan alınan üç
sayının ortalamasını
hesaplama:
Başla
S1,S2,S3
1.
2.
3.
4.
5.
6.
Başla
S1,S2 ve S3’ü oku
Toplam=S1+S2+S3
Ortalama=Toplam/3
Ortalama ekrana yaz
Bitir
Öğr. Gör. Bayram AKGÜL
Toplam=S1+S2+S3
Ort=Toplam/3
Ortalama
Bitir
8
Doğrusal Akış Şemaları Örnek:3
Çemberin Çevresini ve
Alanını Hesaplama:
Başla
r
1.
2.
3.
4.
5.
6.
Başla
Çemberin yarıçapını oku (r)
Çevre=2*PI*r
Alan = PI*r*r
Çevre ve alanı ekrana Yaz
Bitir
Öğr. Gör. Bayram AKGÜL
Çevre=2*PI*r
Alan = PI * r*r
Çevre, Alan
Bitir
9
Uyarı:
• Uyarı: kullanıcı çemberin yarı çapı için
negatif bir değer girerse ne olur?
– Negatif alan, çevre olabilir mi?
• Ne Yapmalıyız?
– Kontrol
• Mantıksal Kontrol
Öğr. Gör. Bayram AKGÜL
10
Mantıksal Akış Şemaları
• Akışın bazı kurallara/koşullara göre
yönünün değiştiği akış şemalarıdır.
• Koşulun durumuna göre bazı adımlar
gerçekleşmez.
• Örnek:
–
–
–
–
Girilen iki sayıdan küçük olanını bulma
Üç sayının en küçüğünü bulma
Girilen bir sayının tek veya çift olduğunu anlama
Girilen sayının N sayısının katı olup olmadığını
anlama.
Öğr. Gör. Bayram AKGÜL
11
Mantıksal Akış Şemaları Örnek:1
Kullanıcıdan alınan iki
sayıdan küçük olanını
bulma:
Basla
Sayi1, Sayi2
1. Başla
2. Sayi1 ve Sayi2’yi oku
3. Eğer (Sayi1<Sayi2)
3.1 küçük = sayı1;
Sayi1<Sayi2?
E
H
Küçük = Sayı2
Küçük = Sayı1
4. Değilse
4.1. Küçük = sayı2;
Küçük
5. Küçük sayıyı ekrana yaz
6. Bitir
Öğr. Gör. Bayram AKGÜL
Bitir
12
Mantıksal Akış Şemaları Örnek:2
Kullanıcıdan alınan 3
sayıdan en küçük olanını
bulma
1. sayı1, sayı2, ve sayı3’ü oku
2. küçük = sayı1; (sayı1’in en küçük
olduğunu farz edelim)
3. eğer (sayı2 < küçük)
3.1 küçük = sayı2;
4. eğer (sayı3 < küçük)
4.1. küçük = sayı3;
5. küçük sayısını ekrana yaz
Başla
sayı1, sayı2, sayı3’ü oku
küçük = sayı1
evet
sayı2 < küçük ?
küçük = sayı2
hayır
sayı3 < küçük ?
evet
küçük = sayı3
hayır
küçük sayısını
ekrana yazdır
Bitir
Öğr. Gör. Bayram AKGÜL
13
Mantıksal Akış Şemaları Örnek:3
Girilen bir sayının tek
veya çift olduğunu
anlama:
Basla
Sayı
1. Başla
2. Sayı’yı oku
3. Eğer (Sayı mod 2 = 0)
3.1 Ekrana yaz "sayı çift";
E
Sayı mod 2
=0?
Sayı çift
H
Sayı tek
4. Değilse
4.1. Ekrana yaz "sayı tek";
Bitir
5. Bitir
Öğr. Gör. Bayram AKGÜL
14
Mantıksal Akış Şemaları Örnek:4
Girilen bir sayının N
sayısının katı olup
olmadığını anlama:
Basla
Sayı, N
1. Başla
2. Sayı’yı ve N ‘yi oku
3. Eğer (Sayı mod N = 0)
3.1 Ekrana yaz:
"sayı N sayısının katı"
Sayı mod N =
0?
E
H
Girilen sayı N
sayısının katı değil!
Girilen sayı N
sayısının katı
4. Değilse
4.1. Ekrana yaz:
"sayı N sayısının katı değil!";
Bitir
5. Bitir
Öğr. Gör. Bayram AKGÜL
15
Birden Fazla mantıksal ifadeyi
birleştirme:
• Mantıksal ifadeleri birleştirmek için VE,
VEYA operatörleri kullanılabilir.
– Örnek:
– bir sayının hem 2’nin hem de 3’ün katı olduğunu
anlamak için:
• Eğer (sayı mod 2 = 0 VE sayı mod 3 = 0) ise …
– Bir sayının ikinin katı veya 3’ün katı olduğunu
anlamak için:
• Eğer (sayı mod 2 = 0 VEYA sayı mod 3 = 0) ise …
• Bir ifadenin tersini almak için DEĞİL operatörü
kullanılabilir.
Öğr. Gör. Bayram AKGÜL
16
Mantıksal Akış Şemaları Örnek:5
Girilen bir sayının 3’ün ve 7’nin
katı olup olmadığını anlama:
Başla
1. Başla
2. Sayı’yı oku
3. Eğer (Sayi mod 3 = 0)
Sayı
H
3.1. Eğer (Sayı mod 7 = 0) ise
3.1.1. Ekrana yaz:
"sayı 3’ün ve 7’nin katı "
3.2. Değilse
3.2.1. Ekrana yaz:
"sayı 7’nin katı değil "
Sayı mod
3=0?
Sayı mod
7=0?
H
Girilen sayı
3’ün katı değil
4. Değilse
4.1. Ekrana yaz: "sayı 3’ün katı değil!";
E
Girilen sayı
7’nin katı değil
E
Girilen sayı 3’ün ve
7’nin katı
Bitir
5. Bitir
Öğr. Gör. Bayram AKGÜL
17
Mantıksal Akış Şemaları Örnek:5:2. yöntem
Girilen bir sayının 3’ün ve 7’nin katı
olup olmadığını anlama -2. yöntem:
Başla
1. Başla
2. Sayı’yı oku
3. Eğer (Sayi mod 3 = 0)
VE (Sayı mod 7 = 0) ise
Sayı
H
3.1 Ekrana yaz:
"sayı 3’ün ve 7’nin katı"
4. Değilse
E
Sayı mod 3 = 0 ?
VE
Sayı mod 7 = 0 ?
Girilen sayı 3’ün VE
7’nin katı değil
Girilen sayı 3’ün ve
7’nin katı
4.1. Ekrana yaz:
"sayı 3’ün ve 7’nin katı değil!";
5. Bitir
Bitir
Öğr. Gör. Bayram AKGÜL
18
Döngüsel Akış Şemaları
• Bir çeşit mantıksal akış şemasıdır.
• Koşula göre bazı adımların tekrarlandığı
akış şemalarıdır.
• Örnek:
– İsmini ekrana 100 defa yazdırma
– 1’den N sayısına kadar sayıları toplama
– 1’den N sayısına kadar M’nin katları olan sayıları
toplama
– Bir sayının faktöriyelini hesaplama
Öğr. Gör. Bayram AKGÜL
19
Döngüsel Akış Şemaları Örnek:1
İsmini ekrana 100 defa
yazdırma
Basla
Sayaç = 0
1.
2.
3.
4.
5.
Başla
Sayaç = 0
Sayaç = Sayaç + 1
Ekrana yaz «Ali KARA»
Eğer (Sayaç < 100) ise
sayaç = sayaç + 1
Ali KARA
E
sayaç < 100 ?
5.1. 3. Adıma git
H
6. Bitir.
Bitir
Not: 3. ve 4. adımları değiştirmek sonucu etkilemez.
Öğr. Gör. Bayram AKGÜL
20
Döngüsel Akış Şemaları Örnek:2
1’den N sayısına kadar
olan sayıların toplamını
ekrana yazdırma
1.
2.
3.
4.
5.
6.
Başla
N sayısını kullanıcıdan iste
Sayaç = 0, Toplam = 0
Sayaç = Sayaç + 1
Toplam = Toplam + Sayaç
Eğer (Sayaç < N) ise
6.1.
Basla
N
Sayaç = 0, Toplam = 0
sayaç = sayaç + 1
Toplam = Toplam + sayaç
4. Adıma git
E
sayaç < N ?
H
7. Toplamı Ekrana yaz
8. Bitir.
Toplam
Bitir
Öğr. Gör. Bayram AKGÜL
21
Döngüsel Akış Şemaları Örnek:3
Basla
1’den N sayısına kadar M’nin
katları olan sayıların toplamını
ekrana yazdırma
1.
2.
3.
4.
5.
Başla
N ve M sayılarını kullanıcıdan iste
Sayaç = 0, Toplam = 0
Sayaç = Sayaç + 1
Eğer (Sayaç mod M = 0) ise
5.1.
Toplam = Toplam + Sayaç
6. Eğer (Sayaç < N) ise
6.1. 4. Adıma git
7. Toplamı Ekrana yaz
8. Bitir.
N, M
Sayaç = 0, Toplam = 0
sayaç = sayaç + 1
sayaç mod
M=0?
H
E
E
Toplam = Toplam + sayaç
sayaç < N
?
H
Toplam
Bitir
Öğr. Gör. Bayram AKGÜL
22
Döngüsel Akış Şemaları Örnek:4
Girilen N sayının faktöriyelini
ekrana yazdırma
Basla
(ör: 5! = 5*4*3*2*1 = 120)
1.
2.
3.
4.
5.
6.
N
Başla
N sayısını kullanıcıdan iste
Sayaç = 0, Faktöriyel = 1
Sayaç = Sayaç + 1
Faktöriyel = Faktöriyel * Sayaç
Eğer (Sayaç < N) ise
6.1.
4. Adıma git
Sayaç = 0, Faktöriyel = 1
sayaç = sayaç + 1
Faktöriyel = Faktöriyel * sayaç
sayaç < N
?
E
H
7. Faktöriyeli Ekrana yaz
8. Bitir.
Faktöriyel
Bitir
Öğr. Gör. Bayram AKGÜL
23
Döngüsel Akış Şemaları Örnek:5
Çemberin Çevresini ve
Alanını Hesaplama:
Başla
(kullanıcının yarı çapı 0’dan büyük
girdiği garanti ediliyor)
1. Başla
2. Çemberin yarıçapını oku (r)
3. Eğer (r <= 0)
2.1. Ekrana Yaz: «r değeri 0’dan büyük
olmalı»
2.2. 2. Adıma dön
4.
5.
6.
7.
Çevre=2*PI*r
Alan = PI*r*r
Çevre ve alanı ekrana Yaz
Dur
Öğr. Gör. Bayram AKGÜL
r
r <= 0 ?
H
E
r değeri 0’dan
büyük olmalı
Çevre=2*PI*r
Alan = PI * r*r
Çevre, Alan
Bitir
24
DINLEDIĞINIZ IÇIN
TEŞEKKÜRLER…
Öğr. Gör. Bayram AKGÜL
25