Upload
teneil
View
52
Download
5
Embed Size (px)
DESCRIPTION
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ı a n ifadesini hesaplama 1’den N sayısına kadar sayıların toplamı - PowerPoint PPT Presentation
Citation preview
BPR151 ALGORİTMA VE PROGRAMLAMA - I
Öğr. Gör. Bayram AKGÜ[email protected]
http://myo.bartin.edu.tr/akgul
2
• 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
Bugünkü Konular
3
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ı
4
1. Başla2. Toplamı 0 a eşitle3. Kullanıcıdan sayı girmesini veya -1 ile
durmasını iste. 4. Klavyeden girilen sayıyı oku5. Eğer sayı -1 değilse
4.1. toplam = toplam + sayı4.2. 3. adıma git
6. Toplamı yazdır.7. Bitir
Bir dizi sayının toplamını hesaplama:Algoritma
5
Bir dizi sayının toplamını hesaplama:
Akış Diyagramı
Bir sayı gir veya -1 ile bitir
Toplam
sayı = -1?
E
sayı
toplam = 0
toplam = toplam + sayıH
Başla
Bitir
• 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
6
• “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.
an yi nasıl hesaplarız?
7
1. Başla2. Kullanıcıdan “a” ve “n” girmelerini iste3. Sayacı 0’a eşitle 4. Sonucu 1'e eşitle
5. Eğer (sayaç < n) ise5.1. sonuç = sonuç * a 5.2. sayaç = sayaç +1 5.3. 5. Adıma git
6. Sonucu yazdır7. Bitir
an Hesaplama Algoritması
8
an Hesaplama Akış Diyagramı
sayaç = 0
Başla
sonuç = 1
sayaç < n?
an hesaplamak için “ a” ve “n” değerlerini giriniz
sonucu yazdır
H
Bitir
E
sonuç = sonuç * a
Sayaç = sayaç + 1
• Açıkça “sayaç” “n” değerine ulaşana kadar 5.1 ve 5.2 adımlarının tekrarlamalarını istiyoruz.
• Bunun anlamı; 5.1 ve 5.2 basamaklarını koşul sağlandıkça bir döngü içinde çalışmalarını istiyoruz.
9
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 E
H ifade1
ifade2... koşul
E
H
ifade1
ifade2...
Koşul Başta Koşul Sonda
10
1. Başla2. Kullanıcıdan “n” sayısını
iste3. sayaç = 14. 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ır7. Bitir
1+2+3+..+N işlemini hesaplama
sayaç = 1
Başla
toplam = 0
sayaç <= n?
n
toplam
H
Bitir
E
toplam = toplam + sayaç
sayaç = sayaç + 1
11
1. Başla2. Kullanıcıdan “n” sayısını
iste3. sayaç = 14. 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ır7. Bitir
1²+2²+3²+..+N² işlemini hesaplama
sayaç = 1
Başla
toplam = 0
sayaç <= n?
n
toplam
H
Bitir
E
toplam = toplam + (sayaç*sayaç)
sayaç = sayaç + 1
12
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.
13
1. Başla2. Kullanıcıdan “N” sayısını iste3. sayaç = 24. Eğer N mod sayaç = 0
4.1. N sayısı asal değildir4.2. 8. adıma git.
5. Sayaç = sayaç + 16. Eğer (sayaç < N) ise
6. 1. 4. adıma git
7. N sayısı asal sayıdır.8. Bitir.
Girilen N sayısının asal olup olmadığını kontrol etme
sayaç = 2
Başla
N mod sayaç = 0 ?
N
N sayısı asal değildir!
H
Bitir
E
sayaç = sayaç + 1
sayaç < N?
N sayısı asal sayıdır
EH
14
1. Başla2. Kullanıcıdan “N” sayısını iste3. sayı = 2 4. sayaç = 25. Eğer (sayı mod sayaç = 0) ise
5.1. sayı asal değildir5.2. 9. adıma git.
6. Sayaç = sayaç + 17. Eğer (sayaç < sayı) ise
6. 1. 5. adıma git8. m sayısı asal sayıdır9. sayı = sayı +110. Eğer (sayı <= N) ise
10.1. 4. adıma git11. Bitir.
Girilen N sayısına kadar asal olan bütün sayıları ekrana yazdırma
sayaç = 2
Başla
sayı mod sayaç = 0 ?
N
sayıasal değildir!
H
Bitir
E
sayaç = sayaç + 1
sayaç < sayı?
sayı asaldır
EH
sayı = 2
sayı = sayı + 1
sayı < N ?E
H
15
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.
16
1. Başla2. Kullanıcıdan “N” sayısını iste3. sayaç = 1, Toplam = 04. Eğer N mod sayaç = 0
4.1. Toplam = Toplam + sayaç
5. Sayaç = sayaç + 16. Eğer (sayaç < N) ise
6. 1. 4. adıma git
7. Eğer(N = Toplam) ise7. 1. N sayısı mükemmel sayıdır.
8. Değilse8.1. N sayısı Mükemmel değildir.
9. Bitir.
Girilen N sayısının mükemmel sayı olup olmadığını kontrol etme
sayaç = 1, toplam = 0
Başla
N mod sayaç = 0 ?
N
Toplam = Toplam + sayaçH
Bitir
E
sayaç = sayaç + 1
sayaç < N?
N sayısı Mükemmel sayıdır
E
H
N = Toplam ?E
H
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
DİNLEDİĞİNİZ İÇİN TEŞEKKÜRLER…
Öğr. Gör. Bayram AKGÜL 21