Funkcje matematyczne w C++, część II

1

1. Wstęp

Niniejszy wpis na tym blogu jest kontynuacją innego wpisu, który można znaleźć tutaj. Nie będę się więc zbytnio rozpisywał we wstępie, gdyż potrzebne informacje się tam znajdują.

2. Funkcje

2.1. Podstawowe funkcje trygonometryczne

Zostaną tu opisane trzy podstawowe funkcje trygonometryczne. Są to: sinus, cosinus i tangens. Jako argument przyjmują kąt, który należy podać w radianach.

double sin (double);
double cos (double);
double tan (double);

2.2. Sinus, cosinus i tangens hiperboliczny

Oprócz funkcji sin(), cos() i tan() istnieją także sinh(), cosh() i tanh(), które różnią się tym, że zwracają kolejno sinus hiperboliczny, cosinus hiperboliczny, oraz tangens hiperboliczny.

double sinh (double);
double cosh (double);
double tanh (double);

2.3. Arcus sinus, cosinus, tangens

Nie zabrakło również funkcji zwracających arcus sinus, arcus cosinus, oraz arcus tangens. Te funkcje to: asin(), acos(), atan().

double asin (double);
double acos (double);
double atan (double);

2.4. Zamiana stopni na radiany

Jak wiadomo, liczba π (PI) to 180°. Zamiana więc stopni na radiany będzie zatem bardzo prosta, i wygląda tak:

double stopnie;
cout << "Podaj kat w stopniach: ";
cin >> stopnie;
double radiany = (stopnie * M_PI) / 180.0f;
cout << "Kat " << stopnie <<
   " wyrazony w radianach wynosi " << radiany
   << "." << endl;

2.5. Logarytmy

Do obliczania logarytmów służą funkcje log() oraz log10(). Obie funkcje przyjmują po jednym parametrze, obie funkcje zwracają wynik, lecz funkcja log() oblicza logarytm naturalny, czyli o podstawie e, a log10() oblicza logarytm o podstawie 10.

double log (double);
double log10 (double);

Przykład:

double liczba;
cout << "Podaj liczbe: ";
cin >> liczba;
double logarytm = log(liczba);
double logarytm10 = log10(liczba);
cout << "Logarytm naturalny liczby " << liczba <<
   " wynosi " << logarytm <<
   ", a logarytm o podstawie 10 wynosi " << logarytm10
   << "." << endl;

2.6. Moduł (wartość bezwzględna)

Do obliczania modułu danej liczby służy funkcja fabs(). Przyjmuje 1 parametr, oraz zwraca wynik.

double fabs (double);

Przykład:

double liczba;
cout << "Podaj liczbe: ";
cin >> liczba;
double modul = fabs(liczba);
cout << "Modul liczby " << liczba << " wynosi " <<
   modul << "." << endl;

3. Zakończenie

W tych dwóch częściach opisu biblioteki math.h opisałem kilkanaście najważniejszych funkcji. Tych funkcji jest dużo więcej i można je znaleźć na innych stronach w internecie. Pomoc w języku polskim można znaleźć na przykład na Wikibooks.

Na tym kończę opis biblioteki math.h. Kolejne porady już wkrótce! Pozdro!

Funkcje matematyczne w C++, część I

1

1. Wstęp

C++ pod względem funkcji matematycznych jest bardzo bogato wyposażony. Korzystając z tego języka można stworzyć naprawdę zaawansowany kalkulator. I nie tylko! W tym wpisie postaram się przybliżyć kilka funkcji.

Zaawansowane funkcje matematyczne znajdują się w bibliotece math.h. Należy więc dołączyć tę bibliotekę:

#include <math.h>

2. Funkcje

2.1. PI i E

Na początek zacznę może od czegoś popularnego. Biblioteka math.h posiada 2 stałe, które pozwalają wyświetlić liczbę pi, oraz liczbę e. Stałe te zwą się M_PI, oraz M_E.

Przykład:

#include <iostream>
#include <math.h>

using namespace std;

int main()
{
   cout << "Wartosc  liczby PI wynosi: " << M_PI << endl;
   cout << "Wartosc liczby E wynosi: " << M_E << endl;
   return 0;
}

2.2. Zaokrąglanie liczb

Biblioteka math.h posiada 3 funkcje służące do zaokrąglania. Te funkcje to:

  • double round (double);
  • double ceil (double);
  • double floor (double);

2.2.1. Funkcja round()

Funkcja round() zaokrągla liczbę tak, jak w szkole. Jeżeli pierwsza liczba po przecinku jest większa lub równa 5, liczba jest zaokrąglana w górę, a w przeciwnym przypadku – w dół.

2.2.2. Funkcja ceil()

Funkcja ceil() zaokrągla liczby zawsze w górę. Więc liczba 0.01 będzie zaokrąglona do 1.

2.2.3. Funkcja floor()

Funkcja floor() zaokrągla liczby zawsze w dół. Więc liczba 0.99 będzie zaokrąglona do 0.

2.3. Potęgowanie liczb

Do potęgowanie służy funkcja pow(). Funkcja ta wymaga dwóch parametrów. Pierwszym z nich jest liczba, którą chcemy potęgować, drugim potęga, do której tą liczbę chcemy podnieść. Funkcja zwraca wynik.

double pow (double, double);
Przykład:
#include <iostream>
#include <math.h>

using namespace std;

int main()
{
 double liczba, potega;
 cout << "Podaj liczbe: ";
 cin >> liczba;
 cout << "Podaj potege: ";
 cin >> potega;
 cout << "pow("<<liczba<<","<<potega<<")="<<pow(liczba,potega) << endl;
 return 0;
}

2.4. Pierwiastki

2.4.1 Pierwiastek stopnia drugiego

Do obliczania pierwiastka drugiego stopnia służy funkcja sqrt(). Funkcja przyjmuje za argument liczbę, którą chcemy pierwiastkować.

double sqrt (double);

Przykład:

#include <iostream>
#include <math.h>

using namespace std;

int main()
{
   double liczba;
   cout << "Podaj liczbe: ";
   cin >> liczba;
   cout << sqrt(liczba) << endl;
   return 0;
}

2.4.2. Pierwiastek dowolnego stopnia

Obliczanie pierwiastka dowolnego stopnia oblicza się tak, jak potęgowanie, z tą różnicą, że jako potęgę podaje się iloraz liczb 1 i stopnia pierwiastka. Wszelkie wątpliwości powinien rozwiać poniższy przykład:

#include <iostream>
#include <math.h>

using namespace std;

int main()
{
   double liczba, stopien;
   cout << "Podaj liczbe: ";
   cin >> liczba;
   cout << "Podaj stopien pierwiastka: ";
   cin >> stopien;
   cout << pow(liczba, 1/potega) << endl;
   return 0;
}

3. Kilka słów na koniec

Przy korzystaniu z funkcji matematycznych, należy przede wszystkim myśleć jak matematyk, a nie informatyk. Trzeba na przykład pamiętać, że pierwiastek z liczby ujemnej nie istnieje. Myśląc jak matematyk unikniesz później błędów, oraz nerwów.

Jak można się domyślić z tytułu wpisu, nie jest to koniec opisu funkcji matematycznych w C++ na tym blogu. Kolejne części już wkrótce. Jest o czym pisać: moduł liczby, logarytm, sinus, cosinus, tangens, oraz wiele innych. Do zobaczenia!