Differences
This shows you the differences between two versions of the page.
| 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 14: | 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 220: | 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 226: | 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 240: | 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 292: | 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 310: | 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 317: | 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. | ||