lab9






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:
lab9
lab9
lab9
lab9
lab9 ReadMe
lab9
lab9 ZA
I9G1S1 Nadolny Michal Lab9
sr lab9
Lab9
lab9
lab9 analiza II
09 LAB9
lab9
lab9 NHIP
Lab9 README
lab9
TM Asemb LAB9

więcej podobnych podstron