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:secret_tema2 [2025/04/09 20:53]
razvang
pp:2025:scala:secret_tema2 [2025/04/10 12:09] (current)
tpruteanu
Line 105: Line 105:
 **1.5** Definiti operatia de sortare a liniilor din tabel dupa o anumita coloana. Functia are un parametru optional ce determina ordinea in care trebuiesc sortate. Mai mult despre parametrii optionali puteti gasi [[https://​docs.scala-lang.org/​tour/​default-parameter-values.html | aici]]. **1.5** Definiti operatia de sortare a liniilor din tabel dupa o anumita coloana. Functia are un parametru optional ce determina ordinea in care trebuiesc sortate. Mai mult despre parametrii optionali puteti gasi [[https://​docs.scala-lang.org/​tour/​default-parameter-values.html | aici]].
 <code scala> <code scala>
-def sort(column:​ String, ​criterionString ​"​Asc"​): Table = ???+def sort(column:​ String, ​ascendingBoolean ​true): Table = ???
 </​code>​ </​code>​
  
Line 120: Line 120:
 **1.8** Definiti functia join, care primeste un alt tabel si o coloana specifica pentru fiecare tabel. Aceasta functie va combina tabelele folosind coloanele indicate, rezultand intr-un nou tabel. **1.8** Definiti functia join, care primeste un alt tabel si o coloana specifica pentru fiecare tabel. Aceasta functie va combina tabelele folosind coloanele indicate, rezultand intr-un nou tabel.
   * Cand valorile din coloanele folosite pentru combinatie sunt identice, se va retine o singura valoare din acele coloane. ​   * Cand valorile din coloanele folosite pentru combinatie sunt identice, se va retine o singura valoare din acele coloane. ​
-  * Daca valorile difera, ele vor fi unite intr-un singur camp, separandu-le prin semnul ";"​, urmand ordinea in care tabelele sunt enumerate in apelul functiei.+  * Daca valorile difera, ele vor fi unite intr-un singur camp, separandu-le prin semnul ";"​.
   * Se considera ca valorile de tip sir de caractere gol (""​) sunt echivalente cu NULL, adica acestea nu vor fi incluse daca exista o valoare specifica intr-o alta tabela.   * Se considera ca valorile de tip sir de caractere gol (""​) sunt echivalente cu NULL, adica acestea nu vor fi incluse daca exista o valoare specifica intr-o alta tabela.
   * In situatiile in care o linie este prezenta in tabelul A dar nu are corespondent in tabelul B, se vor completa campurile corespunzatoare din tabelul B cu sirul vid ""​. ​   * In situatiile in care o linie este prezenta in tabelul A dar nu are corespondent in tabelul B, se vor completa campurile corespunzatoare din tabelul B cu sirul vid ""​. ​
Line 153: Line 153:
  
 <code scala> <code scala>
-def join(table2String, c1: String, ​c2: String): ​Option[Table= ???+def join(otherTable)(col1: String, ​col2: String): Table = ???
 </​code>​ </​code>​
  
Line 218: Line 218:
 **2.2.** Pentru a simplifica definirea conditiilor de filtrare, vom defini cateva operatori in cadrul traitului `FilterCond` care sa ne permita sa scriem cod mai concis. **2.2.** Pentru a simplifica definirea conditiilor de filtrare, vom defini cateva operatori in cadrul traitului `FilterCond` care sa ne permita sa scriem cod mai concis.
 Vom folosi urmatorii operatori ce extind clasa FilterCond: Vom folosi urmatorii operatori ce extind clasa FilterCond:
-  - === - pentru a verifica egalitatea a doua conditii de filtrare.+  - == - pentru a verifica egalitatea a doua conditii de filtrare.
   - && - 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.
Line 277: Line 277:
 Daca unul dintre numele de tabele nu exista in baza de date, functia va intoarce None. Daca unul dintre numele de tabele nu exista in baza de date, functia va intoarce None.
 <code scala> <code scala>
-def selectTables(tableNames:​ List[String]): ​Option[Database= ???+def selectTables(tableNames:​ List[String]):​ Database = ???
 </​code>​ </​code>​
  
Line 369: Line 369:
 | Filter | operator == | 1.5 | | Filter | operator == | 1.5 |
 | Filter | operator && | 1.5 | | Filter | operator && | 1.5 |
-| Filter | operator ​\|\| | 1.5 |+| Filter | operator ​`|`| | 1.5 |
 | Filter | operator ! | 1.5 | | Filter | operator ! | 1.5 |
 | **FILTER** | **TOTAL** | **30** | | **FILTER** | **TOTAL** | **30** |
Line 378: Line 378:
 | Database | indexing | 3 | | Database | indexing | 3 |
 | **DATABASE** | **TOTAL** | **15** | | **DATABASE** | **TOTAL** | **15** |
-| Query | query1 | 3.33 +| Query | query1 | 3 | 
-| Query | query2 | 3.33 +| Query | query2 | 3 | 
-| Query | query3 | 3.33 |+| Query | query3 | |
 | **QUERY** | **TOTAL** | **10** | | **QUERY** | **TOTAL** | **10** |
 | ''​TEMA 2''​ | ''​TOTAL''​ | ''​100''​ | | ''​TEMA 2''​ | ''​TOTAL''​ | ''​100''​ |