Algoritma Örnekleri#2 Belli aralıktaki sayıları toplamak

16.algoritma örneğimizle devam ediyoruz. Bu sefer 1'den, kullanıcının girdiği sayıya kadar olan tüm sayıları toplayan programın algoritmasını yazacağız.

Algoritma Örnekleri#2 Belli aralıktaki sayıları toplamak
birden n'ye kadar olan sayıları toplayan algoritmanın akış şeması

16.algoritma örneğimizle devam ediyoruz. Bu sefer 1'den, kullanıcının girdiği sayıya kadar olan tüm sayıları toplayan programın algoritmasını yazacağız. Bu kolay bir örnek. Bunu yapabilmek için

$1+2+3+...+n=\dfrac{n(n+1)}{2}$

formülünü bilmemiz yeterli. Yani algoritmada klavyeden girilen n değerini $\dfrac{n(n+1)}{2}$ formülünde yerine koydurtacağız.

16a. Klavyeden girilen bir n sayısı için, 1'den n'ye kadar olan sayıların toplamını ekrana yazdıran programın algoritmasını ve akış şemasını yazalım.

1. Başla

2. n ve toplam değişkenlerini tanımla

3. n'yi klavyeden oku

4. $toplam=\dfrac{n(n+1)}{2}$ değerini hesapla ve ekrana yazdır

5. Dur

Şimdi ise hem başlangıç değerini hem bitiş değerini kullanıcı girsin ve bu değerler arasındaki sayının toplamı hesaplansın. Bu aşağıdaki örnekte for döngüsünü kullanacağız. Döngümüzün başlangıç değeri n sayısı olacak. Bitiş değeri ise m olacak. Artış miktarını 1 olarak belirleyeceğiz.

16b. Klavyeden girilen n ve m sayıları için, n'den m'ye kadar olan sayıların toplamını ekrana yazdıran programın algoritmasını ve akış şemasını yazalım.

1. Başla

2. n, m, k ve toplam değişkenleri ile toplam=0 değerini tanımla

3. n ve m'yi klavyeden oku

4. toplam=toplam+k değerini hesapla

5. k=m ise toplam değerini ekrana yazdır, değilse 4.adıma git

6. Dur

Bunun akış şeması aşağıdaki gibi olacak.

n'den m'ye kadar olan sayıların toplamını ekrana yazdıran programın algoritmasının akış şeması

Şimdi örneğimizi bir adım öteye taşıyalım. Bu sefer 1'den n'ye kadar olan sayıların toplamını, n'nin tek veya çift oluşuna göre, 1-n aralığındaki tek veya çift sayıların toplamını ve ayrıca 1-n aralığının terim sayısını bulan programın algoritmasını ve akış şemasını yazalım.

16c. 1'den n'ye kadar olan sayıların toplamını, bu aralıktaki tek veya çift sayıların toplamını ve terim sayısını ekrana yazdıran programın algoritmasını ve akış şemasını yazalım.

Önce hatırlatmam gereken bazı şeyler var.

1'den n'ye kadar olan tek sayıların toplamını şöyle ifade ediyoruz:

$1+3+5+...+(2n-1)=n^2$

1'den n'ye kadar olan çift sayıların toplamını ise şöyle ifade ediyoruz:

$2+4+6+...+2n=n(n+1)$

Şimdi dikkat etmemiz gereken noktaları belirteyim.

Kullanıcı herhangi bir sayı girdiğinde program bunun çift veya tek olduğunu anlayabilir. Programın, girilen sayının tek veya çift olması durumuna göre kullanacağı formüller belli:  $n^2$ ve $n(n+1)$. Buraya kadar sorun yok. Ama programın hangi formülü nasıl uygulayacağını nasıl belirleyeceğiz? Bunun için çift sayı durumunda önce $n=\dfrac{sayı}{2}$ işlemini yaptırıp ondan sonra $n(n+1)$ işlemini yaptıracağız. Tek sayı durumu için de önce $n=\dfrac{sayı+1}{2}$ işlemini yaptırıp ondan sonra $n(n+1)$ işlemini yaptıracağız. Burada neden sayı+1 diyoruz? Çünkü klavyeden girilen sayının çift olma durumu da var. O zaman, mesela 20 girildiğinde, 2n-1=20'den n tamsayı olmaz! Ama kullanıcı 7 değerini girdi diyelim. O zaman 2n-1=7'den n=4 olacak. Bu durumda tek sayılar toplamı 4'ün karesi yani 16 olarak hesaplanacak.

