Zajęcia

Transkrypt

Zajęcia
Najpierw lektura obowiązkowa:
http://prac.us.edu.pl/~siminski/c_cxx/c_cxx_w05.pdf
i obowiązkowe programy w ramach wykładu:
http://prac.us.edu.pl/~siminski/c_cxx/cwiczenia05p.pdf
Potem programy do wykonania samemu na ocenę:
Zadanie 1 „Równanie kwadratowe”
Dane jest równanie kwadratowe:
Ax2 + Bx + Cx = 0
Należy napisać funkcje wyznaczające deltę, pojedynczy pierwiastek, pierwiastki
podwójne.
Funkcja obliczająca deltę:
float delta( float a, float b, float c );
Funkcja obliczająca pierwiastek podwójny (delta równa zero):
float x0( float a, float b, float c );
Funkcja obliczająca dwa pierwiastki (delta większa od zera):
float x1( float a, float b, float c, float delta );
float x2( float a, float b, float c, float delta );
Proszę napisać program rozwiązujący równanie kwadratowe w oparciu o te funkcje.
Zadanie 2 „pola figur płaskich”
Napisz program obliczający pola figur płaskich, aby udawał wersje demo, pozwalającą na wywołanie każdej
opcji tylko trzy razy. Należy to zrealizować poprzez wprowadzenie do każdej z funkcji obsługujących opcje
menu, liczników liczby wywołań w postaci zmiennych statycznych (zobacz materiał wykładowy).
Zadanie 3 „Obliczanie pól — wersja wielomodułowa”
Zmodyfikuj program obliczający pola figur płaskich tak , aby funkcje obliczające pola figur były zawarte w
oddzielnym module o nazwie pola.cpp.
Prototypy tych funkcji powinny zostać umieszczone w pliku nagłówkowym pola.hpp.
Program główny, zawierający funkcję main powinien zostać umieszczony w pliku glowny.cpp. Przykład w
materiałach wykładowych.
Proszę założyć projekt odpowiednio do wykorzystywanego środowiska lub dokonać kompilacji rozłącznej
programu korzystając z kompilatora a linii poleceń.
Zadanie 4 „kapitalizacja odsetek”
Napisz funkcję, która dla zadanej rocznej stopy procentowej, i całkowitej ilości lat obliczy czynnik kapitalizujący
w procencie składanym z kapitalizacją co roku. Napisz program, który zapyta o saldo początkowe, stopę
procentową oraz ilość lat, a następnie, korzystając z powyższej funkcji, będzie w stanie wyświetlić w konsoli
saldo końcowe konta oszczędnościowego po zadanej ilości lat, przy założeniu stałej stopy procentowej.
Przykład wyniku: 10000 odłożone na 3 lata na 5.0% da na koniec 11576.25.
Zadanie 5
Napisz funkcję rozwiązującą następujące zadanie: pewna osoba co roku oszczędza pewną sumę i odkłada ją na
rachunek bankowy, z którego niczego nie wypłaca. Osoba ta planuje co rok zwiększać o stałą kwotę sumę
swoich oszczędności odkładanych z początkiem roku na rachunek bankowy z roczną kapitalizacją odsetek
(przykładowo, w pierwszym roku odłoży 1000, w drugim do skapitalizowanych poprzednich oszczędności
dołoży dodatkowe 1050, w trzecim dołoży dodatkowe 1100 itd.). Zakładamy, że stopa procentowa jest przez
cały czas taka sama. Osoba ta potrzebuje odpowiedzi na pytanie ile lat powinna oszczędzać, aby zgromadzić
kapitał w zadanej wysokości. Napisz funkcję obliczającą odpowiedź. Możesz skorzystać z funkcji z zadania nr 4.
Napisz program demonstrujący jej działanie dla danych wprowadzonych przez użytkownika.
Przykład działania:
Założenia:
1. Co roku klient banku wpłaca o stałą kwotę więcej. Np. 50 zł (czyli w 1 roku 1000, w 2 roku 1050, w 3
roku 1100zł itd.)
2. Stopa procentowa jest taka sama np. 5 %
3. Jeśli więc założy, że chce uzbierać 3450 zł to będzie musiał oszczędzać 3 lata, bo po 3 latach jego konto
będzie zawierało kwotę min. 3450 zł.
Zadanie 6
Napisz program, który przy pomocy zagnieżdżonych pętli wypisze na ekran tabliczkę mnożenia dla liczb 1,2,3:
123
1123
2246
3369
Zadanie 7
Napisz funkcję, która wyświetli wszystkie długości boków i wszystkie wielkości kątów (w stopniach) trójkąta
prostokątnego dla dwóch argumentów: długości przyprostokątnej oraz wielkości kąta (w stopniach)
nieprzylegającego do tej przyprostokątnej.
Zadanie 8
Napisz funkcję, która wyświetli cyfry zadanej liczby naturalnej, rozdzielone przecinkami.
Zadania dodatkowe
Zadanie 9 „Obliczanie pól — makra zamiast funkcji”
Zmodyfikuj program obliczający pola figur płaskich z punktu poprzedniego tak, by obliczenia realizowały makra
(np. #define POLE_KOLA(R) ) a nie funkcje. Proszę spróbować napisać program testujący różnicę czasów
wykonania wielokrotnie powtarzanych obliczeń dla wersji z funkcjami i z makrami. Czy testy praktyczne
potwierdzają, że marka są szybsze?