Konsultacje:
środa 12-14Adres:
Instytut Informatyki16 maja 2012 r.
Ostatnie zadanie 12 na laboratorium:
Po długim namyśle w sprawie ostatniego zadania 12 doszedłem do przekonania, że powinno ono być, wzorem lat ubiegłych, zadaniem dodatkowym. Opublikowałem więc zadanie ostatnie jako dodatkowe. Jest ono dedykowane dla tych studentów, którym brakuje kilka punktów do zaliczenia przedmiotu na swoją wymarzona ocenę ;-)
18 kwietnia 2012 r.
Zadanie 8 na laboratorium:
Zadanie 8 nie jest łatwe do zaprogramowania ale bardzo ważne w procesie nauki programowania! Proszę spróbować porządnie zaprogramować to zadanie i oddać je w następnym tygodniu (wyjątkowo będę przyjmował to zadanie po terminie).
1 kwietnia 2012 r.
Punktacja w grupie PRz:
Zrobiłem statystykę uzyskanych punktów w mojej grupie (PRz).
7 marca 2012 r.
Odwołany wykład i laboratorium:
W przyszłym tygodniu 14 marca 2012 nie będzie wykładu - z pewnych powodów muszę przesunąć go na koniec senestru albo na początek sesji (tą kwestię ustalimy w późniejszym terminie). W konsekwencji zadanie 5 na laboratorium ma przesunięty o tydzień termin realizacji (na 21-22 marca 2012).
8 lutego 2012 r.
Pierwsze laboratorium:
Pierwsze laboratoria dla wszystkich grup odbędą się dopiero w przyszłym tygodniu 15-16 lutego.
8 lutego 2012 r.
Punkt informacyjny:
To właśnie w tym miejscu będą się pojawiać ważne ogłoszenia dotyczące organizacji zajęć związanych z tym przedmiotem. Proszę zaglądać do tych ogłoszń, szczególnie przed wykładem i przed laboratorium.
C++ to obiektowo zorientowany język programowania. Został on zaprojektowany przez B.Stroustrupa z myślą o programowaniu systemowym oraz do zaawansowanych obliczeń matematycznych. Świadome używanie C++ do rozwiązywania problemów algorytmicznych daje dużo satysfakcji doświadczonym programistom, zwłaszcza dlatego, że generowany przez kompilator kod jest bardzo efektywny.
Celem kursu jest zapoznanie studentów z bogatą składnią języka C++, najważniejszymi technikami stosowanymi w programowaniu z wykorzystaniem tego języka oraz z obszernymi fragmentami biblioteki standardowej STL.
Literatura papierowa polskojęzyczna:
Literatura elektroniczna anglojęzyczna:
Spis wykładów:
Omawiane zagadnienia:
historia języka C++, pierwsze programy, struktura programu
(pliki źródłowe i nagłówkowe), referencje, napisy, klasa jako
nowy typ danych, składowe w klasie, tworzenie i usuwanie
obiektów na stosie i na stercie, konstruktor, standardowe
wejście i wyjście.
Prezentacja:
łagodne wprowadzenie do C++ (ppt)
Omawiane zagadnienia:
klasy i obiekty, pola i metody składowe, ukrywanie składowych,
przeciążanie funkcji i metod, konstruktory i destruktor,
pola i metody stałe, zgłaszanie błędów poprzez wyjątki.
Prezentacja:
klasy i obiekty (ppt)
Omawiane zagadnienia:
składowe statyczne, funkcje i metody wbudowane, argumenty
domyślne, funkcje i klasy zaprzyjaźnione.
Prezentacja:
składowe statyczne (ppt)
Omawiane zagadnienia:
przeciążanie operatorów.
Prezentacja:
przeciążanie operatorów (ppt)
Omawiane zagadnienia:
istota dziedziczenia, dostęp do odziedziczonych składników,
projektowanie hierarchii klas, dziedziczenie wielobazowe,
dziedziczenie wirtualne, konwersje standardowe wskaźników
i referencji.
Prezentacja:
dziedziczenie (ppt)
Omawiane zagadnienia:
funkcje wirtualne, implementacja wywołań polimorficznych,
wczesne i późne wiązanie, klasy abstrakcyjne.
Prezentacja:
polimorfizm (ppt)
Omawiane zagadnienia:
obsługa błędów, zgłaszanie i łapanie wyjątków, grupowanie
wyjątków, dopasowywanie wyjątków, zdobywanie zasobów poprzez
inicjalizację, wyjątki w konstruktorach i w destruktorach,
specyfikacja wyjątków, wyjątki standardowe, definiowanie
własnych wyjątków.
Prezentacja:
wyjątki (ppt)
Omawiane zagadnienia:
wskaźniki do składowych, operatory konwersji w klasie,
konstruktory konwertujące, konwersje w tradycyjnym stylu,
nowoczesne operatory konwersji, RTTI.
Prezentacja:
konwersje (ppt)
Omawiane zagadnienia:
modularyzacja kodu, tworzenie bibliotek, przestrzenie nazw,
deklaracja i dyrektywa użycia, standardowa przestrzeń nazw.
Prezentacja:
biblioteki i przestrzenie nazw (ppt)
Omawiane zagadnienia:
definicja szablonu, funkcje i klasy szablonowe, przeciążanie
szablonów funkcji, specyfikowanie strategii za pomocą
parametrów szablonu, parametry domyślne.
Prezentacja:
szablony (ppt)
Omawiane zagadnienia:
specjalizacja szblonów, klasy szablonowe, składowe statyczne
w szablonach, przyjaźń a szablony, dziedziczenie w przypadku
szablonów.
Prezentacja:
szablony (ppt)
Omawiane zagadnienia:
strumienie w bibliotece standardowej, operatory >>
i << do operacji formatowanych, sterowanie formatem,
manipulatory, nieformatowane operacje na strumieniach, błędy
w strumieniach, strumienie związane z plikami, strumienie
związane z łańcuchami, synchronizacja strumieni.
Prezentacja:
strumienie (ppt)
Omawiane zagadnienia:
struktura STL, funkcje pomocnicze, przegląd kontenerów.
Prezentacja:
STL (ppt)