Karekök alma mantığı sorunu

Başlatan robikod, 12 Ekim 2015, 14:47:29

robikod

Şu şekilde bir algoritma düşündüm ancak devC++ da yazdığım zaman sıkıntı çıkarıyor.

Programın mantığı şu şekilde:

A ve a sayılarını float olarak tanımladım.

Kullanıcıdan bir sayı girmesini istedim bu sayıyı A sayısına eşitledim.

A sayısını A=a*a şeklinde tanımladım.

Ekrana a sayısını yazdırıp karekökünü almak istedim ancak programda her zaman 0 değeri gösteriliyor neden bu şekilde oldu programlamada çok yeniyim basit bir soruysa kusura bakmayın

alicavuslu

a = sqrt(A) şeklinde yapmanız gerekmektedir.

math.h kutuphanesini de eklemelisiniz.

robikod

Alıntı yapılan: alicavuslu - 12 Ekim 2015, 14:49:17
a = sqrt(A) şeklinde yapmanız gerekmektedir.

math.h kutuphanesini de eklemelisiniz.

Ancak ben sqrt fonksiyonu kullanmadan yapmak istiyorum

alicavuslu

İteratif olarak yapman için aşağıdaki yöntemi kullanabilirsin. Example kısmındaki örnek işinize yarar.

https://en.wikipedia.org/wiki/Methods_of_computing_square_roots

vitruvius

A = a*a,      a*a'nın sonucunu A'ya atar. A ve a'ya ilk değer olarak sıfır verdiysen sonucun sıfır çıkması normal.

Karekök algoritmaları için:

http://www.codeproject.com/Articles/69941/Best-Square-Root-Method-Algorithm-Function-Precisi

Gökhan BEKEN

Özel mesaj okumuyorum, lütfen göndermeyin.

engerex

Alıntı yapılan: Gökhan BEKEN - 12 Ekim 2015, 15:09:33
http://gokhanbeken.com/karakok-alma-algoritmasi
Bu yöntemin sınırları nedir? Şu kadar basamak hassasiyette en fazla şu kadar kezde sonuca ulaşır gibi bir durum var mı?

kudretuzuner

Merhaba,
Evet ben de aynı soruyu soracaktım ama siz daha hızlı davrandınız.:)
Ne kadar çok basamak,o kadar aslına yaklaşma,gibi düşünüyorum.
Amatör

robikod

#8
Tamamdır hatayı çözdüm teşekkürler...

ohacagatay

Some people believe çiğ köfte is a matter of life and death, I am very disappointed with that attitude. I can assure you it is much, much more important than that

engerex


kantirici

#11
...