Differences

This shows you the differences between two versions of the page.

Link to this comparison view

poo:laboratoare:07 [2017/11/06 14:27]
carmen.odubasteanu [Problema 4]
poo:laboratoare:07 [2019/11/06 08:01] (current)
mihai.nan [Problema 1]
Line 1: Line 1:
 ===== Laboratorul 07. ===== ===== Laboratorul 07. =====
 +Arhiva laborator: {{:​poo:​laboratoare:​arhiva7.zip| Arhiva}}
  
  
-  * Responsabil:​ [[adresa_email|Prenume Nume]]  + 
-  * Data publicării:​ XY.11.2017 +
-  * Data ultimei modificări:​ XY.11.2017 +
- +
 ==== Problema 1 ==== ==== Problema 1 ====
-Să se scrie un program pentru afișarea cuvintelor distincte dintr-un fișier text folosind clasa **//​TreeSet//​**. Fișierul va conține și cuvinte repetate (identice). Elementele mulțimii se vor afișa în ordine crescătoare (folosind ​metoda **//​printWords//​**) și în ordine descrescătoare (folosind ​metoda **//printWords//**), fără a apela o funcție de sortare, folosind două obiecte **//​TreeSet//​** construite diferit (cu și fără argument de tip **//​Comparator//​**). Se vor implementa 2 metode ce vor fi apelate din metoda **//​main//​**:​+Să se scrie un program pentru afișarea cuvintelor distincte dintr-un fișier text folosind clasa **//​TreeSet//​**. Fișierul va conține și cuvinte repetate (identice). ​ 
 +Elementele mulțimii se vor afișa în ordine crescătoare (metoda **//​printWords//​**) și în ordine descrescătoare (metoda **//printWordsComparator//** ), fără a apela o funcție de sortare, folosind două obiecte **//​TreeSet//​** construite diferit (cu și fără argument de tip **//​Comparator//​**). ​ 
 +Se vor implementa ​cele 2 metode ce vor fi apelate din metoda **//​main//​**:​
   * ''​public TreeSet printWords (String)''​ - va primi, ca argument, numele fișierului din care se citește și va folosi un obiect de tip **//​TreeSet//​**,​ instanțiat folosind constructorul fără argument de tip **//​Comparator//​**;​   * ''​public TreeSet printWords (String)''​ - va primi, ca argument, numele fișierului din care se citește și va folosi un obiect de tip **//​TreeSet//​**,​ instanțiat folosind constructorul fără argument de tip **//​Comparator//​**;​
-  * ''​public TreeSet printWordsComparator(TreeSet)''​ - va primi ca argument obiectul de tip **//​TreeSet//​**, ​ returnat de metoda anterioară,​ și va returna un alt obiect de tip **//​TreeSet//​**,​ stocând informațiile în ordine descrescătoare. În cazul instanțierii obiectului ce va fi returnat, folosiți constructorul cu  argument de tip **//​Comparator//​**!+  * ''​public TreeSet printWordsComparator(TreeSet)''​ - va primi ca argument obiectul de tip **//​TreeSet//​**, ​ returnat de metoda anterioară,​ și va construi si returna un alt obiect de tip **//​TreeSet//​**,​ stocând informațiile în ordine descrescătoare. ​ 
 +În cazul instanțierii obiectului ce va fi returnat, folosiți constructorul cu  argument de tip **//​Comparator//​**
 + 
 +Se poate folosi ca fisier de intrare fisierul test01.txt din arhiva
  
  
Line 39: Line 41:
 </​hidden>​ </​hidden>​
 ==== Problema 2 ==== ==== Problema 2 ====
-Să se definească o clasă **//​LinkedSet//​** pentru o mulțime realizată ca listă înlănțuită de elemente distincte. Clasa va implementa interfața ​**//Set//** și va extinde clasa **//LinkedList//**.+Să se definească o clasă **//​LinkedSet//​** pentru o mulțime realizată ca listă înlănțuită de elemente distincte. Clasa va extinde clasa **//LinkedList//**  și va implementa interfața ​**//Set//**.
  
 Se vor redefini cele două metode de adăugare și metoda de setare a unui obiect: Se vor redefini cele două metode de adăugare și metoda de setare a unui obiect:
Line 49: Line 51:
  
 ==== Problema 3 ==== ==== Problema 3 ====
-Să se definească o clasă **//​SListSet//​** pentru o mulțime ordonată de obiecte, care implementează interfața ​**//SortedSet//** și extinde clasa **//LinkedList//**. Clasa va conține un obiect de tip **//​Comparator//​** și metodele:+Să se definească o clasă **//​SListSet//​** pentru o mulțime ordonată de obiecte, care extinde clasa **//LinkedList//** si implementează interfața ​**//SortedSet//**. Clasa va conține un obiect de tip **//​Comparator//​** și metodele:
  
 <note tip> <note tip>
Line 57: Line 59:
 Object first(); //primul obiect din multime Object first(); //primul obiect din multime
 Object last(); // ultimul obiect din multime Object last(); // ultimul obiect din multime
-SortedSet ​subset(Object from, Object to); // o submultime ordonata+SortedSet ​subSet(Object from, Object to); // o submultime ordonata
 SortedSet headSet(Object to); // o submultime cu primele ​ obiecte SortedSet headSet(Object to); // o submultime cu primele ​ obiecte
 SortedSet tailSet(Object from); //o submultime cu ultimele obiecte SortedSet tailSet(Object from); //o submultime cu ultimele obiecte
Line 70: Line 72:
 Pentru afisare se va folosi un Iterator pe multimea intrarilor din dictionar. La afișare, fiecare cuvânt va începe pe o linie nouă și va fi urmat, pe liniile următoare, de lista numerelor liniilor în care apare. Pentru fiecare cuvânt în parte se va afișa la sfârșit numărul de apariții al acestuia. Pentru afisare se va folosi un Iterator pe multimea intrarilor din dictionar. La afișare, fiecare cuvânt va începe pe o linie nouă și va fi urmat, pe liniile următoare, de lista numerelor liniilor în care apare. Pentru fiecare cuvânt în parte se va afișa la sfârșit numărul de apariții al acestuia.
  
 +Se poate folosi ca fisier de intrare tot fisierul test01.in din arhiva!
 + 
 <note tip> <note tip>
 Map - //​**entrySet()**//​ Map - //​**entrySet()**//​
 +
 Set - //​**iterator()**//​ Set - //​**iterator()**//​
 </​note>​ </​note>​
poo/laboratoare/07.1509971265.txt.gz · Last modified: 2017/11/06 14:27 by carmen.odubasteanu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0