This shows you the differences between two versions of the page.
programare:teme_2017:tema2_2017_cbd [2017/11/29 12:18] octavian.grigorescu [Înlănţuirea blocurilor] |
programare:teme_2017:tema2_2017_cbd [2017/12/12 15:21] (current) relu.dragan [Actualizari] |
||
---|---|---|---|
Line 7: | Line 7: | ||
**Autor inițial:** Stefan Bucur | **Autor inițial:** Stefan Bucur | ||
- | **Deadline hard:** 11.12.2017 23:55 | + | **Deadline hard:** 12.12.2017 23:55 |
<note warning> | <note warning> | ||
Line 22: | Line 22: | ||
* 21.11 22.58 - Modificare teste, bug in ref-uri la comanda FILL | * 21.11 22.58 - Modificare teste, bug in ref-uri la comanda FILL | ||
* 29.11 00:45 - Modificare testul input/advanced/test6.in, indexul de la comanda FILL de la linia 9 a fost corectat | * 29.11 00:45 - Modificare testul input/advanced/test6.in, indexul de la comanda FILL de la linia 9 a fost corectat | ||
+ | * 12.12 15:21 - Prelungire deadline | ||
Line 64: | Line 65: | ||
Figura de mai jos ilustrează structura detaliată a arenei, în decursul execuţiei programului: | Figura de mai jos ilustrează structura detaliată a arenei, în decursul execuţiei programului: | ||
- | {{:programare:teme_2017:tema2:arena_detailed.png|}} | + | {{:programare:teme_2017:tema2:arena_detailedd.png|}} |
==== Structura unui bloc ==== | ==== Structura unui bloc ==== | ||
Line 127: | Line 127: | ||
* Apoi este afişat un TAB (''\t'') , urmat de 16 octeţi, afişati separaţi printr-un spaţiu şi în format hexazecimal, cu 2 cifre hexa majuscule fiecare. Între cel de-al 8-lea şi cel de-al 9-lea octet se va afişa un spaţiu suplimentar. | * Apoi este afişat un TAB (''\t'') , urmat de 16 octeţi, afişati separaţi printr-un spaţiu şi în format hexazecimal, cu 2 cifre hexa majuscule fiecare. Între cel de-al 8-lea şi cel de-al 9-lea octet se va afişa un spaţiu suplimentar. | ||
* Daca dimensiunea arenei nu este multiplu de 16, atunci pe ultima linie se vor afisa ultimii ARENA_SIZE % 16 octeti. | * Daca dimensiunea arenei nu este multiplu de 16, atunci pe ultima linie se vor afisa ultimii ARENA_SIZE % 16 octeti. | ||
- | * Nu este necesar sa realizati conversii de la zecimal la hexazecimal, puteti folosi ''printf("%02X"")'' si ''printf("%08X")'' pentru afisare. | + | * Nu este necesar sa realizati conversii de la zecimal la hexazecimal, puteti folosi ''printf("%02X")'' si ''printf("%08X")'' pentru afisare. |
- **''ALLOC <SIZE>''** | - **''ALLOC <SIZE>''** | ||
* Comanda va aloca ''SIZE'' octeţi de memorie din arenă, unde ''SIZE'' e o valoare strict pozitiva. Ea va trebui să găsească o zonă liberă suficient de mare (care să încapă ''SIZE'' octeţi + secţiunea de gestiune), şi să rezerve un bloc '''la începutul''' zonei (nu în mijloc, nu la sfârşit). Va trebui folosită prima zonă liberă validă, într-o căutare de la stânga la dreapta. | * Comanda va aloca ''SIZE'' octeţi de memorie din arenă, unde ''SIZE'' e o valoare strict pozitiva. Ea va trebui să găsească o zonă liberă suficient de mare (care să încapă ''SIZE'' octeţi + secţiunea de gestiune), şi să rezerve un bloc '''la începutul''' zonei (nu în mijloc, nu la sfârşit). Va trebui folosită prima zonă liberă validă, într-o căutare de la stânga la dreapta. | ||
Line 283: | Line 283: | ||
* teste **advanced**: 18 puncte fiecare test trecut + 2 puncte rezolvare erori valgrind | * teste **advanced**: 18 puncte fiecare test trecut + 2 puncte rezolvare erori valgrind | ||
* teste **random**: 10 puncte fiecare test trecut + 1 punct rezolvare erori valgrind | * teste **random**: 10 puncte fiecare test trecut + 1 punct rezolvare erori valgrind | ||
- | * teste **bonus**: 10 puncte fiecare test trecut + 1 punct rezolvare erori valgrind | + | * teste **bonus**: 10 puncte fiecare test trecut + 1 punct rezolvare erori valgrind |
- | * cele 100 puncte pentru README și aspectul codului sursă s-au împărțit astfel: | + | |
* existența unui README relevant: 20 puncte | * existența unui README relevant: 20 puncte | ||
* claritatea codului sursă: 80 puncte | * claritatea codului sursă: 80 puncte | ||
+ | * cele 80 puncte pentru claritatea codului sursă s-au împărțit astfel: | ||
+ | * am scăzut 30 puncte dacă codul nu este modularizat | ||
+ | * am scăzut 10 puncte dacă codul este modularizat, dar folosește funcții foarte lungi | ||
+ | * am scăzut 20 puncte pentru warning-uri de compilare | ||
+ | * am scăzut 20 puncte dacă memoria nu a fost alocată dinamic | ||
====== FAQ ====== | ====== FAQ ====== |