• Nie Znaleziono Wyników

Należy do menu programu dodać wywołanie metody odlegosc 3

N/A
N/A
Protected

Academic year: 2021

Share "Należy do menu programu dodać wywołanie metody odlegosc 3"

Copied!
1
0
0

Pełen tekst

(1)

Treść zadań:

1. Wykonaj program wykorzystujący klasę punkt do animacji punktu przesuwanego w górę, w dół, w prawo i w lewo w oparciu o jeden z danych programów (instrukcja switch wykonywana w pętli)

http://sprocket.ict.pwr.wroc.pl/~zkruczkiewicz/wyklady/OBCPLUS/LAB1_1.CPP http://sprocket.ict.pwr.wroc.pl/~zkruczkiewicz/wyklady/OBCPLUS/LAB1_2.CPP 2. Wykonaj program, w którym są dwa obiekty typu punkt. Jeden z nich jest animowany

tak, jak w zadaniu 1. Drugi jest jedynie zdefiniowany z danymi w kostruktorze wartościami współrzędnymi x i y. Należy dodać do klasy punkt metodę odleglosc, która na podstawie tw. o przeciwprostokątnej trójkąta prostokątnego (x-p.x, y-p.y) podaje odleglosc między dwoma punktami. Należy do menu programu dodać wywołanie metody odlegosc

3. Należy przeciążyć nazwę metody odleglosc. Ta metoda teraz mierzy odległość między obiektem typu punkt a punktem (0,0). Należy poszerzyć program 2 o wywołanie nowej metody.

4. Należy wprowadzić dwie metody porownaj, przeciążając ich nazwę. Jedna z nich porównuje współrzędne dwóch punktów – animowanego i jedynie zdefiniowanego.

Druga z nich sprawdza, czy współrzędne animowanego punktu są poza prostokątem:

lewy górny róg (1,1) oraz prawy dolny punkt (80,25) – jeśli są poza tym prostokątem, należy współrzędnym punktu nadać wartości domyślne (np. 40,10). Należy te metody wywołać jako opcje w programie.

5. Należy podzielić program czwarty na plik nagłówkowy (zawierający deklarację klasy punkt), plik modułowy (zawierający definicje metod klasy punkt) oraz plik zawierający funkcję main. Zastosować do animacji figurę typu kwadrat, który posiada jeden z atrybutów obiekt typu punkt oraz drugi zwykły atrybut zawierający długość boku. Zastosować listę argumentów do budowy konstruktora w klasie kolo.

6. Napisz program oparty na programie z punktu 5, który zawiera trzy operatory przeciążone: - oraz dwa wybrane z grupy: +, ==, !=, <=, >= ,<,>. Metody operatorowe powinny spełniać podobne zadania jak zwykle metody (odlegosc , porownaj). Należy dodać składowe typu static: static int ile_punktow oraz static int liczba_punktow() oraz static int ile_kol oraz static int liczba_kol(). Składowa ile_punktów powinna być zwiększana w konstruktorze punkt i zmniejszana w destruktorze ~punkt, składowa ile_kol zwiększana w konstruktorze kolo i zmniejszana w destruktorze ~kolo. Wartość tych liczników obiektów typu punkt i typu kolo należy wyświetlać w momentach, kiedy są tworzone i usuwane obiekty typu punkt oraz typu kolo.

7. Napisz program, który jest rozszerzeniem programu z p.6. Zawiera on operator przeciążony na standardowe wyjście, który pozwala wyświetlać obiekt na ekranie w następujący sposób: cout<<p<<endl;, oraz operator przeciążony na standardowe wejście pozwala wprowadzać dane z klawiatury: cin>>p; gdzie p jest obiektem typu punkt. Zastosować zaprzyjaźnione funkcje operatorowe. Wykonać wybrany z dwuargumentowych operatorów przeciążonych z punktu 2 (np.+) jako funkcje zaprzyjaźnioną. Wykonać konstruktor kopiujący, który zwiększa licznik składowej typy static ile_punktow z zadania z p.6. W metodzie odleglosc przekazać obiekt typu punkt przez wartość i sprawdzić wartość licznika ile_punktow, czy zawiera prawidłową liczbę punktów. Porównać ten przypadek z zad. z p.6.

8. Napisz program, który jest rozszerzeniem programu z punktu 7. W programie należy zastosować przeciążone operatory indeksowania: jeden do pobrania wartości składowej x lub y (powinien przez return zwracać wartość x i y), drugi do wprowadzania danych do składowej x lub y (powinien zwracać przez return referencję do składowej x i y). Do przeciążenia tych operatorów należy zastosować słowo kluczowe const. Przykłady wywołania tych operatorów:

cout<<p[0]<<endl; cout<<p[1]<<endl;

(2)

cin>>p[0]; cin>>p[1];.

Uwaga: zdefiniować obiekt const p1(3,8); i wywołać cout<<p1[0]<<endl;

cout<<p1[1]<<endl; Który z operatorów przeciążonych indeksowania będzie wywolany?

9. Napisz program, który przetwarza obiekty klasy kolo. Klasa kolo posiada atrybuty:

