Akış Diyagramları Örnekler

Download Report

Transcript Akış Diyagramları Örnekler

BPR151 ALGORİTMA VE
PROGRAMLAMA - I
Öğr. Gör. Bayram AKGÜL
[email protected]
http://bmyo.bartin.edu.tr/akgul
Bugünkü Konular
• Döngüsel Akış Diyagramları Örnekleri
–
–
–
–
–
–
–
Klavyeden girilen bir sürü sayının toplamı
an ifadesini hesaplama
1’den N sayısına kadar sayıların toplamı
1’den N sayısına kadar sayıların karelerini toplama
Girilen bir sayının asal sayı olup olmadığını anlama
1’den N sayısına kadar asal olan sayıları ekrana yazma
Girilen bir sayının Mükemmel sayı olup olmadığını
anlama
2
Bir dizi sayının toplamını nasıl
hesaplarız?
•
Klavyeden girilecek bir dizi sayının toplamını
hesaplayacak bir algoritma yazalım.
•
Input
–
–
•
Bir sürü sayı (kaç tane olduğunu bilmiyoruz)
-1 sayı girişini bitirecek
Output
–
Girilen sayıların toplamı
3
Bir dizi sayının toplamını hesaplama:
Algoritma
1. Başla
2. Toplamı 0 a eşitle
3. Kullanıcıdan sayı girmesini veya -1 ile
durmasını iste.
4. Klavyeden girilen sayıyı oku
5. Eğer sayı -1 değilse
4.1. toplam = toplam + sayı
4.2. 3. adıma git
6. Toplamı yazdır.
7. Bitir
4
Bir dizi sayının toplamını hesaplama:
Akış Diyagramı
• Kullanıcı -1 girene
kadar 3, 4 ve 5.
basamakların
sürekli çalışmasını
istiyoruz.
• Bunun anlamı; 3, 4
ve 5. adımlar bir
döngü içinde
çalışacaktır
Başla
toplam = 0
Bir sayı gir veya -1 ile bitir
sayı
sayı = -1?
H
toplam = toplam + sayı
E
Toplam
Bitir
5
an yi nasıl hesaplarız?
• “a” gerçek sayı, “n” tam sayı ve n>=0 olsun.
– Örnek, 35 i hesapla.
– 35 = 3*3*3*3*3
• sonuç değişkeni alalım ve ilk değeri 1 olsun.
– sonuç = 1 (a0=1)
• a sayısını kendisiyle çarp ve her çarpma
işleminde bir say.
– Sayacın ilk değeri = 0
• Sayaç “n” olunca “a” sayısını “n” defa kendisiyle
çarpmışız demektir.
6
an Hesaplama Algoritması
1.
2.
3.
4.
Başla
Kullanıcıdan “a” ve “n” girmelerini iste
Sayacı 0’a eşitle
Sonucu 1'e eşitle
5. Eğer (sayaç < n) ise
5.1. sonuç = sonuç * a
5.2. sayaç = sayaç +1
5.3. 5. Adıma git
6. Sonucu yazdır
7. Bitir
7
an Hesaplama Akış Diyagramı
• Açıkça “sayaç” “n”
değerine ulaşana
kadar 5.1 ve 5.2
adımlarının
tekrarlamalarını
istiyoruz.
Başla
an hesaplamak için
“ a” ve “n” değerlerini giriniz
sayaç = 0
sonuç = 1
• Bunun anlamı; 5.1 ve
5.2 basamaklarını
koşul sağlandıkça bir
döngü içinde
çalışmalarını istiyoruz.
sayaç < n?
E
H
sonuç = sonuç * a
sonucu yazdır
Sayaç = sayaç + 1
Bitir
8
Not
• Döngü yapılarında döngü kontrolünü sağlayan koşul
yapısı döngünün başında veya sonunda olabilir.
– Bu kurulan mantığa göre tasarımcıya kalmıştır
koşul
H
E
ifade1
ifade1
ifade2
...
ifade2
...
koşul
E
H
Koşul Başta
Koşul Sonda
9
1+2+3+..+N işlemini hesaplama
1.
2.
3.
4.
Başla
Kullanıcıdan “n” sayısını iste
sayaç = 1
toplam = 0
5. Eğer (sayaç <= n) ise
5.1. toplam = toplam + sayaç
5.2. sayaç = sayaç + 1;
5.3. 5. Adıma git
6. Toplamı yazdır
7. Bitir
Başla
n
sayaç = 1
toplam = 0
sayaç <= n?
H
toplam
E
toplam = toplam + sayaç
sayaç = sayaç + 1
Bitir
10
1²+2²+3²+..+N² işlemini hesaplama
1.
2.
3.
4.
Başla
Kullanıcıdan “n” sayısını iste
sayaç = 1
toplam = 0
5. Eğer (sayaç <= n) ise
5.1. toplam = toplam + (sayaç²)
5.2. sayaç = sayaç + 1;
5.3. 5. Adıma git
6. Toplamı yazdır
7. Bitir
Başla
n
sayaç = 1
toplam = 0
sayaç <= n?
H
toplam
E
toplam = toplam + (sayaç*sayaç)
sayaç = sayaç + 1
Bitir
11
Girilen N sayısının asal olup
olmadığını kontrol etme
• Kendisi ve birden başka herhangi bir sayıya
bölünemeyen sayılara asal sayı denir.
• Örnek: 2,3,5,7,11,17,19,23,29,31,…
• Girilen bir sayının asal olup olmadığını kontrol etmek
için:
– 2’den başlayıp kendisinden küçük bütün sayılara bölmeye
çalışırız.
– Eğer herhangi birisine tam bölünürse sayı asal değildir.
– Eğer hiç birine tam bölünemezse sayı asaldır.
• Not: eğer m sayısı n sayısına tam bölünüyorsa m mod n = 0
olur. Yani m sayısının n sayısına bölümünden kalan 0’dır.
12
Girilen N sayısının asal olup
olmadığını kontrol etme
1.
2.
3.
4.
Başla
Başla
Kullanıcıdan “N” sayısını iste
sayaç = 2
Eğer N mod sayaç = 0
N
sayaç = 2
4.1. N sayısı asal değildir
4.2. 8. adıma git.
5.
6.
H
Sayaç = sayaç + 1
Eğer (sayaç < N) ise
6. 1. 4. adıma git
7.
8.
N mod sayaç
=0?
N sayısı asal sayıdır.
Bitir.
sayaç = sayaç + 1
E
E
N sayısı
asal değildir!
sayaç < N?
H
N sayısı
asal sayıdır
Bitir
13
Girilen N sayısına kadar asal olan
bütün sayıları ekrana yazdırma
1.
2.
3.
4.
5.
Başla
Kullanıcıdan “N” sayısını iste
sayı = 2
sayaç = 2
Eğer (sayı mod sayaç = 0) ise
Başla
N
sayı = 2
sayaç = 2
5.1. sayı asal değildir
5.2. 9. adıma git.
6.
7.
E
Sayaç = sayaç + 1
Eğer (sayaç < sayı) ise
sayı
asal değildir!
6. 1. 5. adıma git
8. m sayısı asal sayıdır
9. sayı = sayı +1
10. Eğer (sayı <= N) ise
10.1. 4. adıma git
11. Bitir.
sayı = sayı + 1
sayı mod sayaç
=0?
H
sayaç = sayaç + 1
sayaç < sayı?
H
sayı asaldır
E
sayı < N ?
H
Bitir
14
E
Girilen N sayısının Mükemmel sayı
olup olmadığını kontrol etme
• kendisi hariç pozitif tam bölenlerinin toplamı kendisine
eşit olan sayılara mükemmel sayılar denir.
• Örnek:
– 6  tam bölenleri (1,2,3  1+2+3 = 6)
– 28  tam bölenleri (1,2,4,7,14  1+2+4+7+14 = 28 )
• Girilen bir sayının mükemmel olup olmadığını kontrol
etmek için:
– 1’den başlayıp kendisinden küçük bütün sayılara bölmeye
çalışırız.
– Eğer herhangi birisine tam bölünürse bunu toplama ekleriz.
– Sonuçta toplam kendisine eşit olmuş ise sayı mükemmel sayıdır.
15
Girilen N sayısının mükemmel sayı olup
olmadığını kontrol etme
1.
2.
3.
4.
Başla
Başla
Kullanıcıdan “N” sayısını iste
sayaç = 1, Toplam = 0
Eğer N mod sayaç = 0
N
sayaç = 1, toplam = 0
4.1. Toplam = Toplam + sayaç
5.
6.
Sayaç = sayaç + 1
Eğer (sayaç < N) ise
H
6. 1. 4. adıma git
7.
Eğer(N = Toplam) ise
7. 1. N sayısı mükemmel sayıdır.
8. Değilse
8.1.
9.
N sayısı Mükemmel değildir.
Bitir.
E
N mod sayaç
=0?
Toplam = Toplam + sayaç
sayaç = sayaç + 1
E
sayaç < N?
N sayısı
Mükemmel sayıdır
H
E
N = Toplam ?
H
Bitir
16
Araştırma Ödevi-1
• Girilen N sayısına kadar mükemmel olan
sayıları bulan bir algoritma yazınız, akış
diyagramını çıkarınız.
17
Araştırma Ödevi-2
• Klavyeden girilen n tane sayının (kaç tene
olduğu bilinmiyor, 0 girilene kadar sayı
girişi yapılıyor) toplamını, çarpımını,
ortalamasını, en büyüğünü ve en küçüğünü
bulan bir algoritma yazınız. Akış
diyagramını oluşturunuz.
18
Araştırma Ödevi-3
• h yüksekliğinden bırakılan bir top her yere
çarptığında bir önceki yüksekliğin üçte biri
kadar sıçrayabiliyor. Son sıçrama yüksekliği
10 santimetreden küçük ise bir daha
sıçramamaktadır.
• Buna göre klavyeden girilen h cm
yüksekliğinden bırakılan bir topun kaç defa
sıçrayacağını hesaplayan bir algoritma
yazınız. Akış diyagramını hazırlayınız.
19
Araştırma Ödevi-4
• Bir kümesteki tavşanların sayısının her ay önceki
iki aydaki tavşanların sayısının toplamına eşit
olduğu varsayılıyor. Örneğin 5. aydaki tavşanların
sayısı 3. ve 4. aydaki tavşanların sayılarının
toplamına eşit oluyor. Aşağıdaki listede tavşanların
ilk sayısı ile her aydaki tavşan sayıları verilmiştir.
+-----+---+---+---+---+----+---------+----+---| Ay | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | ...
+-----+---+---+---+---+----+----+----+----+---| Sayı| 2 | 3 | 5 | 8 | 13 | 21 | 34 | 55 | ...
+-----+---+---+---+---+----+----+----+----+----
• Buna göre klavyeden girilen n. ayda tavşan sayısının
kaç olacağını hesaplayan bir algoritma yazınız. Akış
diyagramını oluşturunuz.
20
DINLEDIĞINIZ IÇIN
TEŞEKKÜRLER…
Öğr. Gör. Bayram AKGÜL
21