Dlaczego C++?! Dlatego, że jest to jeden z najbardziej uniwersalnych języków programowania. Jego składnia jednak w wyniku nawarstwienia się różnych podejść do programowania może sprawiać problemy dopóki ktoś nie wybierze własnej ścieżki i nie “poczuje”, że ona mu pasuje. Spróbujemy tutaj poznać podejścia z klasycznego C, oraz filozofię obiektową C++ wraz z optymalizacjami. Strumienie, wektory, listy, kontenery przestaną brzmieć tajemniczo, a lista inicjalizacyjna nie będzie kojarzyła się z wykazem sprawunków.
Każdy język ma swoje narzędzia ułatwiające pracę w nim, część z nich jest uniwersalna dla wielu języków, część jest dedykowana wąskiemu aspektowi konkretnego języka programowania, a C/C++?!
Programując w C/C++ można oprzeć się na kilku środowiskach programistycznych. Tutaj, na potrzeby dydaktyki związanej z JPO wykorzystamy środowisko DEV-C++ dostępne bezpłatnie.
Języki Programowania Obiektowego to 15 konspektów zajęć (oraz materiały dodatkowe i odsyłacze) traktujących o różnych zagadnieniach z zakresu samej filozofii programowania, technik programistycznych jak i składni samego języka wraz z niezbędnymi ćwiczeniami rozwijającymi.
Przedstawione poniżej konspekty są uporządkowane chronologicznie i tematycznie od podstaw do punktu w którym można przejść na poziom średnio zaawansowany, stanowią podstawę tematyczną prowadzonych zajęć i mogą stanowić pomoc dydaktyczną w samodzielnej pracy studenta przy nauce, powtarzaniu i ćwiczeniach materiału. Nie stanowią pełnego kompendium i są jedynie uszczegółowieniem wybranych zagadnień z materiału podstawowego z wykładów.
Część pierwsza: podejście “klasyczne”.
- Środowisko programistyczne i pierwszy program.
- Typy danych.
- C, C++ i strumienie, przestrzeń nazw, formatowanie wyświetlanych informacji, operowanie tekstem.
- Operacje arytmetyczne i binarne operacje bitowe.
- Wyrażenia warunkowe: if … else; switch/case; trój-argumentowy operator warunkowy ? :.
- Pętle i zagrożenia.
- Tablice jedno i wielowymiarowe.
- Obsługa klawiatury.
- Obsługa plików.
- Wskaźniki i zarządzanie pamięcią.
- Tablice “dynamiczne” – listy, kolekcje, wektory.
- Struktury danych i unie.
Część druga: podejście obiektowe.
- Podejście obiektowe – konstrukcja obiektu.
(konstruktory, destruktory, metody, lista inicjalizacyjna) - Dziedziczenie jedno i wielobazowe.
- Polimorfizm
- Przekazywanie parametrów uruchomieniowych i kod wyjścia.
- Polskie litery w konsoli.
- Liczby pseudolosowe.
- Type Casting – rzutowanie i konwersja typów.
- Zabawa stringami
- Rekurencja.
- Obsługa wyjątków.
Zadania do samodzielnej ewaluacji.