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:t01 [2025/03/25 19:41]
ana.ailiesei
pp:2025:scala:t01 [2025/03/26 16:25] (current)
ana.ailiesei
Line 3: Line 3:
 Deadline: ''​9 aprilie 2025''​ Deadline: ''​9 aprilie 2025''​
  
-Schelet de cod: TODO apare pe 25 martie ​la ora 20+Schelet de cod: {{:​pp:​2025:​scala:​tema1_pp_2025.zip|}} 
 + 
 +După ce ați descărcat scheletul, creați un proiect nou din IntelliJ în Scala, în care copiați folderele și fișierul din arhivă în root-ul proiectului (folderul ''​src''​ va fi suprascris). Dați restart ​la IDE și ar trebui să funcționeze.
  
 <note warning>​După deadline fiecare student va prezenta tema la laborator, explicând în detaliu implementarea.</​note>​ <note warning>​După deadline fiecare student va prezenta tema la laborator, explicând în detaliu implementarea.</​note>​
Line 223: Line 225:
 </​code>​ </​code>​
  
-1.3. Pornind de la ''​LStrings''​ care este lista codificărilor L ca ''​String''​ (pe fiecare poziție gasim codificarea sa L), definiți listele pentru toate cele 3 tipuri de codificări.+1.3. Pornind de la ''​LStrings''​ care este lista codificărilor L ca ''​String''​ (pe fiecare poziție gasim codificarea sa L), definiți listele pentru toate cele 3 tipuri de codificări. ​**Soluțiile hardcodate nu vor fi luate în considerare,​ trebuie să vă folosiți de LStrings sau de listele deja create (pentru rightOddList și leftEvenList) împreună cu funcții de ordin superior.**
  
 <code scala> <code scala>
Line 282: Line 284:
 </​code>​ </​code>​
  
-3.4. Creați lista de parițăți pe care o vom folosi pornind de la ''​PStrings''​.+3.4. Creați lista de parițăți pe care o vom folosi pornind de la ''​PStrings''​. ​**Soluțiile hardcodate nu vor fi luate în considerare,​ trebuie să vă folosiți de PStrings**
 <code scala> <code scala>
 val leftParityList:​ List[List[Parity]] = Nil val leftParityList:​ List[List[Parity]] = Nil
 </​code>​ </​code>​
  
-3.5. Rulați ''​scaledRunLength''​ pe fiecare element din listele create la task-ul **1.3**.+3.5. Rulați ''​scaledRunLength''​ pe fiecare element din listele create la task-ul **1.3**. ​**Soluțiile hardcodate nu vor fi luate în considerare,​ trebuie să vă folosiți de listele create anterior.**
 <code scala> <code scala>
 type SRL = (Bit, List[RatioInt]) type SRL = (Bit, List[RatioInt])
Line 372: Line 374:
 ===== Submisie arhiva ===== ===== Submisie arhiva =====
 <note important>​ <note important>​
-Veti incarca pe moodle o arhiva ​ce contine, **in radacina ​acesteia**, folderul ''​src''​ al proiectului vostru, ​fisierul ​''​build.sbt'' ​si un fisier ​text, intitulat ''​ID.txt''​ ce contine ​singura ​linie, ​si anume id-ul vostru anonim (pe care il puteti ​gasi pe moodle la assignment-ul ''​tokenID''​). </​note>​+Veti incarca pe moodle o arhivă ​ce conține, **in rădăcina ​acesteia**, folderul ''​src''​ al proiectului vostru, ​fișierul ​''​build.sbt'' ​și un fișier ​text, intitulat ''​ID.txt''​ ce conține ​singură ​linie, ​și anume id-ul vostru anonim (pe care il puteti ​găsi pe moodle la assignment-ul ''​tokenID''​). Arhiva trebuie să fie **obligatoriu .zip**. </​note>​
  
-Exemplu structura ​arhiva:+Exemplu structura ​arhivă:
 <​code>​ <​code>​
 archive.zip archive.zip
Line 387: Line 389:
 ===== Cum rulez pe propriile exemple? ===== ===== Cum rulez pe propriile exemple? =====
  
-Găsiți fișierul ''​MyBarcodes.scala''​ care poate fi rulat din IDE. Funcția ''​readBarcodes''​ primește ​un numele unui folder de input și a unui fișier ​de output. În cel de input puteți pune propriile imagini cu coduri de bare în format **.ppm**. Decupați doar codul de bare din imagini și aveți grijă ca acestea să fie suficient de clare, altfel algoritmul nu va funcționa. Puteți converti imagini în formatul **ppm** pe https://​convertio.co/​. În folderul de output puteți vedea aceleași imagini **.ppm** dar în format alb-negru **.pbm**.+Găsiți fișierul ''​MyBarcodes.scala''​ care poate fi rulat din IDE. Funcția ''​readBarcodes''​ primește numele unui folder de input și a unui folder ​de output. În cel de input puteți pune propriile imagini cu coduri de bare în format **.ppm**. Decupați doar codul de bare din imagini și aveți grijă ca acestea să fie suficient de clare, altfel algoritmul nu va funcționa. Puteți converti imagini în formatul **.ppm** pe https://​convertio.co/​. În folderul de output puteți vedea aceleași imagini **.ppm**dar în format alb-negru ​(adică ​**.pbm**).