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”.

  1. Środowisko programistyczne i pierwszy program.
  2. Typy danych.
  3. C, C++ i strumienie, przestrzeń nazw, formatowanie wyświetlanych informacji, operowanie tekstem.
  4. Operacje arytmetyczne i binarne operacje bitowe.
  5. Wyrażenia warunkowe: if … else; switch/case; trój-argumentowy operator warunkowy ? :.
  6. Pętle i zagrożenia.
  7. Tablice jedno i wielowymiarowe.
  8. Obsługa klawiatury.
  9. Obsługa plików.
  10. Wskaźniki i zarządzanie pamięcią.
  11. Tablice “dynamiczne” – listy, kolekcje, wektory.
  12. Struktury danych i unie.

Część druga: podejście obiektowe.

  1. Podejście obiektowe – konstrukcja obiektu.
    (konstruktory, destruktory, metody, lista inicjalizacyjna)
  2. Dziedziczenie jedno i wielobazowe.
  3. Polimorfizm
Dodatek:
  1. Przekazywanie parametrów uruchomieniowych i kod wyjścia.
  2. Polskie litery w konsoli.
  3. Liczby pseudolosowe.
  4. Type Casting – rzutowanie i konwersja typów.
  5. Zabawa stringami
  6. Rekurencja.
  7. Obsługa wyjątków.

Zadania do samodzielnej ewaluacji.

Udział studentów w zajęciach on-line wymaga użycia kamery z mikrofonem i odbywa się w środowisku MS Teams. W trakcie zajęć kamera winna być włączona, mikrofon wyciszony (włączany jedynie na czas konwersacji).