Table of Contents
Grupa D
Kolokwium - Programowanie Zaawansowane 17.01.2022
Zadanie 1 CountIf
Napisz program, który wypełnia tablicę int[] liczącą około 100mln elementów losowym wartościami z zakresu [0,1000], a następnie sprawdzi, ile razy jest spełniają one predykat Predicate<T>
a) sequentialCount()
- Zaimplementują wątek
CountIfThread
. W konstruktorze przekaż predykat i zakres indeksów elementów tablicy do sprawdzenia - W wywołaniu przekaż mu takie wartości indeksów, aby sprawdził on całą tablicę
- Podaj czas wykonania
a) parallelCount(int cnt)
- Zaimplementuj funkcję, której parametrem jest liczba wątków cnt. Uruchom cnt wątków przydzielając każdemu fragment tablicy.
- Do agregacji danych użyj kolejki
b) Przetestuj i podaj czasy
- Przetestuj przekazując wyrażenie lambda, np. sprawdzające, czy element ma wartość <100
- Sprawdź, czy wyniki są prawdopodobne (około 10%)
- Porównaj czasy działania dla różnych wartości parametru cnt
Zadanie 1
W pliku ibuk_wykaz_pozycji.csv znajduje się znaleziony w sieci spis książek jakiejś biblioteki. Zadeklaruj klasę Book z odpowiednimi polami, która będzie przechowywała dane poszczególnych książek. Wczytaj dane z pliku do pamięci
a) Wypisz wszystkie książki, których autorem lub współautorem był mężczyzna o imieniu Marek. Wypisując informacje o książce podaj co najmniej: autora, tytuł, wydawnictwo i rok wydania
b) Wypisz wszystkie książki wydane przez Wydawnictwo Naukowe PWN z kategorii Informatyka posortowane według roku wydania
c) Podaj ile książek wydano w kolejnych latach (policz książki z kolejnych lat i wypisz)
d) Podaj ile książek zostało wydane przez poszczególne wydawnictwa