May 6, 2024, Monday, 126

Przykładowe zadania do Laboratorium 4

From MJanik

Jump to: navigation, search


Konstruktory - Laboratorium 3

1. Proszę napisać klasę cmplx, reprezentującą liczbę zespoloną. Klasa powinna mieć dwa składniki: double re oraz double im.

Dla tej klasy należy dodać odpowiednie konstruktory oraz destruktor:

cmplx(); //konstruktor domyślny (obydwa pola domyślnie = 0)

cmplx(float); //pole im powinno być domyślnie = 0 dla tego konstruktora

cmplx(float, float); //konstruktor główny

~cmplx(); // destruktor

Niech konstruktory posiadają wypisywanie na ekran informacji, by móc odróżnić który z nich został użyty. Klasa cmplx powinna zostać zapisana w dwóch oddzielnych plikach: cmplx.cpp oraz cmplx.h.


Ponadto klasa cmplx powinna posiadać metodę print wypisującą część rzeczywistą oraz część urojoną na ekran.


Następnie proszę uruchomić program z funkcją main jak niżej:

int main()
{
cmplx z1;
cout<<endl<<"Oto pierwsza liczba zespolona: "<<endl;
z1.print();

cmplx z2(1.);
cout<<endl<<"Oto druga liczba zespolona: "<<endl;
z2.print();

cmplx z3(1.,1.);
cout<<endl<<"Oto trzecia liczba zespolona: "<<endl;
z3.print();

return 0;
}


Dla zadania 3 takie pojęcia jak:

konstruktor

destruktor

domyślna wartość argumentu

przesyłanie do funkcji argumentow bedacych obiektami: przesyłanie przez wartość i przesyłanie przez referencje

przeładowywanie nazw

new oraz delete, czyli alokacja pamięci w C++

powinny brzmieć dla państwa uszu przyjaźnie i znajomo.


2. Stwórz program z warunkiem wielokrotnego wyboru switch - case, pytający w pętli o podanie liczby od 0-5.

Wpisanie 0 powinno przerwać pętle oraz spowodować opuszczenie programu.

Wpisanie 1 - wypisanie na ekran "!"

Wpisanie 2,3,4,5 - program ponawia pytanie o liczbę.

Wpisanie liczy innej niż dozwolone - program zakomunikuje, iż została wprowadzona błędna wartość.

Pole statyczne - Laboratorium 4

2. Proszę napisać klasę figura posiadającą (oddzielne pliki .cpp i .h!):

- n - liczbę boków

- d - długość boku

- color - kolor (string)

- count - ilość figur - static!


metody:

- konstruktor. Domyślnym kolorem jest czerwony, a domyślna liczba boków to 3. Stworzenie nowej figury powinno zwiększać pole count o 1.

- ZmienKolor(string new_color);

- ZmienLiczbeBokow(int new_b);

oraz metodę statyczną wypisującą ilość figur (count) - [static void wypisz_count()]


W klasie main:

Najpierw użyć funkcji wypisz_count (bez deklaracji obiektu klasy!).

Następnie proszę stworzyć w klasie main 3 figury:

figura f1(4, "zielona");
figura f2(8, "niebieska);
figura f3;

Następnie wypisać wartość pola count dla klasy figura. (wypisz_count)


Następnie stworzyć klasę Tablica_Figur, zawierającą pole:

figura * fig_tab;

z konstruktorem przyjmującym maksymalną liczbę figur (N)

Tablica_Figur(int)

oraz odpowiednim destruktorem.


Konstruktor powinien tworzyć tablicę N czerwonych trójkątów i przypisywać wskaźnik fig_tab pod tak stworzoną tablicę (operator new!)

Destruktor powinien odpowiednio zwalniać pamięć.


Należy następnie zadeklarować tablicę_figur dla 5 nowych figur.

Należy wypisać wartość pola count dla klasy figura. (wypisz_count)


Jak działa pole statyczne? Jaką zaletę ma funkcja statyczna?