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:2023:hw2_v2 [2023/04/10 12:11]
alexandra.udrescu01
pp:2023:hw2_v2 [2023/04/11 00:04] (current)
sorin.mateescu [2. Functii de procesare a datelor (50p)]
Line 64: Line 64:
 Vom implementa clasa ''​Table''​ in acest sens: Vom implementa clasa ''​Table''​ in acest sens:
 <code scala> <code scala>
-case class Table (column_names:​ Line, tabular: List[List[String]]) { +class Table (column_names:​ Line, tabular: List[List[String]]) { 
     ???     ???
 } }
Line 81: Line 81:
 ====2. Functii de procesare a datelor (50p)==== ====2. Functii de procesare a datelor (50p)====
  
-In continuare, vom implementa operatii pe tabele, ca **membrii** ai clasei ''​Table''​.+In continuare, vom implementa operatii pe tabele, ca **membri** ai clasei ''​Table''​.
  
 **2.1. (5p)** Implementati functia ''​select''​ care selecteaza valorile din tabel asociate unor coloane date ca input. Daca operatia face referire la coloane inexistente,​ ea va intoarce ''​None''​. **2.1. (5p)** Implementati functia ''​select''​ care selecteaza valorile din tabel asociate unor coloane date ca input. Daca operatia face referire la coloane inexistente,​ ea va intoarce ''​None''​.
Line 131: Line 131:
 </​code>​ </​code>​
  
-**2.4. (20p)** Implementati functia ''​merge''​ care uneste 2 tabele. Identificarea liniilor ce trebuie combinate se va face folosing coloana comuna ''​key''​. Daca exista suprapuneri intre valori, se vor pastra amandoua sub forma unui singur sir de caractere (cele doua intrari vor fi separate prin '';''​),​ iar acolo unde nu exista corespondent in unul dintre tabele, coloanele ramase necompletate vor fi umplute cu un sir de caractere gol. Daca coloana ''​key''​ nu exista in vreunul din tabele, se va intoarce None.+**2.4. (20p)** Implementati functia ''​merge''​ care uneste 2 tabele. Identificarea liniilor ce trebuie combinate se va face folosing coloana comuna ''​key''​. Daca exista suprapuneri intre valorile asociate unei chei in cele doua tabele, se vor pastra amandoua ​valorile (daca sunt diferite) ​sub forma unui singur sir de caractere (cele doua intrari vor fi separate prin '';''​),​ iar acolo unde nu exista corespondent in unul dintre tabele, coloanele ramase necompletate vor fi umplute cu un sir de caractere gol. Daca coloana ''​key''​ nu exista in vreunul din tabele, se va intoarce ​''​None''​.
 <code scala> <code scala>
 def merge(key: String, other: Table): Option[Table] = ??? def merge(key: String, other: Table): Option[Table] = ???
Line 150: Line 150:
  
 MERGE intre TABEL 1 si TABEL 2 cu cheia PL: MERGE intre TABEL 1 si TABEL 2 cu cheia PL:
-PL      Functional OO   Description +PL      Functional ​Description ​OO 
-Haskell yes        "" ​  nice +Haskell yes        ​nice ​       ""​ 
-Scala   ​yes ​       yes  cool +Scala   ​yes ​       ​cool ​       yes 
-Python ​ yes        ​yes  ​good;whoa+Python ​ yes        good;​whoa ​  yes
 </​code>​ </​code>​
 </​hidden>​ </​hidden>​
Line 217: Line 217:
 **3.2. (5p)** Eliminati limbajele al caror scop original este "​Application"​ si sunt "​concurrent"​. Rezultatul se va numi ''​TestTables.programmingLanguages2''​. **3.2. (5p)** Eliminati limbajele al caror scop original este "​Application"​ si sunt "​concurrent"​. Rezultatul se va numi ''​TestTables.programmingLanguages2''​.
  
-**3.3. (5p)** Selectati doar coloanele "​Language",​ "​Object-Oriented" ​and "​Functional"​ din tabelul obtinut anterior. Rezultatul se va numi ''​TestTables.programmingLanguages3''​.+**3.3. (5p)** Selectati doar coloanele "​Language",​ "​Object-Oriented" ​si "​Functional"​ din tabelul obtinut anterior. Rezultatul se va numi ''​TestTables.programmingLanguages3''​.