WPR, laboratorium 9
"Pipes and Matches", w wolnym tłumaczeniu
kolekcjonując fajki i zapałki w ujęciu informatycznym...
Zadanie 1A (kolekcje)
Napisz program, który umożliwia użytkownikowi podanie dowolnie długiej listy imion. Imiona mają być wprowadzane pojedynczo, a proces ich wczytywania ma się kończyć po podaniu wyrazu END. Następnie program ma, w zależności od decyzji użytkownika, wyświetlić utworzoną listę w porządku alfabetycznym lub odwrotnym tzn. od Z do A.
przykład wykonania programu
Podaj wyraz (jesli masz dosc podaj END): Ala
Podaj wyraz (jesli masz dosc podaj END): Zenon
Podaj wyraz (jesli masz dosc podaj END): Alicja Marian Zofia
Sorki miały być pojedyncze wyrazy :(, spróbuj jeszcze raz :)
Podaj wyraz (jesli masz dosc podaj END): Marcin
Podaj wyraz (jesli masz dosc podaj END): Paolo
Podaj wyraz (jesli masz dosc podaj END): Leokadia
Podaj wyraz (jesli masz dosc podaj END): Maja
Podaj wyraz (jesli masz dosc podaj END): Olga
Podaj wyraz (jesli masz dosc podaj END): END
W jakim porzadku chcesz wyswietlic podane przez Ciebie imiona:
A. alfabetycznie od A do Z
Z. alfabetycznie od Z do A
Twoj wybor: Z
Podane przez Ciebie imiona to:
------------------------------
1) Zenon
2) Paolo
3) Olga
4) Marcin
5) Maja
6) Leokadia
7) Ala
------------------------------
Zadanie 1B (kolekcje+pliki)
Napisz program, który po podaniu przez użytkownika nazw dwóch różnych plików, tworzy trzeci, w którym zapisuje tylko te wyrazy, które znajdują się w pierwszym pliku a nie znajdują się w drugim pliku.
Zadanie 2A (potoki)
Zrealizuj grę w zapałki dla dowolnej liczby graczy (będących osobnymi wątkami)
wykorzystując do komunikacji potoki.
Zakładamy, że gracze są uczciwi i każdy z nich bierze ze stołu od jednej do trzech zapałek. Na poniższym rysunku przedstawiono propozycję komunikacji między graczami.
Zadanie 2B (potoki)
Zmodyfikuj grę w zapałki dla dwóch (lub dowolnej liczby) niekoniecznie uczciwych graczy.
Na rysunku przedstawiono propozycję komunikacji graczy z osobą pilnującą porządku na stole (np. wątek główny może pełnić rolę strażnika).
Aby nie było nudno, tym razem gracze mają do dyspozycji dwa stosy (A i B). Z obu
stosów każdy
gracz może wziąć 1, 2 lub 3 zapałki. Możliwa jest jednak dodatkowa operacja, polegająca
na przeniesieniu 1, 2 lub 3 zapałek ze stosu A na stos B. Na starcie wszystkie zapałki znajdują się
na stosie A. Analogicznie jak w zadaniu drugim wygrywa gracz, który weźmie ostatnią zapałkę.
Zaproponuj i zaimplementuj protokół komunikacji między graczami a strażnikiem.
Zadanie 3 (kolekcje+pliki)
Napisz program, który dla podanego jako parametr, pliku tekstowego
wyświetli listę występujących w nich różnych słów, które wystąpiły przynajmniej
n razy (n określone przez użytkownika).
Zadanie 4A (kolekcje+pliki+komparator)
Napisz program, który dla podanego jako parametr, pliku tekstowego
wyświetli listę występujących w nich różnych słów, uporządkowaną:
a)   alfabetycznie,
b)   rosnąco, według długości wyrazów,
(gdy dwa wyrazy są tej samej długości
decyduje porządek alfabetyczny).
Zadanie 4B dla koneserów (2 punkty)
Napisz program, który dla podanego jako parametr, pliku tekstowego
wyświetli listę występujących w nich różnych słów, w jeden z wybranych sposobów
uporządkowania:
 ORDER_A:   alfabetycznie,
 ORDER_B:   rosnąco, według długości wyrazów, (gdy dwa wyrazy są tej samej długości
decyduje porządek alfabetyczny),
 ORDER_C:   malejąco według liczby wystąpień wyrazu
(gdy dwa wyrazy wystąpiły tyle samo razy decyduje porządek alfabetyczny).
Wykorzystaj poniższy fragment kodu testującego.
kod programu
MyComparator cmp= new MyComparator(MyComparator.ORDER_A);
.... wordsInFile=new ....;
// wczytanie zawartości pliku
Collections.sort(wordsInFile,cmp);
// wyświetlenie zawartości kolekcji: wordsInFile
//...
cmp.setHowToCompare(MyComparator.ORDER_B);
Collections.sort(wordsInFile,cmp);
// wyświetlenie zawartości kolekcji: wordsInFile
//...
cmp.setHowToCompare(MyComparator.ORDER_C);
Collections.sort(wordsInFile,cmp);
// wyświetlenie zawartości kolekcji: wordsInFile
//...
Zadanie 5 (strumienie binarne)
W katalogu z treścią zadań laboratoryjnych znajdziesz dwa pliki lab9a.dat i lab9b.dat .
Zbiory te są zbiorami binarnymi, zawierającymi liczby całkowite (int ).
Oba uporządkowane są rosnąco.
    Napisz program tworzący zbiór tekstowy łączący zawartość obu plików,
z zachowaniem uporządkowania liczb.
Uwaga: Każdy z plików wejściowych może być przez program przeczytany jeden raz.
W programie nie należy korzystać ani z kolekcji, ani z tablic.
Wyszukiwarka
Podobne podstrony:
lab9lab9lab9lab9lab9 ReadMelab9lab9 ZAI9G1S1 Nadolny Michal Lab9sr lab9Lab9lab9lab9 analiza II09 LAB9lab9lab9 NHIPLab9 READMElab9TM Asemb LAB9więcej podobnych podstron