Wymagane przygotowanie studentów
- dobra znajomość języka programowania C
- operowanie podstawowymi strukturami danych (tablice, listy, drzewa, grafy)
Literatura
- papierowa:
-
-
B.Stroustrup:
Język C++.
WNT, Warszawa 2000, ISBN 83-204-2375-9.
- elektroniczna:
-
Organizacja pracowni
- ogólnie
W ciągu semestru będzie kilkanaście zadań do zaprogramowania
(jedno zadanie na każdą pracownię).
Zadania będą raczej proste, a terminy ich realizacji dość krótkie
(kilka dni).
Za każde poprawnie zaprogramowane zadanie i oddane w terminie można
będzie dostać określoną liczbę punktów
(6, 9, 15 lub 21, zależnie od stopnia trudności zadania).
- terminy
Zadanie należy zaprogramować na wyznaczony termin (następny tydzień
po opublikowaniu zadania). Można się spóźniać, ale to kosztuje utratę
punktów: jeden tydzień spóźnienia to obcięcie punktów do 2/3 z maksa,
a dwa tygodnie spóźnienia, to obcięcie do 1/3 z maksa; po trzech tygodniach
zadanie przeterminowuje się.
- prezentacje
Programy należy prezentować osobiście w czasie pracowni (proszę nie
wysyłać programów pocztą elektroniczną, ani nie przekazywać dyskietek
poprzez kolegów/koleżanki). W trakcie prezentacji programu trzeba się
liczyć z pytamiami dotyczącymi zadania, jego rozwiązania, oraz
zastosowanych konstrukcji językowych.
- zaliczenia
Aby uzskać zaliczenie z pracowni na ocenę dostateczną trzeba do
końca semestru zdobyć 50% z wszystkich możliwych do uzyskania
punktów; na ocenę bardzo dobra trzba będzie zgromadzić 90% punktów;
oceny pośrednie pozostją w liniowej zależności od przedstawionych
wymagań granicznych.
Zadania
- dla studentów dziennych:
-
-
zadanie 1
(dvi
/ ps
/ pdf):
6 punktów
(termin realizacji: 28.02.2005) - miesiące w roku
-
zadanie 2
(dvi
/ ps
/ pdf):
9 punktów
(termin realizacji: 7.03.2005) - punkty współliniowe
-
zadanie 3
(dvi
/ ps
/ pdf):
15 punktów
(termin realizacji: 14.03.2005) - kalendarz gregoriański
-
zadanie 4
(dvi
/ ps
/ pdf):
9 punktów
(termin realizacji: 21.03.2005) - sortowanie przybliżone
-
zadanie 5
(dvi
/ ps
/ pdf):
15 punktów
(termin realizacji: 4.04.2005) - tablice bitowe
-
zadanie 6
(dvi
/ ps
/ pdf):
21 punktów
(termin realizacji: 11.04.2005) - arytmetyka długich liczb
-
zadanie 7
(dvi
/ ps
/ pdf):
21 punktów
(termin realizacji: 18.04.2005) - drzewa AVL
-
zadanie 8
(dvi
/ ps
/ pdf):
15 punktów
(termin realizacji: 25.04.2005) - dowolnie indeksowane tablice
-
zadanie 9
(dvi
/ ps
/ pdf):
21 punktów
(termin realizacji: 9.05.2005) - kolekcja z iteratorem
-
zadanie 10
(dvi
/ ps
/ pdf):
15 punktów
(termin realizacji: 16.05.2005) - szyfrowanie i deszyfrowanie
-
zadanie 11
(dvi
/ ps
/ pdf):
21 punktów
(termin realizacji: 23.05.2005) - kalkulator ONP
-
zadanie 12
(dvi
/ ps
/ pdf):
21 punktów
(termin realizacji: 6.06.2005) - automaty skończone
-
- koniec (189) -
- dla studentów wieczorowych:
-
-
zadanie 1
(dvi
/ ps
/ pdf):
6 punktów
(termin realizacji: 23.02.2005) - dni tygodnia
-
zadanie 2
(dvi
/ ps
/ pdf):
6 punktów
(termin realizacji: 2.03.2005) - nazwa-wartość
-
zadanie 3
(dvi
/ ps
/ pdf):
15 punktów
(termin realizacji: 9.03.2005) - kalendarz gregoriański
-
zadanie 4
(dvi
/ ps
/ pdf):
9 punktów
(termin realizacji: 16.03.2005) - sortowanie przybliżone
-
zadanie 5
(dvi
/ ps
/ pdf):
9 punktów
(termin realizacji: 23.03.2005) - liczby zespolone
-
zadanie 6
(dvi
/ ps
/ pdf):
12 punktów
(termin realizacji: 30.03.2005) - wielomiany zespolone
-
zadanie 7
(dvi
/ ps
/ pdf):
12 punktów
(termin realizacji: 6.04.2005) - elementy obliczalne
-
zadanie 8
(dvi
/ ps
/ pdf):
15 punktów
(termin realizacji: 20.04.2005) - lista asocjacyjna
-
zadanie 9
(dvi
/ ps
/ pdf):
15 punktów
(termin realizacji: 27.04.2005) - dowolnie indeksowane tablice
-
zadanie 10
(dvi
/ ps
/ pdf):
9 punktów
(termin realizacji: 4.05.2005) - funkcje porównujące
-
zadanie 11
(dvi
/ ps
/ pdf):
15 punktów
(termin realizacji: 11.05.2005) - lista, stos, kolejka
-
zadanie 12
(dvi
/ ps
/ pdf):
21 punktów
(termin realizacji: 25.05.2005) - kalkulator ONP
-
- koniec (144) -
Wykłady (streszczenie)
- 22.02.2005:
-
- Ogólne cechy języka programowania C++.
- Typ wyliczeniowy (enum).
- Łańcuchy znakowe (string).
- Standardowe wejście i wyjście
(cin, cout, cerr).
- Referencje i stałe referencje.
- Obiekty stałe (const), stałe wskaźniki
i wskaźniki do stałych.
- Operatory przydzielania (new) i zwalniania
(delete) pamięci wolnej.
- 1.03.2005:
-
- Funkcje wbudowane (inline).
- Przeładowanie funkcji.
- Parametry domyślne funkcji.
- Klasy i obiekty.
- Pola i metody.
- Ukrywanie implementacji.
- 8.03.2005:
-
- Metody wbudowane (inline).
- Pola i metody statyczne (static).
- Metody stałe (const).
- Lista inicjalizacyjna w konstruktorze.
- Pola stałe (const)
i pola zawsze modyfikowalne (mutable).
- Pola ulotne i metody ostrożne (volatile).
- Konstruktor domyślny.
- Konstruktor kopiujący.
- 15.03.2005:
-
- Funkcje zaprzyjaźnione.
- Przeciążanie operatorów.
- 22.03.2005:
-
- Dziedziczenie.
- Dostęp do składowych klasy bazowej i udostępnianie
wybiórcze.
- Konstrukcja i destrukcja obiektów w klasach pochodnych.
- Standardowe konwersje wskaźników i referencji
przy dziedziczeniu.
- Metody polimorficzne (virtual).
- Destruktor wirtualny w klasach polimorficznych.
- 29.03.2005:
-
- Wczesne i późne wiązanie.
- Metody czysto wirtualne i klasy abstrakcyjne.
- Dziedziczenie wielobazowe.
- Dziedziczenie wirtualne.
- 5.04.2005:
-
- Zgłaszanie wyjątków (instrukcja throw).
- Łapanie wyjątków (instrukcja try-catch).
- Dopasowywanie wyjątków.
- Specyfikacja wyjątków.
- Specyfikacja wyjątków w metodach polimorficznych.
- 12.04.2005:
-
- Zwijanie stosu.
- Mechanizm lotu wyjątków.
- Wyjątki zgłaszane w kontruktorach.
- Kiedy nie wolno zgłaszać wyjątków.
- Zdobywanie zasobów poprzez inicjalizację.
- Hierarchia wyjątków w STL.
- Wyjątki związane z operatorem new.
- Inteligentne wskaźniki (auto_ptr).
- 19.04.2005:
-
- Niewyłapane wyjątki.
- Przestrzenie nazw.
- Wzorce - wstęp.
- 26.04.2005:
-
- 3.05.2005:
-
- 10.05.2005:
-
- Strumienie i manipulatory w STL.
- 17.05.2005:
-
- Kolekcje i iteratory w STL.
- 24.05.2005:
-
- Obiekty funkcyjne i adaptatory w STL.
- 31.05.2005:
-
|