Differences

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

Link to this comparison view

poo:laboratoare:03 [2020/10/20 09:06]
carmen.odubasteanu
poo:laboratoare:03 [2025/10/18 12:00] (current)
carmen.odubasteanu [Problema 6]
Line 3: Line 3:
 ====Problema 1==== ====Problema 1====
 Definiți o clasă **//​Fractie//​** care modelează lucrul cu fracțiile. Membrii acestei clase sunt: Definiți o clasă **//​Fractie//​** care modelează lucrul cu fracțiile. Membrii acestei clase sunt:
-  * două atribuite de tip **//double//** pentru numărătorul fracției, respectiv numitorul ei; +  * două atribuite de tip **//int//** pentru numărătorul fracției, respectiv numitorul ei; 
-  * constructorul cu doi parametri de tip //**double**//, pentru setarea celor două parți ale fracției (numărător și numitor);+  * constructorul cu doi parametri de tip //**int**//, pentru setarea celor două parți ale fracției (numărător și numitor);
   * un constructor fără parametri care apelează constructorul anterior;   * un constructor fără parametri care apelează constructorul anterior;
   * o metodă, cu un **singur** parametru, de calcul a sumei a două fracții;   * o metodă, cu un **singur** parametru, de calcul a sumei a două fracții;
Line 32: Line 32:
 Să se definească o clasă **//​MyQueue//​** care să descrie o structură de date de tip coadă. Să se definească o clasă **//​MyQueue//​** care să descrie o structură de date de tip coadă.
 Datele clasei (private): Datele clasei (private):
-  * un obiect de tip **//​MyArray//​** (clasa ​inclusă în arhiva laboratorului);+  * un obiect de tip **//​MyArray//​** (clasa ​data mai jos);
   * o constantă (//​**Infinit**//​) având valoarea $9500$;   * o constantă (//​**Infinit**//​) având valoarea $9500$;
   * indicele primului element din coadă;   * indicele primului element din coadă;
Line 126: Line 126:
  
 ====Problema 5==== ====Problema 5====
 +Implementați clasa **//​Punct//​** care definește un punct din spațiul 2D.
 +
 +**Datele clasei (private):​**
 +  * două nr. întregi reprezentând cele două coordonate ale punctului.
 +
 +**Conctructorul clasei:**
 +  * un constructor fără parametri care instanțiază punctul ''​O(0,​ 0)''​.
 +
 +
 +**Metodele clasei:**
 +  * ''​int getX()''​ = întoarce abscisa punctului;
 +  * ''​void setX(int x)''​ = seteaza abscisa punctului;
 +  * ''​int getY()''​ = întoarce ordonata punctului;
 +  * ''​void setY(int y)''​ = setează ordonata punctului;
 +  * ''​String toString()''​ = returnează un String de forma ''​(x,​ y)'';​
 +  * ''​double distance(int,​ int)''​ = calculează distanța dintre 2 puncte;
 +  * ''​double distance(Punct p1)''​ = calculează distanța dintre 2 puncte.
 +
 +Creați o clasă **//​Test//​**,​ în același pachet cu clasa **//​Punct//​**,​ care conține o metodă **//​main//​** care calculează distanța dintre punctele ''​A(1,​ 2)''​ si ''​B(-1,​ 3)''​.
 +
 +
 +Puteți accesa datele clasei //​**Punct**//​ în metoda //​**main**//​ din clasa //​**Test**//?​
 +
 +====Problema 6====
 Să se definească o clasă **//​Graph//​** care să descrie un graf ponderat orientat care are nodurile numerotate de la $1$. Să se definească o clasă **//​Graph//​** care să descrie un graf ponderat orientat care are nodurile numerotate de la $1$.
  
Line 141: Line 165:
   * ''​boolean isArc(int v, int w)''​ = verifică dacă există arc între $v$ și $w$ în graf;   * ''​boolean isArc(int v, int w)''​ = verifică dacă există arc între $v$ și $w$ în graf;
   * ''​toString()''​ = afișarea grafului (se va alege o variantă intuitivă de afișare a grafului);   * ''​toString()''​ = afișarea grafului (se va alege o variantă intuitivă de afișare a grafului);
-  * ''​int[][] floydWarshall()''​ = implementarea algoritmului ​\textit{Floyd - Warshallpentru determinarea drumurilor de cost minim în graf;+  * ''​int[][] floydWarshall()''​ = implementarea algoritmului Floyd - Warshall pentru determinarea drumurilor de cost minim în graf;
   * ''​void main(String[])''​ = metoda main pentru testarea functionalității clasei implementate.   * ''​void main(String[])''​ = metoda main pentru testarea functionalității clasei implementate.
  
Line 194: Line 218:
 } }
 </​code>​ </​code>​
- 
-====Problema 6==== 
-Implementați clasa **//​Punct//​** care definește un punct din spațiul 2D. 
- 
-**Datele clasei (private):​** 
-  * două nr. întregi reprezentând cele două coordonate ale punctului. 
- 
-**Conctructorul clasei:** 
-  * un constructor fără parametri care instanțiază punctul ''​O(0,​ 0)''​. 
- 
- 
-**Metodele clasei:** 
-  * ''​int getX()''​ = întoarce abscisa punctului; 
-  * ''​void setX(int x)''​ = seteaza abscisa punctului; 
-  * ''​int getY()''​ = întoarce ordonata punctului; 
-  * ''​void setY(int y)''​ = setează ordonata punctului; 
-  * ''​String toString()''​ = returnează un String de forma ''​(x,​ y)'';​ 
-  * ''​double distance(int,​ int)''​ = calculează distanța dintre 2 puncte; 
-  * ''​double distance(Punct p1)''​ = calculează distanța dintre 2 puncte. 
- 
-Creați o clasă **//​Test//​**,​ în același pachet cu clasa **//​Punct//​**,​ care conține o metodă **//​main//​** care calculează distanța dintre punctele ''​A(1,​ 2)''​ si ''​B(-1,​ 3)''​. 
- 
- 
-Puteți accesa datele clasei //​**Punct**//​ în metoda //​**main**//​ din clasa //​**Test**//?​ 
  
 ====Problema 7==== ====Problema 7====
Line 235: Line 235:
 false Bucuresti Nord (23:45) -> Sofia (17:00) false Bucuresti Nord (23:45) -> Sofia (17:00)
 </​code>​ </​code>​
 +
 +==== Problemă extra ====
 +
 +1. Definește un **enum** numit //​TipProdus//​ cu următoarele valori: ​ //​ALIMENTAR//,​ //​ELECTRONIC//,​ //​VESTIMENTAR//,​ //ALTUL//.
 +
 +2. Creează un **record** numit Produs cu câmpurile:
 +  * String nume
 +  * double pret
 +  * TipProdus tip
 +3. Într-o clasă **Main**, creează 3 produse diferite și afișează-le.
 +4. Adaugă o metodă **descriere()** în Produs care returnează un text prietenos, de forma: //Produs: Nume=Tricou,​ Tip=VESTIMENTAR,​ Pret=99.99 RON//
 +5. În main, adaugă produsele într-o listă/​vector,​ parcurge-le și afișează doar produsele de tip //​ALIMENTAR//​.
poo/laboratoare/03.1603173961.txt.gz · Last modified: 2020/10/20 09:06 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