Ana içeriğe atla

C# | Üslü Sayının Kuvvetini Bulmak

Merhaba arkadaşlar. Hazır C# eğitimlerine başlamışken birde çevrede gezerek, forumlara bakarak kendime yapacak bir şeyler bulabilir miyim ona göz atıyorum. Bazı kimselerinin yapamadığı ve ya yapmak istediği şeyleri eğer yapabileceksem deniyorum. Bu örnek uygulamayı da bu şekilde yaptım. Uzatmadan artık uygulamaya geçebiliriz.


Form elemanlarımız görüldüğü gibi. İki Label, iki NumericUpDown, bir Button, bir tane de TextBox ve birde sizin burada görmediğiniz, benim gizlediğim bir ListBox var. Program şu şekilde işliyor. Kişi kuvveti bilinmeyen üslü sayıyı ve bu üslü sayının sonucunu programa giriyor. "Üssü Bul" butonuna bastığında aşağıda ki yeşil arka plana sahip textbox sonucu veriyor. Şimdi geçelim arka planda bu işi nasıl yaptığımıza.


Peki hocam mantık ne burada? Hemen söylüyorum.

Üslü sayının bilinmeyen kuvvetini bulmak için ne yapıyoruz, nasıl bir formül var bilmiyorum ama ben kara düzen şu şekilde sonuca vardım. Diyelim ki üslü sayımız 5 ve verilen sonuçta 25. Sorulması gereken soru şu "5 kaç defa kendi ile çarpılırsa 25 olur?" Bu sorunun cevabı da kodların arasında yatıyor zaten.

3 adet değişken oluşturdum. a ve b'ye girilen değerleri eşitledim. Yani üslü sayı ve sonucu. Gördüğünüz gibi for döngüsünü kullandık. Döngüde dedim ki "i değişkenini a'ya eşitle." Yani girilen üslü sayı ile i aynı değerde olacak. Sonra da "i, sonuç, yani b ile aynı değerde olana kadar döngüyü sürdür." Son olarakta artış değerini girmemiz gerekiyor. Burada da "i * a, yani girilen üslü sayıyı kendisi ile koşul sağlanana kadar çarp" dedim.


Böyle yapınca ne oldu? Diyelim ki girilen üslü sayı 3 ve sonuç ta 9. Döngü 9'a ulaşana kadar 3'ü sürekli kendisi ile çarpacak ve bunu her yaptığında da gözükmeyen listboxta oluşturduğumuz c değişkenini bir bir arttıracak.


Döngü içerisinde lisayi diye bir değişken daha tanımladım ve bunu listbox1 içerisinde ki elemanların toplam sayısına eşitledim farkındaysanız. Count ile eleman sayısını alabiliyoruz.

Bu arada lisayi.ToString() ne diye soranlarınız olabilir. lisayi değişkeni int bir değer ve biz bu değeri TextBox içerisinde göstermek istiyoruz. Bu normal şartlarda olmaz. Bunun için lisayi değerini String bir değere convert ediyoruz. Bu sayede sorun çıkmıyor.

Şimdi döngüyü detaylı ele alalım. Üslü sayıya 3 yazdık. Sonuca da 9 arkadaşlar. Döngü çalıştı. Koşul sağlanana kadar 3 kendisi ile çarpıldı. Yani ( 3*3=9 ) Bu esnada listbox1'de ki c değişkeni iki defa arttırılmış oldu. Yani iki elemanı oldu. Bizde bunları saydırıp aktardığımız değişkeni en aşağıda ki textbox içerisinde gösterdik.


Umarım bir şeyler anlatabilmişimdir ve her şeyden öte işinize yaramıştır. Okuduğunuz için teşekkür ederim bunun gibi başka yazılar da tekrar görüşmek dileği ile...

Yorumlar