promien typu float, srodek typu punkt. Obiekty klasy kolo powinny posiadać metody odleglosc oraz przesun, które do definicji powinny wykorzystać metodę odleglosc oraz metodę przesun klasy punkt, metodę polozenie oraz przeciążony dowolny wybrany operator (np. zdefiniowany wcześniej dla punktu i z wykorzystaniem operatora tego operatora z klasy punkt). Metoda polozenie do definicji powinna stosować metodę odleglosc i obliczając różnice i sum promieni dwóch kół: koła wywołującego metodę oraz kola przekazanego do metody, wyznaczyć wzajemne położenie tych kół (pokrywane, współśrodkowość, styczność wewnętrzną oraz zewnętrzną, przecinanie oraz położenie bez przecinania- jedno kolo wewnątrz drugiego oraz na zewnątrz drugiego). Program powinien wykonywać podobne operacje na obiektach klasy kolo, jak w programach z punktem: przesuwanie w góre, dół, w prawo i w lewo, rysowanie (w sposób dowolny, czyli zastępczy kształt w trybie tekstowym lub graficznym) oraz wywołanie opcji wyświetlających wyniki metody odleglosc, polozenie oraz wybranego przeciążonego operatora. Należy wykonać program z podziałem na pliki nagłówkowe oraz modułowe. Należy wykonać dwie wersje programu: jedna z konstruktorami zwykłym (z parametrami domyślnymi) i kopiującym dla klasy kolo bez listy argumentów oraz druga z konstruktorami zawierającymi listę argumentów.

10. Wykonaj program, który wykonuje te same operacje jak program z p. 9, ale oparty jest na dziedziczeniu klasy punkt przez klasę kolo. Należy oczywiście odrzucić atrybut srodek typu punkt, ponieważ zastępuje go dziedziczenie składowych x i y oraz metod klasy punkt.

11. Należy rozszerzyć program z punktu 10 o przedefiniowanie wybranych metod z klasy punkt. Oznacza to wykonanie metod w klasie kolo o takich samych nagłówkach, lecz rozszerzonych scenariuszach działania np. dodatkowo na atrybucie promien klasy kolo. Program powinien przedefiniować następujące metody:

a) przedefiniować metodę porownaj, która w klasie kolo powinna sprawdzić, czy koło ma współrzędne środka pokrywające się ze środkiem współrzędnych (0,0) i posiada długość promienia równą 1 i jest wywołana k1.porownaj().

Przedefiniowywana metoda w klasie punkt sprawdza jedynie pokrywanie się punktu ze środkiem współrzędnych (0,0) i jest wywoływana: p1.porownaj() b) przedefiniować metodę operatorową operator+, która w klasie kolo powinna

być zdefiniowana następująco: kolo& operator+(int a) i służy do powiększania wszystkich składowych o wartość a (x, y oraz promien). Operator przedefiniowywany w klasie punkt: punkt& operator+(int a) powiększa składowe x i y o wartość a.

c) Należy wykonać dwie wersje programu: jedną z konstruktorami bez listy argumentów oraz drugą z konstruktorami z listą parametrów.

Uwaga:

1) Należy w kodzie przedefiniowanych metod zastosować wywołanie metod przedefiniowywanych stosując operator ::

2) Należy zastosować w programie przedefiniowane metody

Cytaty

Powiązane dokumenty

21 ustawy „osoba, której zachowanie wskazuje na to, że z powodu zaburzeń psychicznych może zagrażać bezpośrednio własnemu życiu albo życiu lub zdrowiu innych osób, bądź

Generowanie listy zakupowej odbywa się za pomocą wybrania raportu: z menu Statystyki-&gt;Analizy-&gt;Raporty Pentaho-&gt;Raporty magazynu części-&gt;.. „Lista_zakupowa_Parex.prpt”

- porównuje gamy barwne i tonacje dwóch wybranych reprodukcji dzieł malarskich, - ocenia wpływ zastosowanej tonacji na nastrój i wymowę dzieła na podstawie reprodukcji

4.2 • posługuje się terminami: pojazd uprzywilejowany skrzyżowanie równorzędne, skrzyżowanie z drogą z pierwszeństwem przejazdu, skrzyżowanie o ruchu kierowanym

W celu jego otrzymania należy w ramce Licencja demonstracyjna okna Licencja podać swój adres e-mail i wyrazić zgodę na otrzymywanie od autorów programu informacji handlowej.. Zgoda

Rzeczypospolitej Obojga Narodów w XVII w.; 3) ocenia polską specyfikę w zakresie rozwiązań ustrojowych, struktury społecznej i modelu życia gospodarczego na tle europejskim w

2) przedstawia przebieg wojen toczonych przez Rzeczpospolitą Obojga Narodów w.. © Copyright by Nowa Era Sp. 12 XVII w., z uwzględnieniem roli wybitnych dowódców i polityków, w

Ocenę bardzo dobrą otrzymuje uczeń, który opanował wymagania na ocenę dobrą + bardzo dobrą Ocenę celującą otrzymuje uczeń, który opanował wymagania na ocenę bardzo dobrą+