viii Przedmowa
Niniejszy skrypt jest drugą częścią zbioru zadań pt. „Zadania z programowania C/C++”. Pierwsza część, zawierająca zadania z programowania strukturalnego, została wydana przez Instytut Informatyki UMCS w 2011r. Po roku autor oddaje w ręce czytelnika drugą część zbioru poświęconą programowaniu obiektowemu i zaawansowanym technikom języka C++, takim jak szablony i wyjątki. W przeciwieństwie do pierwszej części przeznaczonej w równym stopniu dla uczących się języka C jak i C++, druga część zbioru zadań dotyczy niemal w całości języka C+-K Wyjątkiem jest kilka zadań w rozdziale 7 „Wyjątki” ilustrujących sposoby radzenia sobie w języku C z błędami pojawiającymi się w trakcie działania programu.
Język C++ jest jednym z najpopularniejszych współczesnych języków programowania. Umożliwia on programowanie zgodne z różnymi paradygmatami programowania np: programowanie strukturalne, obiektowe czy ge-neryczne. Ta uniwersalność języka C++ powoduje, że niełatwo jest uwzględnić w książce wszystkie aspekty związane z programowaniem w nim. W wielu rozdziałach autor musiał dokonać selekcji poruszanych zagadnień, tak żeby z jednej strony zbiór nie rozrósł się zbytnio, a z drugiej strony żeby móc dać więcej niż po jednym zadaniu dotyczącym najważniejszych kwestii.
Na końcu książki czytelnik znajdzie rozwiązania części zadań. Znajdują się tam rozwiązania zadań reprezentatywnych dla poszczególnych zagadnień, jak również zadań z różnych powodów ciekawych.
Układając zadania autor starał się, żeby dotyczyły one realnych problemów programistycznych, a ich rozwiązania były na tyle, na ile to możliwie, krótkie. Nie było to jednak proste, szczególnie w przypadku zadań mających za zadanie pomóc w opanowaniu bardziej zaawansowanych tematów. Przy pisaniu tego skryptu autor wielokrotnie stawał przed wyborem, czy umieścić w zbiorze oczywiste w danym kontekście zadanie o długim rozwiązaniu, czy zadanie może nie tak naturalne, ale za to o krótkim i ciekawym rozwiązaniu. Autor ma nadzieję, że w większości przypadków dokonał właściwego wyboru.
W trakcie pisania skryptu został opublikowany od dawna oczekiwany nowy standard języka C+-f. Autor stanął więc przed wyborem, czy skrypt pisać pod kątem starego czy nowego standardu. Ze względu na fakt, że znaczna część nowego standardu nie została jeszcze zaimplementowana w najpopularniejszych kompilatorach, niniejszy zbiór skupia się na starym standardzie. Jedyne odstępstwo zostało zrobione w przypadku rozdziału dotyczącego STL-a, w którym to rozdziale została umieszczona pewna liczbę zadań pozwalających przećwiczyć użycie nowych elementów biblioteki STL. Zadania te zostały specjalnie oznaczone.
Przy niektórych zadaniach znajdują się różne oznaczenia. Poniżej znajdują się wyjaśnienia używanych oznaczeń:
* trudne zadanie,