Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Własna funkcja sqrt()

Ostatnio zmodyfikowano 2013-04-26 17:20
Autor Wiadomość
Brezniew
Temat założony przez niniejszego użytkownika
Własna funkcja sqrt()
» 2013-04-26 14:44:02
Witam!!!
Napisałem prostą funkcję sqrt(), problem w tym że niejest zbyt dokładna a funkcje z biblioteki math.h nie wykorzystam ponieważ funkcje chce umieścić w własnym systemie operacyjnym( na razie obsługuje jedynie tryb tekstowy ). Funkcja testuje w normalnym systemie umieszczę ją dopiero po dokończeni na chwilę obecną wygląda tak:

C/C++
float pow( float a, int n )
{
    float ret = 1;
    for( int i = 1; i <= n; i++ )
         ret *= a;
   
    return ret;
}

float sqrt( float a )
{
    float xn = a * 10000;
    int n;
   
    for( n = 0; xn >= 1; n++ )
         xn /= 10;
   
    ( n % 2 == 0 ) ? xn = 6 * pow( 10,( n - 2 ) / 2 )
        : xn = 2 * pow( 10,( n - 1 ) / 2 );
   
    for( int i = 1; i < 100; i++ )
         xn =( xn + a / xn ) / 2;
   
    return xn;
}
P-81186
pekfos
» 2013-04-26 15:55:14
Po co umieściłeś tu funkcję
pow
? Chyba tylko po to, by zbierać "hejty" za bezsensowność i niezgodność ze standardem języka C.
P-81193
Brezniew
Temat założony przez niniejszego użytkownika
» 2013-04-26 16:34:35
Standardu c tam nie wstawię.
P-81196
crash
» 2013-04-26 17:13:58
P-81199
Brezniew
Temat założony przez niniejszego użytkownika
» 2013-04-26 17:20:11
Dzięki tera tylko napisać prostą wersję funkcji abs().
I pow() liczącą wykładnik zmiennoprzecinkowe.
P-81202
« 1 »
  Strona 1 z 1