May 12, 2024, Sunday, 132

Przykładowe zadania do Laboratorium 4

From MJanik

(Difference between revisions)
Jump to: navigation, search
(Konstruktory - Laboratorium 3)
(Konstruktory - Laboratorium 3)
Line 41: Line 41:
  }
  }
   
   
-
''Koniecznie(!) należy przećwiczyć przykładowe programy dla zadania 3 (można przećwiczyć dla programów innych grup). Od zadania 4 przewidywany czas na napisanie klasy podzielonej na pliki cpp i h, z <= 4 składnikami i <=3 metodami (m. inn. do wypełniania i wypisywania) powinno zająć nie więcej niż 15 minut.''
 

Revision as of 09:16, 20 October 2023


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.

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?