BPR151 ALGORİTMA VE PROGRAMLAMA - I Öğr. Gör. Bayram AKGÜL bayramakgul@bartin.edu.tr 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
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ı
Bir dizi sayının toplamını hesaplama: Algoritma Başla Toplamı 0 a eşitle Kullanıcıdan sayı girmesini veya -1 ile durmasını iste. Klavyeden girilen sayıyı oku Eğer sayı -1 değilse 4.1. toplam = toplam + sayı 4.2. 3. adıma git Toplamı yazdır. Bitir
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
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.
an Hesaplama Algoritması Başla Kullanıcıdan “a” ve “n” girmelerini iste Sayacı 0’a eşitle Sonucu 1'e eşitle Eğer (sayaç < n) ise 5.1. sonuç = sonuç * a 5.2. sayaç = sayaç +1 5.3. 5. Adıma git Sonucu yazdır Bitir
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. 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ç = 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
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
1+2+3+..+N işlemini hesaplama Başla Kullanıcıdan “n” sayısını iste sayaç = 1 toplam = 0 Eğer (sayaç <= n) ise 5.1. toplam = toplam + sayaç 5.2. sayaç = sayaç + 1; 5.3. 5. Adıma git Toplamı yazdır Bitir sayaç = 1 Başla toplam = 0 sayaç <= n? n toplam H Bitir E toplam = toplam + sayaç sayaç = sayaç + 1
1²+2²+3²+..+N² işlemini hesaplama Başla Kullanıcıdan “n” sayısını iste sayaç = 1 toplam = 0 Eğer (sayaç <= n) ise 5.1. toplam = toplam + (sayaç²) 5.2. sayaç = sayaç + 1; 5.3. 5. Adıma git Toplamı yazdır Bitir sayaç = 1 Başla toplam = 0 sayaç <= n? n toplam H Bitir E toplam = toplam + (sayaç*sayaç) sayaç = sayaç + 1
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.
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? asal sayıdır Başla Kullanıcıdan “N” sayısını iste sayaç = 2 Eğer N mod sayaç = 0 4.1. N sayısı asal değildir 4.2. 8. adıma git. Sayaç = sayaç + 1 Eğer (sayaç < N) ise 6. 1. 4. adıma git N sayısı asal sayıdır. Bitir.
Girilen N sayısına kadar asal olan bütün sayıları ekrana yazdırma Başla Kullanıcıdan “N” sayısını iste sayı = 2 sayaç = 2 Eğer (sayı mod sayaç = 0) ise 5.1. sayı asal değildir 5.2. 9. adıma git. Sayaç = sayaç + 1 Eğer (sayaç < sayı) ise 6. 1. 5. adıma git m sayısı asal sayıdır sayı = sayı +1 Eğer (sayı <= N) ise 10.1. 4. adıma git Bitir. sayaç = 2 Başla sayı mod sayaç = 0 ? N sayı asal değildir! H Bitir E sayaç = sayaç + 1 sayaç < sayı? sayı asaldır sayı = 2 sayı = sayı + 1 sayı < N ?
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.
Girilen N sayısının mükemmel sayı olup olmadığını kontrol etme Başla Kullanıcıdan “N” sayısını iste sayaç = 1, Toplam = 0 Eğer N mod sayaç = 0 4.1. Toplam = Toplam + sayaç Sayaç = sayaç + 1 Eğer (sayaç < N) ise 6. 1. 4. adıma git Eğer(N = Toplam) ise 7. 1. N sayısı mükemmel sayıdır. Değilse 8.1. N sayısı Mükemmel değildir. Bitir. 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 N = Toplam ?
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.
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.
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.
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.
Dinlediğiniz için teşekkürler… Öğr. Gör. Bayram AKGÜL