Differences

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

Link to this comparison view

poo:laboratoare:03 [2018/10/09 15:36]
mihai.nan
poo:laboratoare:03 [2020/10/20 11:33] (current)
carmen.odubasteanu [Problema 1]
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 126: Line 126:
  
 ====Problema 5==== ====Problema 5====
-Să se implementeze ierarhia de clase descrisă prin următoarea diagramă: ​ 
- 
-{{:​poo:​laboratoare:​clase1.png|}} 
- 
-Clasa **//​Schedule//​** conține o metodă care calculează durata călătoriei în minute. Știind algoritmul de calcul al prețului unui bilet de călătorie,​ să se implementeze o metodă, în clasa **//​Train//​**,​ care calculează prețul unui bilet. Valoarea unui bilet este egală cu **//X * durata_călătoriei//​**,​ unde $X$ este egal cu $1$ pentru cursele interne și $2$ pentru cursele internaționale. Clasa **//​Route//​** va conține un constructor cu $2$ parametri și o metodă care primește ca parametru un obiect de tip **//​Route//​** și verifică dacă sunt de tip tur - retur cele două rute, rezultatul fiind de tip **//​boolean//​**. Clasa **//​ClockTime//​** conține o metodă, cu un parametru de tip **//​ClockTime//​**,​ și compară două momente de timp, rezultatul fiind un //​**int**//​. 
- 
-Adaugați o metodă //​**main**//​ pentru testarea claselor implementate,​ utilizând exemplele oferite. Definiți un constructor potrivit pentru instanțierea unui obiect de tip //​**Train**//,​ în care să apelați constructorii definiți în clasele //​**Route**//,​ //​**Schedule**//​ și //​**ClockTime**//​. 
- 
-<​code>​ 
-[local] [origin (departure)] -> [destination (arrival)] 
-true Bucuresti Nord (9:35) -> Constanta (12:02) 
-true Bucuresti Nord (5:45) -> Iasi (12:49) 
-false Bucuresti Nord (23:45) -> Sofia (17:00) 
-</​code>​ 
- 
-====Problema 6==== 
 Implementați clasa **//​Punct//​** care definește un punct din spațiul 2D. Implementați clasa **//​Punct//​** care definește un punct din spațiul 2D.
  
Line 156: Line 140:
   * ''​int getY()''​ = întoarce ordonata punctului;   * ''​int getY()''​ = întoarce ordonata punctului;
   * ''​void setY(int y)''​ = setează ordonata punctului;   * ''​void setY(int y)''​ = setează ordonata punctului;
-  * ''​String toString()''​ = returnează un String de forma \textit{(x, y)};+  * ''​String toString()''​ = returnează un String de forma ''​(x, y)''​;
   * ''​double distance(int,​ int)''​ = calculează distanța dintre 2 puncte;   * ''​double distance(int,​ int)''​ = calculează distanța dintre 2 puncte;
   * ''​double distance(Punct p1)''​ = calculează distanța dintre 2 puncte.   * ''​double distance(Punct p1)''​ = calculează distanța dintre 2 puncte.
Line 165: Line 149:
 Puteți accesa datele clasei //​**Punct**//​ în metoda //​**main**//​ din clasa //​**Test**//?​ Puteți accesa datele clasei //​**Punct**//​ în metoda //​**main**//​ din clasa //​**Test**//?​
  
-====Problema ​7==== +====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 191: Line 174:
 <code java> <code java>
 class Graph { class Graph {
-    ....+    ​//....
  
     public int[][] floydWarshall() {     public int[][] floydWarshall() {
Line 234: Line 217:
  }  }
 } }
 +</​code>​
 +
 +====Problema 7====
 +
 +Să se implementeze ierarhia de clase descrisă prin următoarea diagramă: ​
 +
 +{{:​poo:​laboratoare:​clase1.png|}}
 +
 +Clasa **//​Schedule//​** conține o metodă care calculează durata călătoriei în minute. Știind algoritmul de calcul al prețului unui bilet de călătorie,​ să se implementeze o metodă, în clasa **//​Train//​**,​ care calculează prețul unui bilet. Valoarea unui bilet este egală cu **//X * durata_călătoriei//​**,​ unde $X$ este egal cu $1$ pentru cursele interne și $2$ pentru cursele internaționale. Clasa **//​Route//​** va conține un constructor cu $2$ parametri și o metodă care primește ca parametru un obiect de tip **//​Route//​** și verifică dacă sunt de tip tur - retur cele două rute, rezultatul fiind de tip **//​boolean//​**. Clasa **//​ClockTime//​** conține o metodă, cu un parametru de tip **//​ClockTime//​**,​ și compară două momente de timp, rezultatul fiind un //​**int**//​.
 +
 +Adaugați o metodă //​**main**//​ pentru testarea claselor implementate,​ utilizând exemplele oferite. Definiți un constructor potrivit pentru instanțierea unui obiect de tip //​**Train**//,​ în care să apelați constructorii definiți în clasele //​**Route**//,​ //​**Schedule**//​ și //​**ClockTime**//​.
 +
 +<​code>​
 +[local] [origin (departure)] -> [destination (arrival)]
 +true Bucuresti Nord (9:35) -> Constanta (12:02)
 +true Bucuresti Nord (5:45) -> Iasi (12:49)
 +false Bucuresti Nord (23:45) -> Sofia (17:00)
 </​code>​ </​code>​
poo/laboratoare/03.1539088592.txt.gz · Last modified: 2018/10/09 15:36 by mihai.nan
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