Programowanie 2 R

prowadzący ćwiczenia:
Jędrzej Wardyn, (zajęcia w piątki, 8:15-10:00)
Piotr Dziekan, (zajęcia w piątki, 10:15-12:00)

Polecane podręczniki:
[https://pl.wikibooks.org/wiki/C++]

Polecane zasoby (darmowe :-)):
[https://www.cplusplus.com/]
[https://www.cprogramming.com/]
[http://stackoverflow.com]

Polecane interpretery C++ dostępne z poziomu przeglądarki:
[https://www.onlinegdb.com/]
[https://replit.com/languages/cpp]

Polecane inne kursy:
"Programming Abstraction in C++", Marty Stepp (CS106B, Stanford)
"Programming Paradigms", Jerry Cain (CS107, Stanford)
[https://hackr.io/blog/cpp-course ]
[https://www.fuw.edu.pl/~werner/lecture/index.html]

Zasady oceniania:
ocena = $p_1 + p_2 + p_3 + p_4$, gdzie:
$x$ $f(x)$
>=90 5
81-89 4+
72-80 4
62-71 3+
50-61 3

$p_1$ — oceny z projektów zaliczeniowych (0-25)
$p_2$ — aktywność na ćwiczeniach (0-25)
$p_3$ — ocena z kolokwium (0-25)
$p_4$ — ocena z egzaminu (0-25)

Zadania z Project Euler
Rozwiązując można zgromadzić dodatkowe
Kwalifikują się zadania które dotąd rozwiązało < 500 uczestników i są spoza zbioru:
{#308, #417, #437, #497, #523, #603, $610, #615, #692, #704, #709, #710, #713, #743, #755, #788, #793, #804, #810, #816, #820}

Zestawy projektów zaliczeniowych

  • (rozwiązania proszę nadsyłać do końca maja)

Dyfuzja ciepła i domain decomposition (autor: Piotr Dziekan)
Gaz Klasyczny (autor: Jędrzej Wardyn)
Gra Idle (autor: Jędrzej Wardyn)
Klastery (autor: Grzegorz Łach)
Kratery (autor: Grzegorz Łach)


Wykład 1 2025-02-26 09:15—10:00 sala 1.02
  • organizacja wykładu i ćwiczeń, zasady zaliczenia
  • C++ vs Python vs inne języki w obiegu
  • C++ vs Python, podstawy skladni: if, while, do…while
  • deklarowanie funkcji
  • biblioteka iostream, przestrzenie nazw

Wykład 1 (PDF)

Wykład 2 2025-03-05 09:15—10:00 sala 1.02
  • argumenty opcjonalne i wartości domyślne
  • typy danych, sprzętowa realizacja typów danych
  • typy signed i unsigned
  • konwersja typów

[https://www.dropbox.com/scl/fi/4drv0gumkvtqp87meembe/wyklad-2.pdf?rlkey=fkz8gr39o00crv4nazhhx9k2p&dl=0 Wykład 2 (PDF)]

Wykład 3 2025-03-12 09:15—10:00 sala 1.02
  • reprezentacja typów float i double
  • wskaźniki
  • arytmetyka wskaźników
  • przekazywanie argumentów funkcji przez wartość i przez referencję

Polecam: Fast Inverse Square Root — A Quake III Algorithm
Wykład 3 (PDF)

Wykład 4 2025-03-19 09:15—10:00 sala 1.02
  • tablice statyczne
  • tablice dynamiczne, new, delete
  • kontener vector z STL
  • iteratory

Polecam: Bjarne Stroustrup: C++ | Lex Fridman Podcast #48
Wykład 4 (PDF)

Wykład 5 2025-03-26 09:15—10:00 sala 1.02
  • pętla for (w tym składnia z C++11)
  • inne struktury danych STL (list, set, unordered_set, deque)
  • map
  • algorytmy z STL na kontenerach STL i na tablicach

Przyklady użycia:
[https://www.geeksforgeeks.org/unordered_set-in-cpp-stl/]
[https://www.geeksforgeeks.org/unordered_map-in-cpp-stl/]
Wykład 5 (PDF)

Wykład 6 2025-04-02 09:15—10:00 sala 1.01
  • struktury i unie
  • klasy
  • zmienne prywatne i publiczne
  • konstruktory

Wykład 6-7 (PDF)

Wykład 7 2025-04-09 09:15—10:00 sala 1.01
  • konstruktor kopiujący
  • destruktory
  • const
  • dziedziczenie

Wykład 6-7 (PDF)

Wykład 8 2025-04-16 09:15—10:00 sala 1.01
  • szablony funkcji

Wykład 8 (PDF)

Wykład 9 2025-04-23 09:15—10:00 sala 1.01
  • złożoność podstawowych algorytmów algebry liniowej
  • jaką złożoność ma liczenie odwrotności macierzy?
  • numeryczna algebra liniowa i implementacja za pomocą szablonów
  • biblioteka eigen

Wykład 9 (PDF)

nie ma wykładu
Kolokwium 2025-05-14 09:15—10:00 sala 1.01
Wykład 11 2025-05-21 09:15—10:00 sala 1.01
  • dziedziczenie
  • metody wirtualne
  • klasy abstrakcyjne
  • przyklad dziedziczących od siebie klas ostream/ofstream/ostringstream

Wykład 11 (PDF)

Wykład 12 2025-05-28 09:15—10:00 sala 1.01
Wykład 13 2025-06-04 09:15—10:00 sala 1.01
Wykład 14 2025-06-11 09:15—10:00 sala 1.01
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License