Zadanie C++ - funkcje cz.2
1.	Napisz program, realizujący funkcje kalkulatora (dodawanie, odejmowanie, dzielenie, mnożenie) z dodatkową opcja wyboru rodzaju liczb, na których dokonywane są obliczenia (całkowite, naturalne, rzeczywiste). Program ma działać w taki sposób, że każda funkcja jest przeciążona co daje możliwość realizowania każdej funkcjonalności na liczbach całkowitych, naturalnych i rzeczywistych. Dodatkowo program ma mieć menu, które wyświetla się cyklicznie dając użytkownikowi wybór jaki system liczbowy wybiera (liczby całkowite, naturalne czy rzeczywiste), następnie wybór działania (dodawanie, mnożenie, dzielenie, odejmowanie). Po wykonaniu działania cała ścieżka wybory powtarza się raz jeszcze. W każdym momencie (na etapie wybory typu liczby oraz na etapie wyboru działania) użytkownik ma mieć również możliwość wyjścia z programu.
a.	Przebudować program w taki sposób, by funkcje (dodawanie, mnożenie, dzielenie, odejmowanie) były zapisane w pliku Funkc.CPP i odpowiednie dołączone do pliku MAIN.CPP za pomocą INCLUDE. W pliku MAIN.CPP jest główna funkcja main sterująca programem.
2.	Napisać funkcję realizującą w sposób rekurencyjny wyznaczanie dla zadanego N silni.
3.	Napisać funkcję realizującą algorytm NWW – najmniejsza wspólna wielokrotność (opis algorytmu dostępny na rgside.cba.pl). 
4.	Napisać funkcję realizującą algorytm NWD– największy wspólny dzielnik (opis algorytmu dostępny na rgside.cba.pl). 
5.	Napisać funkcję realizującą Obliczanie pierwiastka kwadratowego metodą Newtona-Raphsona (opis algorytmu dostępny na stronie j.w.).
6.	Napisz funkcję, która zwraca 1 dla argumentu (string), będącego palindromem, zaś 0 dla pozostałych wartości. Oto jej nagłówek:    int palindrom(string n) 
Na przykład dla argumentu „121” lub „kajak” funkcja powinna zwracać 1, natomiast dla „bujak” lub „123” zwracać 0.
7.	Napisz funkcję, która wypisuje na ekranie cyfry jej argumentu (liczby naturalnej) w odwrotnej kolejności. Oto jej nagłówek:    void odTylu(int n). Na przykład dla argumentu 123 funkcja powinna wypisać na ekranie 321.
8.	Napisać program oparty na funkcji/funkcjach, który realizuje zadania maszyny do wydawania monet. W programie należy wprowadzić jako stałą ilość monet każdego nominału jakim maszyna dysponuje na starcie(np.: 5X20gr, 10X10gr … 20X5zł) – ustalamy, że maszyna startuje ze stanem 20szt-każdeg nominału. Automat pobiera od użytkownika przy każdym użyciu 1,5zł (kwota należna za wydanie np. batonika) – kwota ta powinna być zdefiniowana w programie jako stała. Użytkownik podaje ile monet i jakiego nominału wrzuca do maszyny (np. 1X5zł lub 2X1zł lub 1X2zł lub 3X50gr lub 1X1zł+1X50gr … itd.).  Jeśli ilość monet wprowadzona przez użytkownika jest zbyt mała automat zwraca mu wrzucone monety i informuje o błędzie. Jeśli kwota wrzucona do automatu jest zbyt duża automat odlicza należność i wydaję resztę. Wydawanie reszty ma się odbywać w taki sposób by użyć jak najmniejszej liczby monet, każdego nominału. Dodatkowo automat ma przy każdym wydawaniu aktualizować stan monet danego nominału (np. jeśli wydajemy jedną monetę 50gr, przed wydaniem było ich w automacie 10, po wydaniu zostanie tylko 9). Dodatkowo automat ma również aktualizować stan monet zgodnie z tym co użytkownik wrzuca do automatu – o ile suma wrzuconych monet jest wystarczająca –zgodna z ustalona kwotą (np. prze użyciem automatu przykładowy stan monet 1zł-10szt, 50gr-2szt. Użytkownik wprowadza do automatu dokładnie odliczoną kwotę 1,5zł w postaci 1monety-1zł i 1monety-50gr. Stan monet po tej operacji ulega zmianie – 1zł-11szt ; 50gr-3szt). Automat po pobraniu należności oraz wydaniu ewentualnej reszty użytkownikowi oraz zaktualizowaniu ilości monet jest gotowy do kolejnego użycia. Przed każdym użyciem automatu powinna być też możliwość jego wyłączenia (polegająca na tym ,że program się kończy) – nim jednak automat wyłączy się całkowicie ma podać bieżący stan monet każdego nominału.

NALEŻY WYKONAĆ RÓWNIEŻ WSZYSTKIE ZADANIA Z POPRZEDNIEJ LISTY (szczególnie osoby, które nie miały kompletu zadań).