Ćwiczenia podstawowe, zestaw 5, zestaw 2
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.
2 Układ równań liniowych
Dany jest układ równań liniowych
A1x + B1y = C1
A2x + B2y = C2
Rozwiązanie układu równań może polegać na wyliczeniu odpowiednich wyznaczników W, Wx, Wy a następnie ich ilorazów — zgodnie z informacjami
poznanym na zajęciach z matematyki.
Proszę napisać funkcje wyznaczające wartości wyznaczników:
float w( float a1, float b1, float a2, float b2 ); float wx( float c1, float b1, float c2, float b2 ); float wy( float a1, float c1, float a2, float c2 );
Należy zaprojektować i zaimplementować program pozwalający na rozwiązywanie dowolnego układu takich równań. Program powinien umożliwiać wczytanie współczynników A1, B1, C1, B2, C2, następnie powinien wyznaczyć rozwiązania równań
metodą wyznacznikową. Należy identyfikować i prawidłowo zareagować na sytuację, gdy układ jest nieokreślony.
3 Obliczanie pól — wersja demo
Zmodyfikuj program obliczający pola figur płaskich tak (zobacz podstawową instrukcje do ćwiczeń), 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).
4 Obliczanie pól — wersja wielomodułowa
Zmodyfikuj program obliczający pola figur płaskich tak (zobacz podstawową instrukcje do ćwiczeń), 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ń.
5 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?