Kök Alma Algoritması

Bu yazımızda, fonksiyon kullanmadan algoritma yazabilme mantığı ile C programlama dilinde sqrt fonksiyonu kullanmadan karekök alma işlemini gerçekleştireceğiz. Kök alma işlemi matematikte bir çok algoritma ile gerçekleştirilebilmektedir. Fakat kök alma algoritması devc++ editörü üzerinde çok karmaşık işlemlerle dönmektedir. Bizim kullanacağımız algoritma daha sade bir algoritma olacak. Tabi ki devc++ programında kullanılan kök alma algoritması kadar hızlı olmayacaktır.

Bunun için matematikte bir çok yöntem var ancak biz bu yazımızda, Babil Methodunu kullanacağız.

Bu methodun ana mantığı, bir sayıyı belli değerlere bölüp karekök değerlerine yakınsamak üzerine kurulmuştur.

Öncelikle, algoritmamızın temelinde, bu sayıya başlangıç değeri atamamız gerekiyor.Buna başlangıç değeri olarak 1 yazıyoruz. Bir döngü kullanarak,

x=0.5*(x+(sayi/x))

ifadesinde her x’i kareköküne yakınsamaya devam ediyoruz. En sonunda bu sayı kareköküne ulaştığında, bu döngüyü sonlandırıp, sonucu ekrana basıyoruz.

Programımızın mantığı bu şekilde, kodları kendiniz denemek isterseniz. Kodu kopyalayıp görebilirsiniz.

int main(){

 int i;
 double sayi,x;

 printf("sayiyi giriniz:");
 scanf("%lf",&sayi);
 
 x=1;

 for(i=0;i<1000;i++){
 x=0.5*(x+(sayi/x));

 }
 printf("\nsonuc:%f\n",x);
 return 0;

}