C# KARAKÖK ALMA – Web Tasarım & Programlama
C# dilinde Math sınıfının Sqrt() methodunu kullanılarak ya da Sqrt metodu kullanmadan karekök hesaplayabilirsiniz.
Öncelikli olarak basit yöntem olan Sqrt metodu ile karekök nasıl hesaplanır görelim. Sqrt metodu, verilen sayının karekökünü döndürür.
Örneğin, aşağıdaki kod parçacığı, 16’nın karekökünü alır ve ekrana yazdırır.
double sayi= 16;
double karekok= Math.Sqrt(sayi);
Console.WriteLine(sayi+” sayısının karekökü: “+karekok);
Console.ReadKey();
double sayi= 16; double karekok= Math.Sqrt(sayi); Console.WriteLine(sayi+” sayısının karekökü: “+karekok); Console.ReadKey();
|
Sonuç olarak ekrana “16 sayısının karekökü: 4” yazdırılacaktır.
Aynı şekilde, karekök almak istediğiniz sayıyı Math.Sqrt() methodunun içine yazabilirsiniz. Örnek olarak:
Console.WriteLine(“9 sayısının karekökü ” + Math.Sqrt(9));
Console.WriteLine(“9 sayısının karekökü “ + Math.Sqrt(9));
|
Şimdi de Sqrt metodu kullanmadan nasıl karekök hesaplayabileceğimizi görelim.
C# dilinde Math sınıfının Sqrt() methodu dışında karekök almak için birkaç farklı yöntem de mevcuttur. Bunlardan bazıları şunlardır:
Newton-Raphson Metodu : Bu yöntem, bir sayının karekökünü tahmin etmek için kullanılabilir. Bu yöntem, bir başlangıç değerinden başlar ve her adımda tahminin doğruluğunu arttırmak için kullanılır.
internal class Program
{
static double SquareRoot(double sayi)
{
double yaklasikDeger = sayi / 2;
double epsilon = 0.000001;
while (Math.Abs(yaklasikDeger * yaklasikDeger – sayi) > epsilon)
{
yaklasikDeger = (yaklasikDeger + sayi / yaklasikDeger) / 2;
}
return yaklasikDeger;
}
static void Main(string[] args)
{
Console.Write(“Sayı Gir: “);
double sayi = Convert.ToDouble(Console.ReadLine());
Console.WriteLine(sayi+ ” sayısının karekökü: “+SquareRoot(sayi));
Console.ReadKey();
}
}
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 |
internal class Program { static double SquareRoot(double sayi) { double yaklasikDeger = sayi / 2; double epsilon = 0.000001;
while (Math.Abs(yaklasikDeger * yaklasikDeger – sayi) > epsilon) { yaklasikDeger = (yaklasikDeger + sayi / yaklasikDeger) / 2; } return yaklasikDeger; }
static void Main(string[] args) { Console.Write(“Sayı Gir: “); double sayi = Convert.ToDouble(Console.ReadLine()); Console.WriteLine(sayi+ ” sayısının karekökü: “+SquareRoot(sayi)); Console.ReadKey();
} }
|
Binary Search Metodu : Bu yöntem, verilen sayının karekökünü arama yöntemi ile bulmaktadır. Bu yöntem aralıkta karekök arama yapar ve aralığı daraltarak doğru sonucu elde etmeye çalışır.
internal class Program
{
static double SquareRoot(double number)
{
double low = 0;
double high = number;
double mid = (low + high) / 2;
double epsilon = 0.000001;
while (high – low > epsilon)
{
if (mid * mid > number)
{
high = mid;
}
else
{
low = mid;
}
mid = (low + high) / 2;
}
return mid;
}
static void Main(string[] args)
{
Console.Write(“Sayı Gir: “);
double sayi = Convert.ToDouble(Console.ReadLine());
Console.WriteLine(sayi+ ” sayısının karekökü: “+SquareRoot(sayi));
Console.ReadKey();
}
}
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 |
internal class Program { static double SquareRoot(double number) { double low = 0; double high = number; double mid = (low + high) / 2; double epsilon = 0.000001;
while (high – low > epsilon) { if (mid * mid > number) { high = mid; } else { low = mid; } mid = (low + high) / 2; } return mid; }
static void Main(string[] args) { Console.Write(“Sayı Gir: “); double sayi = Convert.ToDouble(Console.ReadLine()); Console.WriteLine(sayi+ ” sayısının karekökü: “+SquareRoot(sayi)); Console.ReadKey();
} }
|
Source link