While ile bir örnek: Bir sayının faktöriyelini bulma
Örnek sahibi: @✪ Hasan Merkit ! ✪
Bu örnek sizi biraz yorabilir. Ancak lütfen incelemeyi ve anlamayı deneyin.
Matematikte bir sayının faktöriyeli, 1 ile o sayıya kadar olan doğal sayıların çarpımıdır. Bir faktöriyeli bulmak için kullanılan formülü incelediğimizde her bir formül basamağında çarpma işlemi yapıldığı görülür.
Örneğin, 4 rakamının faktöriyeli 24'tür. Bunun da matematiksel formülü budur:
!4 = 1 x 2 x 3 x 4 = 24
Yukarıdaki formülü incelediğimizde bir sayının faktöriyelini bulmak için, o sayıya kadar çarpma işlemi yapmamız gerektiği görülüyor. O halde While
yardımı ile sayıları rakama ulaşana kadar çarpabiliriz.
Adım adım bakıldığında, matematikte 4 faktöriyelini bulmak için yapılanlar;
- İlk 1 ile başlandı. 2 sayısı ile çarpıldı. 2 sonucuna ulaşıldı.
- Bulunan 2 sonucu, 3 ile çarpıldı. 6 sonucuna ulaşıldı.
- Bulunan 6 sonucu, 4 ile çarpıldı. 24 sonucuna ulaşıldı.
Çarpma işlemi sonucunda çarpılacak sayının her adımda değiştiğini ve çarpan sayının her adımda 1'er arttığı görülüyor. 1'den büyük herhangi bir doğal sayının faktöriyelini bulmak için ilk 2 ile çarpabileceğimizi ve faktöriyelini bulacağımız sayıyı en son çarpıcağımızı göz önünde bulundurursak, ilk başta $carpilan_sayi
isminde değeri 1 olan ve $carpan_sayi
isminde değeri 2 olan bir değişken oluşturabiliriz. Bunu kenara not alalım.
$carpilan_sayi=1; // Bu, çarpılacak olan sayı. 1 ile başlar.
$carpan_sayi=2; // Bu, her defa +1 artacak.
Çarpan en son sayı, faktöriyeli bulunacak sayı olacağından bu koşulu ele alabiliriz. O halde bir While
döngüsü oluşturabilir ve $carpan_sayi
'nin faktöriyeli bulunacak sayıdan büyük olmadıkça işlemi yapmasını sağlayabiliriz.
Faktöriyeli bulunacak sayıyı da bir değişkene atarsak $bulunacak_sayi
isminde değeri 4 olan bir değişken oluşturalım. Ben bunu en üste yazmayı tercih ettim:
$bulunacak_sayi= 4 ; // Faktöriyeli bulunacak sayı
$carpilan_sayi=1; // Bu, çarpılacak olan sayı. 1 ile başlar.
$carpan_sayi=2; // Bu, her defa +1 artacak.
Eğer bizim istediğimiz koşul, $carpan sayi
'sının faktöriyeli bulunacak olan sayıyı içeren $bulunacak_sayi
değişkeninden büyük olmamasıysa, şu şekilde koşul belirleyebiliriz: $carpan_sayi
'nın $bulunacak_sayi'dan küçük veya eşit olması. Yani: $carpan_sayi <= $bulunacak_sayi
şeklinde koşulunu belirledik.
$bulunacak_sayi= 4 ; // Faktöriyeli bulunacak sayı
$carpilan_sayi=1; // Bu, çarpılacak olan sayı. 1 ile başlar.
$carpan_sayi=2; // Bu, her defa +1 artacak.
while($carpan_sayi <= $bulunacak_sayi){
# Kod buraya gelecek.
}
While
döngümüz, $carpan_sayi <= $bulunacak_sayi
durumu oldukça çarpma işlemi yapacak. Uygulanacak kod kısmına da çarpam işleminin yapılmasını sağlayacağız. Bu sayede, bilgisayar faktöriyel sayısına ulaşana kadar çarpma işlemi yapacak ve bize sonucu verebilecek.
Her çarpma işleminde $carpan_sayi değişkenini 1 artırmamız gerektiğini de unutmayalım.
En son satıra da echo
yardımıyla sonucu yazdırıp ulaştığımız değere bakabiliriz:
$bulunacak_sayi= 4 ; // Faktöriyeli bulunacak sayı
$carpilan_sayi=1; // Bu, çarpılacak olan sayı. 1 ile başlar.
$carpan_sayi=2; // Bu, her defa +1 artacak.
while($carpan_sayi <= $bulunacak_sayi){
$carpilan_sayi *= $carpan_sayi; // $carpilan_sayi değişkeninin yeni değeri $carpan_sayi ile çarpımı
$carpan_sayi++; // +1 ekle
}
echo "$bulunacak_sayi sayısının faktöryel sonucu $carpilan_sayi bulundu.";
Ve sonuç:
