wtorek, 20 września 2016

C - Obliczanie pierwiastka

W tym poście chciałbym przedstawić krótki program pozwalający na obliczenie pierwiastka podanego stopnia. Program został przygotowany w języku C.

Program:


Do tego celu posłużę się funkcją expotencjalną, która będzie dokonywała obliczeń na wartości logarytmu liczby pierwiastkowanej podzielonej przez stopień pierwiastka.



  1. #include <stdio.h>
  2.  
  3. int main (int argc, char *argv[])
  4. {
  5.     float liczba = 0;
  6.     float stopien = 0;
  7.     float wynik = 0;
  8.  
  9.     while(1)
  10.     {
  11.         printf("Podaj wartosc liczby, ktora ma zostac podniesiona do potegi: ");
  12.         do
  13.         {
  14.             scanf("%f", &liczba);
  15.             if(liczba<=0)
  16.             {
  17.                 printf("Zla wartosc, wprowadz dodatnia: ");
  18.             }
  19.         }while(liczba<=0);
  20.  
  21.          printf("Podaj stopien pierwiastka: ");
  22.         do
  23.         {
  24.             scanf("%f", &stopien);
  25.             if(liczba<=0)
  26.             {
  27.                 printf("Zla wartosc, wprowadz dodatnia: ");
  28.             }
  29.         }while(stopien<=0);
  30.  
  31.         wynik = exp(log(liczba)/stopien);
  32.  
  33.         printf("%.3f\n", wynik);
  34.     }
  35.     return 0;
  36. }

Drugą opcją jest wykorzystanie funkcji pow(). Przykładowy program wykonujący to zadanie może wyglądać następująco. Oczywiście jest to bardzo uboga wersja, ale oddaje sposób wykonania tego zadania:

  1. #include <stdio.h>
  2.  
  3. int main (int argc, char *argv[])
  4. {
  5.     double liczba = 64;
  6.     double stopien = (1.0 / 3.0);
  7.     double wynik = 0;
  8.  
  9.     wynik = pow(liczba,stopien);
  10.  
  11.     printf("%lf,%lf\n", stopien ,wynik);
  12.  
  13.     return 0;
  14. }