This shows you the differences between two versions of the page.
poo:laboratoare:03 [2018/10/09 18:33] mihai.nan [Problema 7] |
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 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> |