Aici sunt prezentate diferențele dintre versiunile selectate și versiunea curentă a paginii.
| Both sides previous revision Versiuni anterioare Urmatoarea versiune | Versiuni anterioare | ||
|
16:teme:prolog-transmission [2016/05/17 16:19] Andrei Olaru [Generarea unei soluții corecte] |
16:teme:prolog-transmission [2016/05/22 15:56] (curent) Andrei Olaru [Changelog] |
||
|---|---|---|---|
| Linia 2: | Linia 2: | ||
| * Responsabil: [[cs@andreiolaru.ro|Andrei Olaru]] | * Responsabil: [[cs@andreiolaru.ro|Andrei Olaru]] | ||
| - | * Deadline soft: **20.05.2016**, apoi depunctare 0.5p/ zi | + | * Deadline soft: **23.05.2016**, apoi depunctare 0.5p/ zi |
| * Deadline hard: __24.05.2016 ora 23.59__ | * Deadline hard: __24.05.2016 ora 23.59__ | ||
| * Data publicării: 10.05.2016 | * Data publicării: 10.05.2016 | ||
| * Data ultimei modificări: 10.05.2016 | * Data ultimei modificări: 10.05.2016 | ||
| - | * Tema se va încărca pe **[[https://elf.cs.pub.ro/vmchecker/ui/#PP|vmchecker]]** (în curând) | + | * Tema se va încărca pe **[[https://elf.cs.pub.ro/vmchecker/ui/#PP|vmchecker]]** |
| - | * Data tester-ului: 13.05.2016 | + | * Data tester-ului: 22.05.2016 | 13.05.2016 (teste) |
| * [[http://cs.curs.pub.ro/2015/mod/forum/view.php?id=5851|Forum temă]] | * [[http://cs.curs.pub.ro/2015/mod/forum/view.php?id=5851|Forum temă]] | ||
| == Changelog == | == Changelog == | ||
| + | * 22.05.2016: | ||
| + | * corecție testare cu antene de emisie -- unele soluții puteau fi refuzate pentru că un nod primea prea multă informație, însumată de la o antenă și din alte surse (mulțumesc Andrei-Bogdan Stănescu); | ||
| + | * implementare switch ''amFacutBonus'' pentru a nu rula testele pentru bonus dacă predicatul ''amFacutBonus'' nu întoarce adevărat (mulțumesc Igor Parvan); | ||
| + | * corecție însumare punctaje -- suma afișată (dar nu cea considerată de vmchecker) considera și punctaje pentru testele care ies din timp (mulțumesc Mihaela-Elena Beboeanu). | ||
| + | * 21.05.2016: mențiune legături uni-sens în descrierea legăturilor (mențiune deja existentă în secțiunea scopul jocului) (mulțumesc Georgian Tănase). | ||
| + | * 18.05.2016: ajustare formatare tester; vmchecker activ. | ||
| + | * 17.05.2016: adăugat comentarii în tester și afișare punctaje. Reparat numele unei structuri din testul 4-2 (mulțumesc Andrei-Bogdan Stănescu). | ||
| * 13.05.2016: Adăugat tester și încă un test (3-7). | * 13.05.2016: Adăugat tester și încă un test (3-7). | ||
| Linia 40: | Linia 47: | ||
| O legătură este permisă dacă: | O legătură este permisă dacă: | ||
| * este realizată între noduri diferite; | * este realizată între noduri diferite; | ||
| + | * nu există deja o legătură între aceleași noduri și în sens invers; | ||
| * nu trece, geometric, printr-un alt nod (de exemplu, dacă avem 3 noduri coliniare A, B și C, dispuse în această ordine, nu se poate realiza o legătură directă între A și C, pentru că este B este între cele două noduri și coliniar cu acestea); | * nu trece, geometric, printr-un alt nod (de exemplu, dacă avem 3 noduri coliniare A, B și C, dispuse în această ordine, nu se poate realiza o legătură directă între A și C, pentru că este B este între cele două noduri și coliniar cu acestea); | ||
| * nodul sursă conține unități de informație (cubulețe în afara nodului); | * nodul sursă conține unități de informație (cubulețe în afara nodului); | ||
| Linia 134: | Linia 142: | ||
| Punctajul pentru prima cerință va fi dat astfel: | Punctajul pentru prima cerință va fi dat astfel: | ||
| - | * pentru ''parse'': | + | * pentru ''parse'' (20p): |
| * în mod implicit, punctajul va fi calculat ca proporțional cu punctajul la testele fără bonus(testele de la 11 până la 37): dacă pe teste se primesc f*75 de puncte (cu f din [0, 1]), ''parse'' va primi f*20 de puncte. | * în mod implicit, punctajul va fi calculat ca proporțional cu punctajul la testele fără bonus(testele de la 11 până la 37): dacă pe teste se primesc f*75 de puncte (cu f din [0, 1]), ''parse'' va primi f*20 de puncte. | ||
| * altfel (în cazul în care nu trec toate testele), dacă ''parse'' prelucrează integral intrarea (rezultatul produs nu păstrează structura argumentului ''Raw''), în urma prezentării se vor acorda pentru ''parse'' 20 de puncte. | * altfel (în cazul în care nu trec toate testele), dacă ''parse'' prelucrează integral intrarea (rezultatul produs nu păstrează structura argumentului ''Raw''), în urma prezentării se vor acorda pentru ''parse'' 20 de puncte. | ||
| Linia 149: | Linia 157: | ||
| Punctajul va fi dat depinzând de testele care pot fi rezolvate de temă. Dificultatea testelor este crescătoare. | Punctajul va fi dat depinzând de testele care pot fi rezolvate de temă. Dificultatea testelor este crescătoare. | ||
| - | === Bonus: soluție pentru problemele ce conțin antene de emisie === | + | === Bonus: soluție pentru problemele ce conțin antene de emisie (20p) === |
| - | Cei care implementează bonusul trebuie să aibă în temă un predicat ''AmFacutBonus'' care să întoarcă adevărat (este comentat în sursa dată). | + | Cei care implementează bonusul trebuie să aibă în temă un predicat ''amFacutBonus'' care să întoarcă adevărat (este comentat în sursa dată). |
| În testele pentru bonus, lista ''Raw'' dată lui ''parse'' mai conține o structură ''antennas(L)'', în care lista ''L'' conține câte o listă pentru fiecare antenă din problemă. Fiecare listă corespunzătoare unei antene are pe prima poziție nodul în care este antena iar restul listei este formată din nodurile care sunt în raza de emisie a antenei. | În testele pentru bonus, lista ''Raw'' dată lui ''parse'' mai conține o structură ''antennas(L)'', în care lista ''L'' conține câte o listă pentru fiecare antenă din problemă. Fiecare listă corespunzătoare unei antene are pe prima poziție nodul în care este antena iar restul listei este formată din nodurile care sunt în raza de emisie a antenei. | ||
| Linia 162: | Linia 170: | ||
| Se va lucra numai în fișierul ''transmission.pl''. | Se va lucra numai în fișierul ''transmission.pl''. | ||
| + | |||
| + | == Testarea temei == | ||
| + | |||
| + | Pentru a vă testa tema, folosiți predicatele: | ||
| + | * ''ttestAll'' -- rulează toate testele, este predicatul folosit pe vmchecker. | ||
| + | * ''ttestOne(+TestID)'' -- rulează testul identificat de TestID. | ||
| + | * testele pot fi identificate în fișierul de testare ca fiind întoarse de predicatul ''tt(+TestID, -Raw)''. | ||
| + | * ''ttestOneA(+TestID)'' -- rulează testul identificat , fără limită de timp. | ||
| + | |||
| + | Testele sunt detaliate în fișierul de testare în regulile predicatului ''tt''. Înainte de regula pentru fiecare test, este dat și reprezentarea vizuală a testului, folosind simbolurile ''+'' pentru o unitate de lățime a unei surse, ''-'' pentru o unitate de lățime a unui receptor, ''='' pentru o unitate de lățime a unui transmițător, și ''*'' pentru o antenă. | ||
| == Disclaimer == | == Disclaimer == | ||