Ćwiczenia w budowaniu klas
Transkrypt
Ćwiczenia w budowaniu klas
Ćwiczenie 2 1 Definiowanie klas Ćwiczenia to poświęcone są utrwaleniu umiejętności w definiowaniu i wykorzystaniu prostych klas. Obejmują m.in. ćwiczenia pozwalające utrwalić definiowanie konstruktorów, funkcji składowych spełniających rolę akcesorów i realizatorów. Materiał teoretyczny, niezbędny dla zrozumienia prezentowanych przykładów zawierają materiały wykładowe dostępne online, w postaci dokumentu pdf, pod adresem: http://www.us.edu.pl/~siminski. 1.1 Ćwiczenie 1 — klasa RownanieKwadratowe Dane jest równanie kwadratowe: Ax2 + Bx + Cx = 0 Należy zaprojektować klasę RownanieKwadratowe, przechowującą współczynniki takiego równania i pozwalającą na obliczanie wyznacznika (delty) i miejsc zerowych. Klasa posiada prywatne pola A, B, C, będące liczbami całkowitymi, reprezentujące współczynniki równania. Każde z pól posiada akcesory w postaci funkcji składowych, np. ustawA(), pobierzA(). Klasa powinna posiadać funkcje składową delta() obliczającą deltę oraz trzy funkcje obliczające miejsca zerowe: jedną do obliczania pierwiastka podwójnego (delta==0) oraz dwie osobne, do obliczania pierwiastków, gdy delta ma wartość dodatnią. Obiekt ten może być wykorzystany w następujący sposób: RownanieKwadratowe r; double num; cout << ’Podaj A:’; cin >> num; r.ustawA( num ); cout << ’Podaj B:’; cin >> num; r.ustawB( num ); Wprowadzenie do programowania w języku C++ Obiekty reprezentujące pojęcia matematyczne cout << ’Podaj C:’; cin >> num; r.ustawC( num ); if( r.delta() > 0 ) cout << ”Pierwiastki rownania x1=” << r.obliczX1() << ” x2=” << r.obliczX2() << endl; else if(r.delta() = 0 ) cout << ”Pierwiastek podwójny x12=” << r.obliczX12() << endl; else cout << ”Brak pierwiastkow rzeczywistych” << endl; Klas powinna być wyposażona w konstruktor domyślny, trzyparametrowy konstruktor ogólny, co pozwoli deklarować obiekty klasy RownanieKwadratowe w następujący sposób: RownanieKwadratowe r1; // Konstruktor inicjuje A=B=C=0; RownanieKwadratowe r2(3,2,1); // Konstruktor inicjuje A=3,B=2,C=1; Należy się zastanowić nad przypadkiem, gdy równanie staje się liniowym, tzn. A=0 i zaproponować rozwiązanie tego problemu. 1.2 Ćwiczenie 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 iloczynów — zgodnie z informacjami poznanym na zajęciach z matematyki. Należy zaprojektować i zaimplementować w języku C++ obiektowy 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. Pełny, skomentowany kod źródłowy programu rozwiązującego układ równań, zawierający informację o autorach (maksymalnie dwie osoby) należy przesłać na adres [email protected]. Przypominam, że praca ma być wykonana (w obrębie sekcji) samodzielnie. Przykłady i ćwiczenia 1.3 Co po tym ćwiczeniu należy umieć? Zakładam, że wszystkie umiejętności zdobyte przy wykonywaniu ćwiczenia 1-go, zostały pogłębione i utrwalone. Wprowadzenie do programowania w języku C++