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: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 o 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 o 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**). |