1’den N’ye Kadar Olan Ardışık Sayıların Toplamı
Programlamaya ister yeni başlamış olun isterseniz de uzun yıllar programlama deneyimine sahip olun her zaman yeni ve farklı problemlerle karşılaşma ihtiyacı hissediyorsunuz. Hem sosyal medya üzerinden hem de çeşitli web sayfalarından zaman zaman algoritma örneklerine bakıp kendimce kod yazmaya çalışırım.Geçtiğimiz günlerde sosyal medya üzerinden tanıştığım arkadaşlarımdan bir tanesi başlıkta da belirttiğim gibi “1’den N’ye kadar olan sayıların toplamı”nı bulan bir fonksiyon yazmamı istedi. Konuyu biraz genişleterek blogumda paylaşmak ve farklı algoritmalar geliştirerek kod yazmak isteyen siz değerli takipçilerimle paylaşmak istedim.
Kuracağımız algoritmayı PHP ve JavaScript kodları ile ayrı ayrı geliştireceğiz. Böylelikle oluşturulan algoritmanın farklı programlama dilleri üzerinde nasıl geliştirildiğini öğrenmiş olacağız.
Bu makalede kuracağımız ve geliştireceğimiz algoritma başlıkları;
- 1’den N’ye Kadar Olan Ardışık Sayıların Toplamı (Uzun Metod)
- 1’den N’ye Kadar Olan Ardışık Sayıların Toplamı (Formül İle)
- 1’den N’ye Kadar Olan Ardışık Tek Sayıların Toplamı (Uzun Metod)
- 1’den N’ye Kadar Olan Ardışık Tek Sayıların Toplamı (Formül İle)
- 1’den N’ye Kadar Olan Ardışık Çift Sayıların Toplamı (Uzun Metod)
- 1’den N’ye Kadar Olan Ardışık Çift Sayıların Toplamı (Formül İle)
Uzun metoddan kastım 1’den girilen N sayısına kadar olan sayıları toplamak, formülden kastım ise bunların matematiksel formüllerini kullanmaktır. Her biri için detaylı anlatımlarla fonksiyonları hazırlayacağız. Makalenin sonunda da hazırladığımız kodların tamamını zip dosyası olarak paylaşacağız.
NOT: Makale boyunca PHP ve JavaScript ile ilgili temel bilgilerin bilindiği varsayılacaktır. Ayrıca JavaScript kodlarını kullanırken sayfaya jQuery dosyasını dahil etmeyi ve JavaScript fonksiyonlarını da jQuery başlangıç fonksiyonu içerisine yazmayı unutmayın.
1. 1’den N’ye Kadar Olan Ardışık Sayıların Toplamı (Uzun Metod)
N gibi bir sayımız var ve bunun değerine 10 diyelim. Yazacağımız fonksiyonda 1’den 10’a kadar olan sayıları döngü içerisinde toplayacak ve bir değişkene aktaracağız. Yani 1+2+3+4+5+6+7+8+9+10 = 55 şeklinde işlem yapacağız. Fonksiyon içerisinde girilen sayının 1’den büyük olup olmadığını kontrol eden deyim de bulunacaktır.
PHP Fonksiyonu
[PHP]
/* 1+2+3+4+5+……+N ardışık sayılarını tek tek toplayan fonksiyon. */
function ardisikSayiToplamiUzunMetod($n){
$toplam = 0;
$goruntu = “”;
if($n < 1){ echo "Lütfen 0'dan büyük bir sayı giriniz."; } else { for($i = 1; $i <= $n; $i++){ $goruntu .= $i."+"; $toplam += $i; } echo substr($goruntu, 0, -1)." = ".$toplam; } } // Kullanımı: ardisikSayiToplamiUzunMetod(10); [/PHP] JavaScript Fonksiyonu
[PHP]
/* 1+2+3+4+5+……+N ardışık sayılarını tek tek toplayan fonksiyon. */
function ardisikSayiToplamiUzunMetod(n){
var toplam = 0;
var goruntu = “”;
if(n < 1){ $("#alan1").text("Lütfen 0'dan büyük bir sayı giriniz."); } else { for(var i = 1; i <= n; i++){ goruntu = goruntu + i + "+"; toplam += i; } $("#alan1").text(goruntu.substr(0, goruntu.length - 1) + " = " + toplam); } } // HTML kodu içerisine id'si "alan1" olan bir element eklenerek kullanılacaktır. [/PHP] 2. 1’den N’ye Kadar Olan Ardışık Sayıların Toplamı (Formül İle)
N gibi bir sayımız var ve bunun değerine 12 diyelim. Matematikte ardışık sayıların toplamını bulan formülü fonksiyonumuz içerisinde kullanacağız. Formülümüz [n.(n+1)]/2’dir. Burada n değerimiz 12’dir. Yani [12.(12+1)]/2 hesaplamasını yaparak 1’den 12’ye kadar olan sayıların toplamını bulacağız. Fonksiyon içerisinde girilen sayının 1’den büyük olup olmadığını kontrol eden deyim de bulunacaktır.
PHP Fonksiyonu
[PHP]
/* 1+2+3+4+5+….+N ardışık sayıların toplamını formülle toplayan fonksiyon. */
function ardisikSayiToplamiFormul($n){
$toplam = 0;
$goruntu = “”;
if($n < 1){ echo "Lütfen 0'dan büyük bir sayı giriniz."; } else { // burada matematikte tanımlı formülü kullanacağız. // [n.(n+1)]/2 $goruntu = "[".$n.".(".$n."+1)]/2"; $toplam = ($n*($n+1))/2; echo $goruntu." = ".$toplam; } } // Kullanımı: ardisikSayiToplamiFormul(12); [/PHP] JavaScript Fonksiyonu
[PHP]
/* 1+2+3+4+5+….+N ardışık sayıların toplamını formülle toplayan fonksiyon. */
function ardisikSayiToplamiFormul(n){
var toplam = 0;
var goruntu = “”;
if(n < 1){ $("#alan2").text("Lütfen 0'dan büyük bir sayı giriniz."); } else { // burada matematikte tanımlı formülü kullanacağız. // [n.(n+1)]/2 goruntu = "[" + n +".(" + n + "+1)]/2"; toplam = (n*(n+1))/2; $("#alan2").text(goruntu + " = " + toplam); } } // HTML kodu içerisine id'si "alan2" olan bir element eklenerek kullanılacaktır. [/PHP] 3. 1’den N’ye Kadar Olan Ardışık Tek Sayıların Toplamı (Uzun Metod)
N gibi bir sayımız var ve bunun değerine 13 diyelim. Yazacağımız fonksiyonda 1’den 13’e kadar olan tek sayıları döngü içerisinde toplayacak ve bir değişkene aktaracağız. Yani 1+3+5+7+9+11+13 = 49 şeklinde işlem yapacağız. Fonksiyon içerisinde girilen sayının 1’den büyük olup olmadığını ve girilen sayının tek sayı olup olmadığını kontrol eden deyimler de bulunacaktır.
PHP Fonksiyonu
[PHP]
/* 1+3+5+7+……+(2n-1) ardışık tek sayıları tek tek toplayan fonksiyon. */
function ardisikTekSayiToplamiUzunMetod($n){
$toplam = 0;
$goruntu = “”;
if($n < 1){ echo "Lütfen 0'dan büyük bir sayı giriniz."; } elseif($n % 2 == 0){ echo "Lütfen tek sayı giriniz."; } else { for($i = 1; $i <= $n; $i++){ if($i % 2 == 1){ $goruntu .= $i."+"; $toplam += $i; } } echo substr($goruntu, 0, -1)." = ".$toplam; } } //Kullanımı: ardisikTekSayiToplamiUzunMetod(13); [/PHP] JavaScript Fonksiyonu
[PHP]
/* 1+3+5+7+……+(2n-1) ardışık tek sayıları tek tek toplayan fonksiyon. */
function ardisikTekSayiToplamiUzunMetod(n){
var toplam = 0;
var goruntu = “”;
if(n < 1){ $("#alan3").text("Lütfen 0'dan büyük bir sayı giriniz."); } else if(n % 2 == 0){ $("#alan3").text("Lütfen tek sayı giriniz."); } else { for(var i = 1; i <= n; i++){ if(i % 2 == 1){ goruntu = goruntu + i + "+"; toplam += i; } } $("#alan3").text(goruntu.substr(0, goruntu.length - 1) + " = " + toplam); } } // HTML kodu içerisine id'si "alan3" olan bir element eklenerek kullanılacaktır. [/PHP] 4. 1’den N’ye Kadar Olan Ardışık Tek Sayıların Toplamı (Formül İle)
N gibi bir sayımız var ve bunun değerine 13 diyelim. Matematikte ardışık tek sayıların (1+3+5+….+(2n – 1)) toplamını bulan formülü fonksiyonumuz içerisinde kullanacağız. Formülümüz n2‘dir. Burada n değerimiz 2n – 1 = 13 işleminden 7’dir. Yani 72 hesaplamasını yaparak 1’den 13’e kadar olan tek sayıların toplamını bulacağız. Fonksiyon içerisinde girilen sayının 1’den büyük olup olmadığını ve girilen sayının tek sayı olup olmadığını kontrol eden deyimler de bulunacaktır.
PHP Fonksiyonu
[PHP]
/* 1+3+5+7+…..+(2n – 1) ardışık tek sayıların toplarmını formülle toplayan fonksiyon. */
function ardisikTekSayilarinToplamiFormul($n){
$toplam = 0;
$goruntu = “”;
$sonSayi = 0;
if($n < 1){
echo "Lütfen 0'dan büyük bir sayı giriniz.";
} elseif($n % 2 == 0){
echo "Lütfen tek sayı giriniz.";
} else {
// burada matematikte tanımlı formülü kullanacağız.
// (2n - 1)^2
$sonSayi = ($n + 1)/2;
$goruntu = "(2n - 1) = ".$n." -> n = “.$sonSayi.” -> “.$sonSayi.”2“;
$toplam = $sonSayi*$sonSayi;
echo $goruntu.” = “.$toplam;
}
}
// Kullanımı:
ardisikTekSayilarinToplamiFormul(13);
[/PHP]
JavaScript Fonksiyonu
[PHP]
/* 1+3+5+7+…..+(2n – 1) ardışık tek sayıların toplarmını formülle toplayan fonksiyon. */
function ardisikTekSayilarinToplamiFormul(n){
var toplam = 0;
var goruntu = “”;
var sonSayi = 0;
if(n < 1){
$("#alan4").text("Lütfen 0'dan büyük bir sayı giriniz.");
} else if(n % 2 == 0){
$("#alan4").text("Lütfen tek sayı giriniz.");
} else {
// burada matematikte tanımlı formülü kullanacağız.
// (2n - 1)^2
sonSayi = (n + 1)/2;
goruntu = "(2n - 1) = " + n +" -> n = ” + sonSayi + ” -> ” + sonSayi + “^2”;
toplam = sonSayi*sonSayi;
$(“#alan4″).text(goruntu + ” = ” + toplam);
}
}
// HTML kodu içerisine id’si “alan4” olan bir element eklenerek kullanılacaktır.
[/PHP]
5. 1’den N’ye Kadar Olan Ardışık Çift Sayıların Toplamı (Uzun Metod)
N gibi bir sayımız var ve bunun değerine 12 diyelim. Yazacağımız fonksiyonda 1’den 12’ye kadar olan çift sayıları döngü içerisinde toplayacak ve bir değişkene aktaracağız. Yani 2+4+6+8+10+12 = 42 şeklinde işlem yapacağız. Fonksiyon içerisinde girilen sayının 1’den büyük olup olmadığını ve girilen sayının çift sayı olup olmadığını kontrol eden deyimler de bulunacaktır.
PHP Fonksiyonu
[PHP]
/* 2+4+6+8+…..+2n ardışık çift sayıları tek tek toplayan fonksiyon. */
function ardisikCiftSayiToplamiUzunMetod($n){
$toplam = 0;
$goruntu = “”;
if($n < 1){ echo "Lütfen 0'dan büyük bir sayı giriniz."; } elseif($n % 2 == 1){ echo "Lütfen çift sayı giriniz."; } else { for($i = 1; $i <= $n; $i++){ if($i % 2 == 0){ $goruntu .= $i."+"; $toplam += $i; } } echo substr($goruntu, 0, -1)." = ".$toplam; } } // Kullanımı: ardisikCiftSayiToplamiUzunMetod(12); [/PHP] JavaScript Fonksiyonu
[PHP]
/* 2+4+6+8+…..+2n ardışık çift sayıları tek tek toplayan fonksiyon. */
function ardisikCiftSayiToplamiUzunMetod(n){
var toplam = 0;
var goruntu = “”;
if(n < 1){ $("#alan5").text("Lütfen 0'dan büyük bir sayı giriniz."); } else if(n % 2 == 1){ $("#alan5").text("Lütfen çift sayı giriniz."); } else { for(var i = 1; i <= n; i++){ if(i % 2 == 0){ goruntu = goruntu + i + "+"; toplam += i; } } $("#alan5").text(goruntu.substr(0, goruntu.length - 1) + " = " + toplam); } } // HTML kodu içerisine id'si "alan5" olan bir element eklenerek kullanılacaktır. [/PHP] 6. 1’den N’ye Kadar Olan Ardışık Çift Sayıların Toplamı (Formül İle)
N gibi bir sayımız var ve bunun değerine 12 diyelim. Matematikte ardışık çift sayıların (2+4+6+….+2n) toplamını bulan formülü fonksiyonumuz içerisinde kullanacağız. Formülümüz n.(n+1)’dir. Burada n değerimiz 2n = 12 işleminden 6’dır. Yani 6.(6+1) hesaplamasını yaparak 1’den 12’ye kadar olan çift sayıların toplamını bulacağız. Fonksiyon içerisinde girilen sayının 1’den büyük olup olmadığını ve girilen sayının çift sayı olup olmadığını kontrol eden deyimler de bulunacaktır.
PHP Fonksiyonu
[PHP]
/* 2+4+6+8+….+2n ardışık çift sayıların toplamını formül ile toplayan fonksiyon. */
function ardisikCiftSayiToplamiFormul($n){
$toplam = 0;
$goruntu = “”;
$sonSayi = 0;
if($n < 1){
echo "Lütfen 0'dan büyük bir sayı giriniz.";
} elseif($n % 2 == 1){
echo "Lütfen çift sayı giriniz.";
} else {
// burada matematikte tanımlı formülü kullanacağız.
// n.(n+1)
$sonSayi = $n/2;
$goruntu = "2n = ".$n." -> n = “.$sonSayi.” -> “.$sonSayi.”.(“.$sonSayi.” + 1)”;
$toplam = $sonSayi*($sonSayi + 1);
echo $goruntu.” = “.$toplam;
}
}
// Kullanımı:
ardisikCiftSayiToplamiFormul(12);
[/PHP]
JavaScript Fonksiyonu
[PHP]
/* 2+4+6+8+….+2n ardışık çift sayıların toplamını formül ile toplayan fonksiyon. */
function ardisikCiftSayiToplamiFormul(n){
var toplam = 0;
var goruntu = “”;
var sonSayi = 0;
if(n < 1){
$("#alan6").text("Lütfen 0'dan büyük bir sayı giriniz.");
} else if(n % 2 == 1){
$("#alan6").text("Lütfen çift sayı giriniz.");
} else {
// burada matematikte tanımlı formülü kullanacağız.
// n.(n+1)
sonSayi = n/2;
goruntu = "2n = " + n + " -> n = ” + sonSayi + ” -> ” + sonSayi + “.(” + sonSayi + ” + 1))”;
toplam = sonSayi*(sonSayi + 1);
$(“#alan6″).text(goruntu.substr(0, goruntu.length – 1) + ” = ” + toplam);
}
}
// HTML kodu içerisine id’si “alan6” olan bir element eklenerek kullanılacaktır.
[/PHP]
Listelemiş olduğumuz 6 adet algoritma konusunu ve bunların hem PHP hem de JavaScript kodu olarak fonksiyonlarını açıklamalı bir şekilde sunmaya çalıştım. Umarım faydalı bir makale olmuştur. Kodunu yazmamı istediğiniz herhangi bir algoritma olursa facebook üzerinden mesaj yoluyla bana ulaşabilirsiniz. Yazmış olduğumuz fonksiyonları bir bütün halinde aşağıdaki linkte paylaşıyorum. Herkese iyi çalışmalar :)