13Milówka08 – wspomnienia i wrażenia

13

(Post współdzielony z Mrowqą i m4txem)

W dniach 5-15.08.2013 odbył się obóz informatyczny organizowany przez Stowarzyszenie Talent w malowniczej miejscowości zwanej Milówką. Oprócz jednak samych nerdów była jeszcze grupa matematyczna, choć mało liczna, bo licząca 11 dusz. Z kolei fanów fizyki rzekomo znalazło się tylko dwóch.

Obóz został zorganizowany w proporcjach 2:1 (dni naukowe – dni turystyczne). Jak więc nietrudno policzyć, odbyły się trzy takie „sekwencje”. Zwolennicy informatyki zostali podzieleni na dwie grupy – konkursową oraz warsztatową. W tej pierwszej najpierw odbywały się zawody, a następnie omówienie zadań, a w drugiej z kolei było na odwrót. My oczywiście przynależeliśmy do tej elitarnej części społeczeństwa obozu 🙂 Grupy były nazywane jak grzyby. Grupa konkursowa z informatyki nazwana została borowikami (bo rzekomo silne i samodzielne), warsztatowa – opieńkami (bo nie dają rady samemu i trzymają się w kupach), matematyczna zaś – maślakami (powód nadania takiej nazwy nieustalony).

Czytaj dalej

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!