Çözüldü Square root bulma yorumlaması

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

Timuçib

Decapat
Katılım
8 Mart 2023
Mesajlar
1.350
Çözümler
13
C:
double sqre(double value) {
 double i = 0;
 double step = 0.1;
 double tolerance = 0.0001;

 while (1) {
 if (fabs(i * i - value) < tolerance) {
 return i;
 }

 if (i * i > value) {
 i -= step; // Geri adım at
 step /= 10; // Adım büyüklüğünü küçült
 }

 i += step;
 }
}

Bu programın karekök bulduğunu biliyoruz fakat tam olarak fabs gibi fonksiyonların bu programda işlevini anlayamadım. Step içinde geçerli tam olarak hepsini kapsayacak şekilde programı yorumlayıp anlatır mısınız?
 
Çözüm
Hocam i bir rasyonel sayı, step ise i ye eklemi için çünkü ondalıklı olacak bir rasyonel sayı hocam. Eğer sayı I'nin karesinden küçükse I'den adımı çıkarırız. Mesela i 1 olsun, adım 0.1 1 olur step 0.01 yaparız ki daha küçük bir sayı elde edelim. İ'nin karesinde sayımızı çıkardığımızda elde ettiğimiz sonuç toleransından küçük ise karekökü yaklaşık değeri ki o yüzden tolerans değerimiz var ì oluyor.
Hocam i bir rasyonel sayı, step ise i ye eklemi için çünkü ondalıklı olacak bir rasyonel sayı hocam. Eğer sayı I'nin karesinden küçükse I'den adımı çıkarırız. Mesela i 1 olsun, adım 0.1 1 olur step 0.01 yaparız ki daha küçük bir sayı elde edelim. İ'nin karesinde sayımızı çıkardığımızda elde ettiğimiz sonuç toleransından küçük ise karekökü yaklaşık değeri ki o yüzden tolerans değerimiz var ì oluyor.
 
Son düzenleyen: Moderatör:
Çözüm
Hocam i bir rasyonel sayı, step ise i ye eklemi için çünkü ondalıklı olacak bir rasyonel sayı hocam. Eğer sayı I'nin karesinden küçükse I'den adımı çıkarırız. Mesela i 1 olsun, adım 0.1 1 olur step 0.01 yaparız ki daha küçük bir sayı elde edelim. İ'nin karesinde sayımızı çıkardığımızda elde ettiğimiz sonuç toleransından küçük ise karekökü yaklaşık değeri ki o yüzden tolerans değerimiz var ì oluyor.
Teşekkür ederim hocam.
 

Geri
Yukarı