Postanowiłem przygotować przydatną dla was (i dla mnie) subiektywną listę funkcji z dostępnych na maturze bibliotek C++, które mogą się na tym egzaminie przydać. Pamiętajcie jednak, że trzeba się dwa razy zastanowić zanim użyjecie jakiejś funkcji. Matura sprawdza umiejętność logicznego, algorytmicznego myślenia, a nie znajomość bibliotek, więc jeśli macie napisane „napisz program sortujący” to piszecie własną funkcję, a nie idziecie na łatwiznę funkcją sort(). Niemniej jednak oto funkcje C++ przydatne na maturze z informatyki.
Biblioteka cmath
Biblioteka cmath zawiera w głównej mierze funkcje matematyczne. Rzućcie okiem, na te które wybrałem.
- pow() – zwraca rzeczywistą potęgę danej liczby,
1 |
double pow (double podstawa, double wykladnik); |
- sqrt() – zwraca pierwiastek drugiego stopnia z liczby,
1 |
double sqrt (double liczba); |
Gdybyście mieli na własną rękę obliczyć pierwiastek kwadratowy z liczby to zachęcam do zapoznania się z metodą Newtona-Raphsona.
- trunc() – zwraca liczbę przekazaną jako parametr bez jej cześci ułamkowej,
1 |
double trunc (double liczba); |
- fmod() – standardowym operatorem reszty z dzielenia (modulo), czyli % niekoniecznie da się pracować na zmiennych typu float czy double. Na ratunek przychodzi funkcja fmod(). Działa tak samo jak dobrze nam znany operator %, ale za to obsługuje dane z częścią ułamkową,
1 |
double fmod (double liczba, double podzielnik); |
- abs() – zwraca wartość bezwzględną, absolutną z liczby,
1double abs (double liczba);
- round(), ceil(), floor() – funkcje te służą do zaokrąglania liczb ułamkowych. Różnią się jednak sposobem zaokrąglania. Round() zaokrągla klasycznie tzn. gdy ułamek z liczby jest mniejszy od połowy to zaokrąla w dół, a w przeciwnym razie w górę. Ceil() zaokrągla w górę, a floor() w dół niezależnie od ułamka.
1 2 3 |
double round(double liczba); double ceil(double liczba); double floor(double liczba); |
Biblioteka algorithm
- swap() – funkcja ułatwia życie, gdyż nie musimy sami pisać funkcji do zamieniania wartości zmiennych.
1 |
double swap(double liczba1, double liczba2) |
- reverse() – za pomocą tej funkcji możemy odwrócić kolejność jakichś danych, np. danych tablicy, lub znaków w łańcuchu. Tym razem pokusiłem się nawet o przykłady,
1 2 3 4 5 6 7 8 9 10 11 12 13 |
double tab[5]={1,2,3,4,5};//pyk tablica reverse(tab, tab+5);//sama nazwa tablicy jest adresem jej zerowego elementu //w takim razie pierwszym argumentem jest adres zerowego elementu, //a drugim adres o jeden za tablicą (pierwsze miejsce poza zarezerwowaną pamięcią) for(int i=0; i<5; i++) cout << tab[i] << " "; string xd="matura"; reverse(xd.begin(), xd.end()); //w przypadku stringów jest podobnie -> begin() zwraca adres zerowego znaku, //a end() zwraca pierwszy adres za łańcuchem cout << endl << xd; |
- sort() – tą funkcję możemy wykorzystać do sortowania między innymi znaków w napisie i liczb w tablicy,
1 2 3 4 5 6 7 8 9 10 11 |
double tab[5]={5,1,3,2,4}; sort(tab, tab+5); for(int i=0; i<5; i++) cout << tab[i] << " "; string xd="45132"; sort(xd.begin(), xd.end()); cout << endl << xd; //tutaj robimy ten sam manewr co w reverse() //tzn. pierwszym argumentem jest zerowy element, a drugim //pierwszy adres za zarezerwowanym miejscem w pamięci |
- min() – porównuję dwie liczby i zwraca mniejszą,
1 |
double min(double liczba1, double liczba2); |
- max() – porównuję dwie liczby i zwraca większą.
1 |
double max(double liczba1, double liczba2); |
Uważajcie, bo funkcje max() i min() działają tylko dla dwóch zmiennych o tym samym typie. Swoją drogą trochę słabo pomyślane :/.
Funkcje C++ przydatne na maturze – kilka słów podsumowania
Weźcie proszę pod uwagę, że większość funkcji może przyjmować argumenty o typie innym, niż double. Użyłem tego typu w prototypach tak dla przykładu. Wiele działa jeszcze na intach, floatach, longach…
Nie nastawiajmy się również, że funkcje załątwią sprawę. Zapraszam do zapoznania się z algorytmami, które poznać warto. Lista takich algorytmów znajduje się tutaj.
Powodzenia ;).