====== Kolokwium 18-01-2018 ====== ==== Grupa C ==== ==== Zadanie 1 - imiona ==== W pliku {{:po: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 {{:po: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.