Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
pp:2025:scala:t02 [2025/04/10 14:03]
tpruteanu
pp:2025:scala:t02 [2025/04/28 09:44] (current)
razvang [Query]
Line 1: Line 1:
-====== Tema 2 PP 2024 ======+====== Tema 2 PP 2025 ====== 
 + 
 +<note important>​ 
 +Schelet: ​ {{:​pp:​2025:​scala:​skel_tema2.zip|}} 
 +</​note>​
  
 <note important>​ <note important>​
Line 7: Line 11:
   * Temele trebuie submise pe curs.upb.ro,​ in assignment-ul numit ''​Tema 2 Scala''​.   * Temele trebuie submise pe curs.upb.ro,​ in assignment-ul numit ''​Tema 2 Scala''​.
   * Temele ce nu sunt acceptate de validatorul de arhive **NU** vor fi puncate.   * Temele ce nu sunt acceptate de validatorul de arhive **NU** vor fi puncate.
-  * Vom folosi vesiunea Scala **TBD** si **TBD**. 
 </​note>​ </​note>​
  
Line 15: Line 18:
   * **var** (**val** este ok!)   * **var** (**val** este ok!)
 </​note>​ </​note>​
-<​note>​Scheletul se poate găsi la: TBD </​note>​ 
  
 ==== Scopul Temei ==== ==== Scopul Temei ====
Line 221: Line 223:
   - && - pentru a face conjunctia a doua conditii de filtrare.   - && - pentru a face conjunctia a doua conditii de filtrare.
   - || - pentru a face disjunctia a doua conditii de filtrare.   - || - pentru a face disjunctia a doua conditii de filtrare.
-  - !- pentru a nega o conditie de filtrare.+  - ! (operator unar) - pentru a nega o conditie de filtrare.
 <code scala> <code scala>
  
Line 227: Line 229:
 def &&​(other:​ FilterCond) = ??? def &&​(other:​ FilterCond) = ???
 def ||(other: FilterCond) = ??? def ||(other: FilterCond) = ???
-def !! = ??+def unary_! = ??
 // Puteti sa adaugati mai multi operatori :) // Puteti sa adaugati mai multi operatori :)
 </​code>​ </​code>​
Line 241: Line 243:
 </​code>​ </​code>​
  
-==== Operatii ​cu una sau mai multe Tabele =====+==== Op 
 +eratii ​cu una sau mai multe Tabele =====
  
 O baza de date contine mai multe tabele, pe care putem aplica o serie de operatii: O baza de date contine mai multe tabele, pe care putem aplica o serie de operatii:
Line 293: Line 296:
 </​code>​ </​code>​
  
-==== Query ====+==== Que 
 +ry ====
  
 Testati structurile folosite executand niste query-uri, ce ar putea fi operatii necesare intr-un backend. **Query-urile ar trebuie sa fie one-linere, fara sa folositi ''​val''​ intermediare,​ dar puteti defini functii auxiliare (pentru filtre)** Testati structurile folosite executand niste query-uri, ce ar putea fi operatii necesare intr-un backend. **Query-urile ar trebuie sa fie one-linere, fara sa folositi ''​val''​ intermediare,​ dar puteti defini functii auxiliare (pentru filtre)**
Line 311: Line 315:
 </​code>​ </​code>​
  
-**4.3** Selectati din tabelele ''​Customers''​ si ''​Orders''​ cine a facut comenzii cu ''​Cost''​ peste o valoare data. Returnati ​''​CustomerName'', ​''​OrderID'',​ ''​EmployeeID''​ si ''​Cost'',​ ordonat dupa ''​EmployeeID''​ crescator.+**4.3** Selectati din tabela ​''​Orders''​ cine a facut comenzii cu ''​Cost''​ peste o valoare data. Returnati ''​OrderID'',​ ''​EmployeeID''​ si ''​Cost'',​ ordonat dupa ''​EmployeeID''​ crescator.
 <code scala> <code scala>
 def query_3(db: Database, minCost: Int): Option[Table] = { def query_3(db: Database, minCost: Int): Option[Table] = {
Line 318: Line 322:
 </​code>​ </​code>​
  
-==== Testare ​====+==== Te 
 +stare ====
  
 ''​Scalatest''​ este o biblioteca de testare pentru Scala care suporta mai multe stiluri de scriere a testelor, inclusiv testarea traditionala unitara. ​ ''​Scalactic''​ este o biblioteca destinata sa faciliteze scrierea de cod mai clar si mai intretinabil in Scala, utilizata in combinatie cu Scalatest pentru a imbunatati claritatea si precizia testelor. ''​Scalatest''​ este o biblioteca de testare pentru Scala care suporta mai multe stiluri de scriere a testelor, inclusiv testarea traditionala unitara. ​ ''​Scalactic''​ este o biblioteca destinata sa faciliteze scrierea de cod mai clar si mai intretinabil in Scala, utilizata in combinatie cu Scalatest pentru a imbunatati claritatea si precizia testelor.