Zadania JiP 16b/05

Zadania JiP 16b/05

Zaprojektować, zaimplementować i zademonstrować w praktyce użycie klas realizujących poniższe wytyczne:

  1. Wyjątki
    1. Zademonstrować mechanizm wybiórczej obsługi wyjątków (program ma identyfikować rodzaj wyjątku (a dokładniej jego klasę) jako jeden z kilku możliwych).
    2. Zademonstrować mechanizmy kreowania i zgłaszania własnych wyjątków.
    3. Zademonstrować mechanizm powtórnego zgłaszania wyjątków na przykładzie kaskadowo wywoływanych w zagnieżdżeniu kilku procedur; każda procedura ma obsługiwać wyjątek w widoczny sposób.
    4. Zademonstrować współdziałanie bloków try..catch i try...finally
    5. Napisać dwa warianty tej samej aplikacji (np. obliczanie pierwiastków równania kwadratowego) obsługującej GUI; jeden wariant ma programowo, interaktywnie nadzorować poprawność wprowadzanych przez użytkownika danych; drugi wariant ma wykorzystywać obsługę wyjątków.
  2. Wątki
    1. Iteracyjne wyszukiwanie wspólnych mianowników dla wszystkich par liczb z zadanego przedziału bez blokowania aplikacji (czyli w wątku drugoplanowym) z możliwością przerwania, pauzy, z prezentacją wyników i postępu.
    2. Zadanie j.w. ale w wykonaniu wielowątkowym (jeden wątek dla danej pary) z możliwością definiowania liczby jednocześnie uruchomiomych wątków oraz porównaniem efektywności.
    3. Pobieranie dużego pliku z sieci - jeden wątek drugoplanowy (warunki jak w zad.1) np. z pomocą klasy WebClient (przykład użycia klasy WebClient: PWSI_2016_04_17_v2.zip).
    4. Pobieranie wielu plików z sieci - wiele wątków (warunki jak w zad.2).
    5. Tablicowanie funkcji w dużej dziedzinie z użyciem klasy BackgroundWorker (z zatrzymaniem, prezentacją postępu).

Wykonać po 2 zadania z powyższych działów.