Administrativ
Laboratoare
Tema
Teste
Resurse utile
Alte resurse
Arhiva Teme
Administrativ
Laboratoare
Tema
Teste
Resurse utile
Alte resurse
Arhiva Teme
This is an old revision of the document!
Această pagină cuprinde exerciții care au fost taskuri de laborator și acum înlocuite cu altele.
Puteți folosi aceste exerciții pentru a vă exersa noțiunile învățate la curs și la laboratoare.
ComplexNumber.ComplexNumber.java. Aceasta va avea două campuri: re si im, ambele de tip float.Operations.java. Această clasă va implementa operațiile de adunare și înmulțire pentru numere complexe. Definiți în clasă Operations câte o metodă pentru fiecare operație; Bookstore.Book.java cu următoarele atribute: title, author, publisher, pageCount.BookstoreTest.java, pentru a testa viitoarele funcționalități ale bibliotecii. Completați această clasă, așa cum considerați necesar. Apoi, creați un obiect de tip carte și setați atributele introducând date de la tastatură. Pentru această folosiți clasa Scanner:BookstoreCheck, ce va conține două metode, cu câte 2 parametri de tipul Book. StringBOOK_TITLE: [insert_book_title] BOOK_AUTHOR: [insert_book_author] BOOK_PUBLISHER: [insert_book_publisher]
Cu următoarele precizări:
add(float value), care adaugă valoarea value la finalul vectorului. Dacă se depăşeşte capacitatea vectorului, acesta se va redimensiona la o capacitate dublăcontains(float value) care returnează true dacă value există în cadrul vectoruluiremove(int index) care elimină valoarea aflată în vector la poziţia specificată de index (numerotarea incepând de la 0); se va da un mesaj dacă indexul este invalidget(int index) care va returna elementul aflat în poziţia indexsize() care returnează numarul de elemente din vectorpublic String toString() care va returna o reprezentare a tuturor valorilor vectorului ca un şir de caractereObject se află în rădăcina arborelui de moștenire pentru orice clasă, orice clasă va avea acces la o serie de facilități oferite de Object. Una dintre ele este metoda toString(), al cărei scop este de a oferi o reprezentare a unei instanțe de clasă sub forma unui șir de caractere. Form cu un membru color de tip String, o metoda getArea() care pentru început va intoarce 0 și o metodă toString() care va returna acestă culoare. Triangle și Circle: Triangle va avea 2 membri height si base de tip float. Circle va avea membrul radius de tip float. Triangle și Circle, și apelați metoda toString() pentru fiecare instanță.getArea() pentru a intoarce aria specifica figuri geometrice.toString() în cele două clase derivate, care să returneze tipul obiectului, culoarea si aria. De exemplu: Triangle, se va afișa: “Triunghi: rosu 10” Circle, se va afișa: “Cerc: verde 12.56”toString() din clasele derivate astfel încât aceasta să utilizeze implementarea metodei toString() din clasa de bază. equals în clasa Triangle. Justificați criteriul de echivalentă ales. equals, a cărei implementare verifică echivalența obiectelor comparând referințele.Form și populați-l cu obiecte de tip Triangle și Circle (upcasting). toString() pentru elementele sale. Ce observați? Triangle metoda printTriangleDimensions și clasei Circle metoda printCircleDimensions. Implementarea metodelor constă în afișarea bazei si inaltimii respectiv razei. printTriangleDimensions pentru Triangle și printCircleDimensions pentru Circle). Pentru a stabili tipul obiectului curent folosiți operatorul instanceof. Triangle. Ce observați? instanceof deloc.QueueAggregation și QueueInheritance pe baza clasei Array furnizate de noi, utilizând, pe rând, ambele abordări: moștenire și agregare. Precizări: int. QueueAggregation și QueueInheritance trebuie să ofere metodele enqueue și dequeue, specifice acestei structuri de date. Array reprezintă un wrapper pentru lucrul cu vectori. Metoda get(pos) întoarce valoarea din vector de la poziția pos, în timp ce metoda set(pos, val) atribuie poziției pos din vector valoarea val. Noutatea constă în verificarea poziției furnizate. În cazul în care aceasta nu se încadrează în intervalul valid de indici, ambele metode întorc constanta ERROR definită în clasa. main definită în clasa Array conține exemple de utilizare a acestei clase. Experimentați! enqueue va oferi posibilitatea introducerii unui număr întreg în capătul cozii (dacă aceasta nu este deja plină), în timp ce metoda dequeue va înlătura elementul din vârful cozii și îl va întoarce (dacă coada nu este goală). În caz de insucces (coada plină la enqueue, respectiv goală la dequeue), ambele metode vor întoarce constanta ERROR.ERROR? (Hint: Dacă în coadă am un element egal cu valoarea constantei ERROR?) Gândiți-vă la o rezolvare.get și set, în clasele QueueAggregation și QueueInheritance, în varianta ce utilizează moștenire? Ce problemă indică răspunsul? Furnizați o soluție la această problemă.