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

Pierwiastki i potęgi

Ostatnio zmodyfikowano 2018-01-07 23:16
Autor Wiadomość
Anette
Temat założony przez niniejszego użytkownika
Pierwiastki i potęgi
» 2018-01-07 21:37:56
Napisałam funkcję obliczającą pierwiastek drugiego stopnia z podanej liczby oraz podnoszącą daną liczbę do podanej potęgi. Bez użycia funkcji bibliotecznych. Ogólnie działają, ale tylko wtedy, gdy nie są używane w żadnych innych funkcjach. Takich jak np. funkcja obliczająca sumę pierwiastków drugiego stopnia z kolejnych liczb od 1 do n.

Te funkcje wyglądają tak:
C/C++
float POW( int m, float n )
{
    float wynik = 1;
    if( n == 0 ) wynik = 1;
   
    for( int i = 0; i < n; i++ ) wynik *= m;
   
    if( n < 0 )
    {
        for( int i = n; i < 0; i++ ) wynik *= m;
       
        wynik = 1 / wynik;
    }
   
    return wynik;
   
}
float SQRT_2( int n )
{
    for( int i = 1; i < n; i++ )
    if( i * i == n )
         return i;
   
}

Przy okazji, wiem, że ta druga funkcja mogłaby nie być potrzebna, gdybym skorzystała z faktu, że pierwiastek n - tego stopnia z liczby m to to samo co m do potęgi 1/n, ale średnio wiem jak dodać coś takiego do funkcji POW.
P-168478
pekfos
» 2018-01-07 21:46:56
Ogólnie działają, ale tylko wtedy, gdy nie są używane w żadnych innych funkcjach.
Czyli nie działają.

C/C++
float SQRT_2( int n )
{
    for( int i = 1; i < n; i++ )
    if( i * i == n )
         return i;
   
}
A to dla jakich danych było testowane? Najzwyklejszy w świecie pierwiastek z dwóch wywołuje tu niezdefiniowane zachowanie.
P-168480
Anette
Temat założony przez niniejszego użytkownika
» 2018-01-07 22:27:25
Dla danych, których pierwiastki drugiego stopnia są całkowite. Tak, podsumowując, to nie działa
P-168487
pekfos
» 2018-01-07 23:16:37
P-168489
« 1 »
  Strona 1 z 1