Zajęcia
Informacje o przebiegu zajęć

Zajęcia komputerowe (C++) + wykład (C)

Data Opis
Lab: 17, 18, W: 9 Elementy C++ których zawsze brakowało w C – subiektywna dyskusja
  • Zagadnienia i materiały
    • Referencja, przeciążanie funkcji, szablony
      • ex01.cpp – "Witaj świecie" w C++
      • ex02.cpp - przekazywanie argumentów do funkcji: przez wartość, przez wskaźnik i przez referencję
      • ex03.cpp – argumenty domyślne
      • ex04.cpp – przeciążanie funkcji (ang. function overloading
      • ex05.cpp – przeciążanie funkcji
      • ex06.cpp – przeciążanie funkcji a argumenty domyślne
      • ex07.cpp – szablony funkcji
      • ex08.cpp – szablony funkcji z parametrami
    • Referencja, przeciążanie funkcji, szablony
      • ex01.cpp – prosta klasa; prywatność i publiczność, definicja funkcji na zewnątrz klasy
      • ex02.cpp – konstruktor, this
      • ex03.cpp – różne sposoby wywołania konstruktora
      • ex04.cpp – klasa jako typ pamiętający stan; wywołanie tej samej metody na różnych obiektach (ale jeszcze nie polimorfizm)
      • ex05.cpp – zmienna statyczna
      • ex06.cpp – zmienne statyczne
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Wyjaśnić różnice w przekazywaniu argumentów do funkcji przez wartość, przez wskaźnik i przez referencję.
    • Posługiwać się domyślnymi argumentami funkcji.
    • Wyjaśnić czym jest przeciążanie funkcji.
    • Umieć napisać szablon funkcji.
    • Umieć napisać prostą klasę właściwie posługując się modyfikatorami dostępu public i private.
    • Utworzyć konstruktor.
    • Wyjaśnić czym jest i jaką rolę pełni this
    • Czym są zmienne statyczne.
Lab: 19, 20, W: 10 C i C++ w urządzeniach wbudowanych, IoT - pierwsze próby
  • Zagadnienia i materiały
    • Programowanie Arduino
      • c_cpp_arduino.jpg – schemat układu dla którego będziemy tworzyli kod
      • ex01.cpp – początkowy program: mruganie jedną diodą, trzy sposoby zdefiniowania diody ("magic number", define, const)
      • ex02.cpp – tablicujemy diody
      • ex03.cpp - tworzymy początkową wersję klasy kontrolera LED-ów
      • ex04.cpp – dodajemy metodę turnAllLEDs
      • ex05.cpp – wprowadzamy typ uint8_t zamiast int
      • ex06.cpp – dynamicznie przydzielamy pamięć na diody
      • ex07.cpp - sprawdzamy jakie są efekty braku zwalniania pamięci
      • ex08.cpp - dodajemy zwalnianie pamięci; tym razem program zachowuje się normalnie
      • ex09.cpp - dodanie funkcji activateLED()
      • ex10.cpp - nieznaczna modyfikacja kodu poprzedniego: raz na cykl jedna z diód jest deaktywowana
      • ex11.cpp - reorganizujemy kod dodając klasę dla LED
  • Zadanie
    • Zadanie sprawdzające materiał z poprzednich zajęć (treść)
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
Lab: 21, 22, W: 11 Dziedziczenie i polimorfizm.
Lab: 23, 24, W: 12 Test zaliczeniowy
  • Zagadnienia i materiały
    • xxx
  • Zadanie
    • Część I: zadania sprawdzające materiał z poprzednich zajęć (treść)
    • Część II: zadanie sprawdzające materiał z poprzednich zajęć (treść)
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
Lab: 25, 26, W: 13 C a C++. Wyjątki. Szablony. Własne operatory.
  • Zagadnienia i materiały
    • Tworzymy dynamiczną tablicę zwiększającą swój rozmiar zależnie od ilości dodanych elementów. Jest to "przeniesienie" kodu z języka C (patrz p04.c z Lab: 9, 10, W: 5 z przedmiotu Programowanie niskopoziomowe) do C++
      • numbers_01.cpp - dodajemy obsługę wyjątków
      • numbers_02.cpp - przekształcamy klasę w template, dodajemy operator (indeksowania)
      • numbers_03.cpp - funkcja konwertująca liczbę dziesiętną do dwójkowej; cyfry liczby dwójkowej zapisywane w dynamicznej tablicy
      • numbers_04_01.cpp - dodajemy klasę reprezentującą liczbę binarną i natrafiamy na pierwsze problemy; próba debugowania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Umieć stosować wyjątki, szablony, własne operatory.