Bir başka husus girilen sayının tek veya çift olması durumuna göre ekrana yazılacak değerler ya tek sayıların toplamı olacak ya da çift sayıların toplamı olacak. İkisini aynı anda yazdırmak için 16d'de vereceğim algoritmayı kullanabilirsiniz.

Son olarak terim sayısını $\dfrac{son terim - ilk terim}{artış miktarı}+1$ olarak bulduğumuza dikkat edin. Burada 1'den n'ye kadar olan terimler söz konusu olduğu için ve bunların tek veya çift oluşlarını ihmal edip 1-n arasındaki tüm terimleri dikkate alarak terim sayısı yazdıracağımız için terim sayısı, girilen sayıya eşit olacaktır. Yani aralıktaki sadece tek veya çift terimlerin sayısını ekrana yazdırmayacağız! Onun için de 16d'deki örneğe bakmanız gerekecek.

1. Başla

2. sayı, n, toplam, toplam1, toplam2, terimsay değişkenleri ile n=1, toplam=0, toplam1=0 ve toplam2=0 değerlerini tanımla

3. Sayı değerini klavyeden oku ve terimsay=sayı değerini tanımla

4. toplam=(sayı(sayı+1))/2 değerini hesapla

5. Eğer girilen sayı çift ise n=sayı/2'den toplam1=n(n+1) değerini, değilse n=(sayı+1)/2'den toplam2=n.n değerini hesapla

6. terimsay, toplam, toplam1 ve toplam2 değerlerini ekrana yazdır

7. Dur

Gördüğünüz üzere oldukça güzel bir örnek. Bunun akış şeması aşağıda. Algoritmanın kaynak dosyasını ise (16c) en aşağıdan indirebilirsiniz.

1'den n'ye kadar olan sayıların toplamını, bu aralıktaki tek veya çift sayıların toplamını ve terim sayısını ekrana yazdıran programın algoritmasının akış şeması

Şimdi gelelim bu konudaki son örneğe. Bu sefer hem aralık değerleri klavyeden girilsin hem de sırasıyla; ilgili aralıktaki sayıların toplamları, ilgili aralıktaki tek sayıların ve çift toplamları hesaplansın.

16d. Klavyeden girilen n ve m sayıları için, n'den m'ye kadar olan sayıların toplamını, terim sayısını, tek terimlerin sayısını ve bunların toplamını, çift terimlerin sayısını ve bunların toplamını ekrana yazdıran programın algoritmasını ve akış şemasını yazalım.

Aslında bunların her biri tek tek algoritması yazılacak işlemler. Fakat ben bir çılgınlık yapıp hepsini bir sunayım istedim. :) İyi mi yaptım kötü mü yaptım, bilemiyorum. Bu son örnekte iki sayı arasındaki sayıların hem toplamını, hem terim sayısını, hem aralıktaki tek sayıların sayısını ve bunların toplamlarını hem de aralıktaki çift sayıların sayısını ve bunların toplamlarını aynı anda hesaplayan programın algoritmasını yazdım.

1. Başla

2. sayı1, sayı2, toplam1, toplam2, toplam, n, terimsay, terimsay1, terimsay2 değişkenlerini ve n=1, toplam=toplam1=toplam2=0 değerlerini tanımla

3. sayı1 ve sayı2'yi klavyeden oku.

4. terimsay=sayı2-sayı+1 değerini hesapla ve ekrana yazdır

5. sayı1 başlangıç değeri, sayı 2 bitiş değeri olmak üzere; for döngüsüyle toplam=toplam+n değerini hesapla ve ekrana yaz

6. for döngüsü içinde n%2=0 ise çift terimlerin terim sayısını ve çift terimlerin toplamlarını, değilse tek terimlerin terim sayısını ve tek terimlerin toplamını hesapla, ekrana yaz

7. Dur

Bu son örneğin akış şeması epey büyük bir görsel oldu. O yüzden akış şemasını görmek için buraya tıklayın.