9 - Biblioteka matematyczna, debugowanie

Ikona obiektów Cele lekcji
  • Poznanie biblioteki matematycznej math.h
  • Nakierowanie na mechanizmy usamodzielniające pracę programisty: debugowanie, bazy wiedzy

Ikona obiektów Co powinieneś już wiedzieć?
  • Jak korzystać z bibliotek zewnętrznych
  • Jaki jest schemat działania języka C/C++

Ikona obiektów Biblioteka matematyczna
Aby móc korzystać z operacji matematycznych bardziej zaawansowanych niż podstawowe operacja arytmetyczne w C/C++ potrzebna jest biblioteka <math.h>. W niej zawarte są wszelkie funkcje i procedury, które pozwalają wykonywać bardziej skomplikowane działania, lub które pozwalają wyliczać wartości pewnych powszechnie znanych funkcji matematycznych.

Najważniejsze funkcje to: (ich opis znajduje się pod linkami)

Dodatkowo bardzo pożyteczną funkcją jest funckja abs(), która znajduje się w bibliotece <stdlib.h>


Ikona obiektów Debugowanie

Często podczas pisania programu zdarza się, że gdzieś występuje błąd, program nie działa, ale autor nie za bardzo wie dlaczego, gdyż błąd jest nieoczywisty i nie rzuca się w oczy. Bardzo pożytecznym narzędziem w takim przypadku jest mechanizm tzw. debuggera, który pozwala uruchomić program linijka po linijce i kontrolować przez cały czas wartości wszystkich zmiennych. W ten sposób można prześledzić dokładnie działanie programu oraz wykryć potencjalne i aktualne błędy w kodzie.

Aby uruchomić debugera w Dev C++ należy używać poleceń z menu pod przyciskiem Run.
Podstawowe polecenia to:

  • F8 - wykonaj program linia po linii (wykonaj kolejną linię programu)
  • F7 - wykonaj kolejną linię programu, chyba, że jest to procedura, wtedy wykonaj pierwszą linię procedury
  • F4 - wykonaj program do linii, w której znajduje się kursor
  • Ctrl+F5 - dodaj zmienną do Watcha

Watch to okienko, w którym można podglądać wartości zmiennych wykorzystywanych w programie.
Jeśli wykonywaną linią programu jest wczytywanie danych, obsługa przełączy się do czarnego okienka DOSowego programu i program będzie czekał, aż wpiszemy mu tam jakąś wartość. Po wpisaniu obsługa przełączy się z powrotem do ekranu Dev-C++, gdzie będzie można kontynuować debugowanie.


Ikona obiektów Zewnętrzne bazy wiedzy
W pracy programisty często spotyka się problemy, z którymi trudno jest sobie poradzić samodzielnie, gdyż np. trzeba użyć jakiejś skomplikowanej struktury, nie używanej dotąd funkcji bądź bardziej złożonego algorytmu. Naturalnym jest, że programista nie jest w stanie posiąść całej dostępnej wiedzy, natomiast spora część problemów, z którymi można się w życiu spotkać, została już przez kogoś rozwiązana, bądź ktoś inny stwierdził, że problemu rozwiązać się nie da. Dlatego bardzo częstą praktyką jest sięganie podczas kodowania do zewnętrznych źródeł wiedzy, jak np. książki bądź internet. Każdy programista powinien posiadać umiejętność sprawnego przeszukiwania dostępnych mu zasobów w celu odnalezienia tego, czego oczekuje.

Ikona obiektów Znajdowanie liczb pierwszych
Dany jest następujący problem: znajdź i wypisz wszystkie liczby pierwsze między 2 a 100.000.000. Program musi działać szybko, więc odpada sprawdzanie dla każdej z liczb po kolei, czy jest pierwsza, czy też nie.

Problem wydaje się stosunkowo trudny, jeśli nie można użyć metody brutalnej. Jednakże istnieje algorytm Sito Eratostenesa, który ten problem rozwiązuje. Aby więc napisać zadany program, należy poszukać informacji, co to jest Sito Eratostenesa, a potem je zaimplementować (lub znaleźć gotowy kod).