Skip to content
Snippets Groups Projects
Commit 57013bd7 authored by Piotr Maślanka's avatar Piotr Maślanka
Browse files

lab2 - done

parent a29e1f16
No related branches found
No related tags found
No related merge requests found
Pipeline #754 passed with stage
in 4 minutes and 6 seconds
......@@ -27,9 +27,10 @@ _nikogo w tej branży do nie dziwi_.
Ciekawe zasoby do nauki C++:
* [Kurs C++0x](http://cpp0x.pl/kursy/Kurs-C++/1)
* [Kurs C++ - Mirosław Zelent](http://miroslawzelent.pl/kurs-c++/)
* [Ogólna lista kursów](http://lmgtfy.com/?q=kurs+c%2B%2B)
# Praca w grupach
## Praca w grupach
_'Sukces ma wielu ojców, porażka jest sierotą'_
---
......@@ -37,9 +38,9 @@ _'Sukces ma wielu ojców, porażka jest sierotą'_
Tą instrukcję należy wykonać w grupie. Dobierz się z innymi w grupy 3 lub 4-osobowe.
Sprawozdanie wysyła każdy za siebie, tak więc wykonuj dokładne notatki!
Poniższe zadania cząstkowe, oznaczone nagłówkami, można spokojnie rozdzielić między członków grupy.
Mogą je oczywiście robić wszyscy jednocześnie, choć wtedy zapewne nie starczy wam czasu, a i sens
pracy w grupie jest w takim wypadku wątpliwy...
Kwestia podziału poniższych zadań pozostawiona jest grupie.
# Rekurencja w C++
### How do I compile
_"Dwie podstawowe umiejętności każdego inżyniera to znajomość angielskiego i obsługa Google"_
......@@ -108,3 +109,92 @@ dużym problemem. W razie problemów - Google twoim przyjacielem.
Funkcja ta powinna wypisywać swoje parametry przy każdym wywołaniu.
Policz przy użyciu tej funkcji NWD 36 i 48.
# Podstawy programowania obiektowego
Przydatne materiały:
* [Podstawowe wiadomości o klasach](http://cpp0x.pl/kursy/Kurs-C++/Klasy-obiekty/311)
* [Metody w klasach](http://cpp0x.pl/kursy/Kurs-C++/Funkcje-w-klasie-czyli-metody/312)
* [Pierwiastek w C++](http://en.cppreference.com/w/cpp/numeric/math/sqrt)
Programowanie obiektowe pozwala nam podzielić problem na mniejsze kawałki, z których
każdy zostanie rozwiązany oddzielnie. _Obiekt_ to ideowo pewna grupa danych,
która dysponuje operacjami rozwiązującymi jej problemy.
W tym zadaniu należało będzie stworzyć klasę odpowiadającą pewnej istniejącej
specyfikacji. Specyfikacją tą jest istniejący program, który po "doklejeniu" do kodu z klasą
i nagłówka programu powinien wykonywać się poprawnie. Im więcej linijek tego programu
wykona się poprawnie - tym lepiej.
**Porada: ** spróbuj zacząć od pierwszej linii, a potem w miarę rozwoju klasy dodawaj kolejne. Pracujecie
w grupie - każda osoba może opracowywać inną część, aby było szybciej!
```
int main() {
// powinno wypisac: "X: 3, Y: 4"
Wektor w1(3, 4);
w1.wypisz();
// powinno wypisac: "Dlugosc wektora to 5", "Dlugosc wektora to 13"
Wektor w2(3, 4);
cout << "Dlugosc wektora to " << w2.dlugosc() << endl;
Wektor w3(5, 12);
cout << "Dlugosc wektora to " << w3.dlugosc() << endl;
// powinno wypisac "X: 4, Y: 6", "X: 3, Y: 4);
Wektor w4(3, 4);
w4.dodaj(1, 2);
w4.wypisz();
w4.dodaj(-1, -2);
w4.wypisz();
// powinno wypisac "X: 0, Y: 0"
Wektor w5;
w5.wypisz();
// powinno wypisac "X: 2, Y: 2", oraz "X: 4, Y: 4"
Wektor w6(1, 1);
w6.pomnoz(2);
w6.wypisz();
w6.pomnoz(2);
w6.wypisz();
// powinno wypisac "X: 1, Y: 1", "X: 0.5, Y: 0.5"
Wektor w7(2, 2);
w7.podziel(2);
w7.wypisz();
w7.podziel(2);
w7.wypisz();
// Powinno wypisac "X: 0, Y: 0"
Wektor w8(4, 3);
w8.zeruj();
w8.wypisz();
// Powinno wypisac "X: 10, Y: 10"
Wektor w9(5, 5);
w9.dodaj(w9);
w9.wypisz();
}
```
Przy `w9` będzie niezbędne [przeciążenie](https://pl.wikibooks.org/wiki/C%2B%2B/Przeci%C4%85%C5%BCanie_funkcji) metody `dodaj()`,
zaś przy `w5` - przeciążene konstruktora.
Funkcję `wypisz()` już napisano, ale i tak musisz wymyślić w jaki sposób umieścić ją w deklaracji klasy:
```
void Wektor::wypisz() {
cout << "X: " << x << ", Y:" << y << endl;
}
```
W sprawozdaniu zamieść kompletny kod rozwiązania. Zamieść w nim również imiona i nazwiska
członków twojej grupy.
# Wyślij sprawozdanie
To już prawie koniec zajęć. Zapisz i wyślij swoje sprawozdanie.
Wyślij je na adres sprawozdania@henrietta.com.pl.
W tytule umieść imię, nazwisko i numer zadania.
Załącz sprawozdanie, lub wklej je w treść maila.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment