Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
isi_pp2 [2021/06/22 01:06] pszwed [Egzamin] |
isi_pp2 [2024/03/19 22:38] (current) pszwed [Wykłady] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Podstawy programowania 2 ====== | ====== Podstawy programowania 2 ====== | ||
+ | |||
+ | ===== Wykłady ===== | ||
+ | |||
+ | Wykłady odbywają się w środy o 19:00 na platformie MS Teams. | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | Kod do zespołu zostanie przekazany staroście | ||
+ | |||
+ | |||
+ | -{{ :: | ||
+ | -{{ :: | ||
+ | -{{ : | ||
+ | -{{ :: | ||
+ | -{{ :: | ||
+ | -{{ :: | ||
+ | -{{ :: | ||
+ | -{{ :: | ||
+ | -{{ :: | ||
+ | -{{ :: | ||
+ | -{{ :: | ||
+ | -{{ :: | ||
+ | |||
===== Egzamin ===== | ===== Egzamin ===== | ||
- | * I termin | + | * I termin |
- | * II termin | + | * II termin |
- | * III termin | + | * III termin |
+ | Podczas egzaminu: | ||
+ | * można korzystać z dowolnych materiałów w formie fizycznej (podręczników, | ||
+ | * nie można wymieniać się materiałami, | ||
+ | * nie można korzystać z telefonów | ||
+ | |||
+ | Proszę przynieść własne kartki formatu A4, np. 3 na odpowiedzi oraz 3 na brudnopis i 2 długopisy. | ||
+ | ==== Uwagi 2023 ==== | ||
+ | |||
+ | *Nie trzeba pisać | ||
+ | < | ||
+ | trg.a=towary[i].a; | ||
+ | trg.b=towary[i].b; | ||
+ | trg.c=towary[i].c; | ||
+ | trg.d=towary[i].d; | ||
+ | </ | ||
+ | |||
+ | Wystarczy '' | ||
==== Uwagi ==== | ==== Uwagi ==== | ||
+ | === Uwaga 1 === | ||
+ | Jeżeli tematem było napisanie szablonów klas typu '' | ||
+ | |||
+ | === Uwaga 2 === | ||
+ | |||
+ | Szablony '' | ||
+ | |||
+ | Proszę spróbować skompilować: | ||
+ | |||
+ | <code cpp> | ||
+ | |||
+ | class A{ | ||
+ | public: | ||
+ | A(int _v):v(_v){} | ||
+ | int v; | ||
+ | bool operator==(const A& | ||
+ | return v==a.v; | ||
+ | } | ||
+ | }; | ||
+ | |||
+ | int main(){ | ||
+ | std:: | ||
+ | set.insert(A(1)); | ||
+ | std:: | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | Dla nietypowej własnej klasy należy dostarczyć własny obiekt funkcyjny do obliczania " | ||
+ | |||
+ | <code cpp> | ||
+ | class A{ | ||
+ | public: | ||
+ | A(int _v):v(_v){} | ||
+ | int v; | ||
+ | bool operator==(const A& | ||
+ | return v==a.v; | ||
+ | } | ||
+ | }; | ||
+ | |||
+ | class MyHashForA{ | ||
+ | public: | ||
+ | size_t operator()(const A& | ||
+ | return std:: | ||
+ | } | ||
+ | }; | ||
+ | int main(){ | ||
+ | std:: | ||
+ | set.insert(A(1)); | ||
+ | std:: | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | === Uwaga 3 === | ||
Funkcja nie może zwracać wskaźnika po dereferencji do obiektu, dla którego pamięć przydzielono na stercie. | Funkcja nie może zwracać wskaźnika po dereferencji do obiektu, dla którego pamięć przydzielono na stercie. | ||
Jak zwolnić tę pamięć? Memory leak... | Jak zwolnić tę pamięć? Memory leak... | ||
Line 78: | Line 175: | ||
* Za iterację po zbiorze '' | * Za iterację po zbiorze '' | ||
* Za niezwalnianie pamięci, jeżeli kontener zawiera wskaźniki do obiektów, dla których zaalokowano pamięć na stercie | * Za niezwalnianie pamięci, jeżeli kontener zawiera wskaźniki do obiektów, dla których zaalokowano pamięć na stercie | ||
- | ===== Wykłady ===== | ||
- | |||
- | -{{ :: | ||
- | -{{ :: | ||
- | -{{ : | ||
- | -{{ :: | ||
- | -{{ :: | ||
- | -{{ :: | ||
- | -{{ :: | ||
- | -{{ :: | ||
- | -{{ :: | ||
- | -{{ :: | ||
- | -{{ :: | ||
- | -{{ :: | ||
- | |||
===== Laboratoria, | ===== Laboratoria, | ||
Line 391: | Line 473: | ||
void Fibo1:: | void Fibo1:: | ||
{ | { | ||
- | delete [] tab; // IF TAB | + | delete [] tab; |
} | } | ||
Line 421: | Line 503: | ||
Fibo:: | Fibo:: | ||
- | if(n>0) delete []tab; // TO JEST POPRAWNE, ale proponuję idiom if(tab) delete []tab; | + | if(n>0) delete []tab; // TO JEST POPRAWNE, ale proponuję |
} | } | ||