From MJanik
(Difference between revisions)
|
|
(5 intermediate revisions not shown) |
Line 1: |
Line 1: |
- | Przed przystąpieniem do pisania programów zalecam zapoznanie się z [http://www.if.pw.edu.pl/~gos/PO/wyklad3-2012.pdf wykładem 3] dr Hanny Zbroszczyk. | + | <!-- Przed przystąpieniem do pisania programów zalecam zapoznanie się z [http://www.if.pw.edu.pl/~gos/PO/wyklad3-2012.pdf wykładem 3] dr Hanny Zbroszczyk.--> |
| | | |
| | | |
- | == Konstruktory == | + | == 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.''
| |
| | | |
| | | |
- | Dla zadania 4 takie pojęcia jak: | + | Dla zadania 3 takie pojęcia jak: |
| | | |
| ''konstruktor | | ''konstruktor |
Line 60: |
Line 59: |
| powinny brzmieć dla państwa uszu przyjaźnie i znajomo. | | 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!):''' | | '''2. Proszę napisać klasę figura posiadającą (oddzielne pliki .cpp i .h!):''' |
Latest revision as of 09:19, 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.
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?