Table of Contents
Kolokwium 18-01-2018
Grupa C
Zadanie 1 - imiona
W pliku imiona-2000-2016.csv podano zestawienie popularności imion nadawanych dzieciom w latach 2000-2016.
a) Wczytaj dane z pliku do pamięci
b) Które imiona męskie i żeńskie były najpopularniejsze w ciągu 17 lat
c) Wypisz ile dzieci urodziło się w latach 2000-2016
d) Podaj dla którego imienia męskiego i żeńskiego zaobserwowano największą procentową zmianę popularności.
Zadanie 2 - program Transform
Napisz program, który wypełnia tablicę double[] liczącą około 100mln elementów losowymi wartościami. Następnie zaimplementuj funkcję, która ma dwa parametry: liczbę wątków i jednoargumentowy operator https://docs.oracle.com/javase/8/docs/api/java/util/function/UnaryOperator.html. Ten operator ma być zastosowany do wszystkich elementów tablicy. W tym celu utwórz zadaną liczbę wątków i przydziel każdemu fragment tablicy do przekształcenia. Po zakończeniu przetwarzania wyświetl czasy działania. Do synchronizacji użyj semafora. Przetestuj zamieniając np. każdą wartość w tablicy na sinus tej wartości.
Grupa D
Zadanie 1 - pracownicy AGH
W pliku pracownicy-geo-agh.csv zestawiono listę pracowników jednej z katedr AGH.
a) Wczytaj dane z pliku do pamięci
b) Policz ile jest kobiet i mężczyzn (imiona żeńskie kończą się na a)
c) Wypisz wszystkie kobiety pracujące w C4
d) Wypisz wszystkich pracowników mających więcej niż jeden numer telefonu
Zadanie 2 - program Revert
Napisz program, który wypełnia tablicę int[] liczącą około 100mln elementów kolejnymi wartościami: 0,1,2, …, itd. Następnie zaimplementuj funkcję, której parametrem jest liczba wątków cnt. Uruchom cnt wątków przydzielając każdemu fragment tablicy. Zadaniem wątków będzie odwrócenie tablicy (czyli po wykonaniu operacji pierwszym elementem będzie 100 mln -1, a ostatnim 0). Po zakończeniu przetwarzania wyświetl czasy działania. Do synchronizacji użyj semafora.