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
. String
BOOK_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 index
size()
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ă.