This shows you the differences between two versions of the page.
programare:teme_2018:tema1_2018_ca [2018/10/17 19:52] teodora.serbanescu |
programare:teme_2018:tema1_2018_ca [2018/10/30 20:49] (current) teodora.serbanescu |
||
---|---|---|---|
Line 4: | Line 4: | ||
**Termen de predare**: 05.11.2018, ora 23:55 | **Termen de predare**: 05.11.2018, ora 23:55 | ||
+ | |||
+ | <note> | ||
+ | **Update** | ||
+ | |||
+ | 19.10.2018 - Corectare checker (again) | ||
+ | |||
+ | 25.10.2018 - Updatare checker de coding style; informatii despre checker | ||
+ | |||
+ | 26.10.2018 - Updatare checker | ||
+ | |||
+ | 30.10.2018 - Modificare checker + adăugare pe vmchecker | ||
+ | </note> | ||
===== Obiectivele temei ===== | ===== Obiectivele temei ===== | ||
Line 62: | Line 74: | ||
2 10 32 | 2 10 32 | ||
| | ||
- | Histograma realizată de programul scris de student arată astfel (numerele reprezinta codificările serialelor): | + | Histograma realizată de programul scris de student arată astfel (numerele reprezintă codificările serialelor): |
1 * * * * . . . . . . | 1 * * * * . . . . . . | ||
2 * * * . . . . . . . | 2 * * * . . . . . . . | ||
Line 172: | Line 184: | ||
* O temă care compilează, dar care nu trece niciun test, nu va fi punctată. | * O temă care compilează, dar care nu trece niciun test, nu va fi punctată. | ||
- | **Checkerul** poate fi descărcat de aici: {{ :programare:teme_2018:tema01_ca2018_checker.zip }} | + | ===== Checker ===== |
+ | |||
+ | **Checkerul** poate fi descărcat de aici: {{ :programare:teme_2018:tema01_ca2018_checker-v7.zip }} | ||
+ | <note> | ||
+ | Tema va fi verificată automat cu un script. În caz că aveți erori, checkerul va penaliza cu 15p din punctajul total obținut (conform regulamentului). Pentru a sti cum sa preveniți aceste probleme, vă rugam să parcurgeți pagina de [[programare:coding-style|coding style]] de pe ocw. | ||
+ | </note> | ||
+ | |||
+ | <note> | ||
+ | În cazul în care fișierul cs.py (cel care verifică coding style-ul) nu e executabil, atunci va apărea urmatoarea eroare (poza de mai jos). Acest lucru se rezolvă prin rularea comenzii <code> chmod u+x cs.py </code> în folderul cu fișierul cs.py. | ||
+ | </note> | ||
+ | {{ :programare:teme_2018:eroare-cs.jpg?800X200 }} | ||
+ | |||
+ | * În lipsa Makefile-ului, sau dacă sursele au erori de compilare, checker-ul nu va putea rula și nu va verifica tema. Punctajul aferent este 0 în acest caz. Veți vedea mesajul de mai jos: | ||
+ | {{ :programare:teme_2018:makefile.png?800X200 }} | ||
+ | * Fișierul README valorează 5 puncte. Acestea nu se primesc daca fișierul lipsește sau e gol. Mesajele afișate sunt cele de mai jos: | ||
+ | {{ :programare:teme_2018:noreadme.png?800X200 }} | ||
+ | {{ :programare:teme_2018:emptyreadme.png?800X200 }} | ||
+ | * Odată cu rularea testelor este verificat și coding style-ul. Dacă apar erori de coding style, checkerul va scădea 15 puncte din punctajul obținut. Mesajul arătat este găsit mai jos. De asemenea, checkerul menționează unde sunt erorile pentru a fi corectate. | ||
+ | {{ :programare:teme_2018:cs.png?800X300 }} | ||
+ | * Sfat: <code> cat -e nume_fișier </code> afișează conținutul fișierului și caracterele albe (spațiu, new line, tab etc). Este util pentru a vedea de ce nu trec anumite teste. | ||
+ | * Makefile: | ||
+ | <code> | ||
+ | build: | ||
+ | gcc -std==c99 -Wall -Wextra nume_sursa_1 -o nume_executabil_1 -lm | ||
+ | gcc -std==c99 -Wall -Wextra nume_sursa_2 -o nume_executabil_2 -lm | ||
+ | clean: | ||
+ | rm -rf nume_executabil_1 nume_executabil_2 | ||
+ | </code> | ||
+ | |||
+ | <note> | ||
+ | Regula de build din makefile conține niște argumente noi, care permit declararea variabilelor în cadrul for-urilor. Ca să vă asigurați că tema va fi rulată corect pe vmchecker, e recomandat să modificați makefile-ul ca mai sus. | ||
+ | </note> | ||