Klasik Math.Sqrt fonksiyonuyla değil de kendi yöntemlerimizle kök içini verecek şekilde örneğin 2√2 gibi gösteren bir program geliştiriyor olacağız. Bunun için aşağıdakine benzer bir tasarım kullanacağım
Burda 45 için yapılmış bir örnek mevcut zaten.
Peki nasıl kodlarız ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
private void button1_Click(object sender, EventArgs e) { //Sıfırlama işlemi - bir önceki değerler ile karışmaması için ciftKat = 0; toplamGecis = 0; disari = 1; iceri = 1; carpanlar.Clear(); sayiyiParcala(int.Parse(textBox1.Text)); if (iceri != 1) label1.Text = disari + "√" + iceri; if (iceri == 1) label1.Text = disari.ToString(); } List<int> carpanlar = new List<int>(); int ciftKat = 0; int toplamGecis = 0; int disari = 1; int iceri = 1; void sayiyiParcala(int sayi) { //sayiya carpanlara ayırmada yaptığımız gibi işlem uyguluyoruz for (int i = 2; i <= sayi; i++) { while (sayi % i == 0) { toplamGecis++; ciftKat++; //Eğer 2 kere geçmişse kök değerimiz bu sayının dışarda //olmasını sağlıyoruz if (ciftKat % 2 == 0) { disari *= i; ciftKat = 0; } sayi /= i; carpanlar.Add(i); } //Eğer tek sayıda geçmişse kök 1,3,5.. gibi //bunun da içerde yer almasını sağlıyoruz if (toplamGecis % 2 != 0) { iceri *= i; } } } |