Differences

This shows you the differences between two versions of the page.

Link to this comparison view

programare:teme_2016:tema2_2016_cbd_123123abcdabcd [2016/12/09 09:21]
george.pirtoaca [Cerinte]
programare:teme_2016:tema2_2016_cbd_123123abcdabcd [2017/01/15 18:09] (current)
relu.dragan
Line 4: Line 4:
   * [[gpirtoaca@gmail.com|Sebastian Pîrtoacă]]   * [[gpirtoaca@gmail.com|Sebastian Pîrtoacă]]
   * [[draganrelu@gmail.com|Relu Drăgan]]   * [[draganrelu@gmail.com|Relu Drăgan]]
-Termen de predare: **TODO**+ 
 +Termen de predare: **15.01.2017 23:59** 
 + 
 +Pentru fiecare zi (24 de ore) de întârziere,​ se vor scădea 10 puncte din nota acordată. Deadline-ul hard este **18.01.2017 23:59**.
  
 **Actualizări:​** **Actualizări:​**
-  * **[03/12/2016]** adaugat enunt+  * **[16/12/2016]** adaugat enunt
 +  * **[31/​12/​2016]** modificare gresela exemplu task 3 (pixel de valoare 10 inlocuit cu 30).
  
 **Scopul temei:** **Scopul temei:**
Line 167: Line 171:
  
 **3)** Toti pixelii din zona determinata vor avea culoarea pixelului de la pasul **1)** adica $ (R, G, B) $. **3)** Toti pixelii din zona determinata vor avea culoarea pixelului de la pasul **1)** adica $ (R, G, B) $.
 +
 **4)** Dupa deteminarea noii zone se reia algoritmul incepand cu pasul **1)**. **4)** Dupa deteminarea noii zone se reia algoritmul incepand cu pasul **1)**.
  
Line 178: Line 183:
 <pre> <pre>
 (10 10 10) (12 10 13) (10 10 10) (30 30 30) (30 29 31) (10 10 10) (12 10 13) (10 10 10) (30 30 30) (30 29 31)
-(10 10 10) (12 15 10) (10 10 10) (30 28 10) (12 10 13)+(10 10 10) (12 15 10) (10 10 10) (30 28 30) (12 10 13)
 (11 11 11) (11 12 11) (10 10 10) (30 33 30) (12 11 13) (11 11 11) (11 12 11) (10 10 10) (30 33 30) (12 11 13)
 (12 12 12) (12 10 12) (10 10 10) (30 30 31) (12 10 13) (12 12 12) (12 10 12) (10 10 10) (30 30 31) (12 10 13)
Line 189: Line 194:
 <pre> <pre>
 <font color="​red">​ (10 10 10) (12 10 13) (10 10 10)</​font>​ (30 30 30) (30 29 31) <font color="​red">​ (10 10 10) (12 10 13) (10 10 10)</​font>​ (30 30 30) (30 29 31)
-<font color="​red">​ (10 10 10) (12 15 10) (10 10 10)</​font>​ (30 28 10) (12 10 13)+<font color="​red">​ (10 10 10) (12 15 10) (10 10 10)</​font>​ (30 28 30) (12 10 13)
 <font color="​red">​ (11 11 11) (11 12 11) (10 10 10)</​font>​ (30 33 30) (12 11 13) <font color="​red">​ (11 11 11) (11 12 11) (10 10 10)</​font>​ (30 33 30) (12 11 13)
 <font color="​red">​ (12 12 12) (12 10 12) (10 10 10)</​font>​ (30 30 31) (12 10 13) <font color="​red">​ (12 12 12) (12 10 12) (10 10 10)</​font>​ (30 30 31) (12 10 13)
Line 201: Line 206:
 <pre> <pre>
 <font color="​red">​ (10 10 10) (12 10 13) (10 10 10)</​font>​ <font color="​green">​(30 30 30) (30 29 31)</​font>​ <font color="​red">​ (10 10 10) (12 10 13) (10 10 10)</​font>​ <font color="​green">​(30 30 30) (30 29 31)</​font>​
-<font color="​red">​ (10 10 10) (12 15 10) (10 10 10)</​font>​ <font color="​green">​(30 28 10)</​font>​ (12 10 13)+<font color="​red">​ (10 10 10) (12 15 10) (10 10 10)</​font>​ <font color="​green">​(30 28 30)</​font>​ (12 10 13)
 <font color="​red">​ (11 11 11) (11 12 11) (10 10 10)</​font>​ <font color="​green">​(30 33 30)</​font>​ (12 11 13) <font color="​red">​ (11 11 11) (11 12 11) (10 10 10)</​font>​ <font color="​green">​(30 33 30)</​font>​ (12 11 13)
 <font color="​red">​ (12 12 12) (12 10 12) (10 10 10)</​font>​ <font color="​green">​(30 30 31)</​font>​ (12 10 13) <font color="​red">​ (12 12 12) (12 10 12) (10 10 10)</​font>​ <font color="​green">​(30 30 31)</​font>​ (12 10 13)
Line 214: Line 219:
 <pre> <pre>
 <font color="​red">​ (10 10 10) (12 10 13) (10 10 10)</​font>​ <font color="​green">​(30 30 30) (30 29 31)</​font>​ <font color="​red">​ (10 10 10) (12 10 13) (10 10 10)</​font>​ <font color="​green">​(30 30 30) (30 29 31)</​font>​
-<font color="​red">​ (10 10 10) (12 15 10) (10 10 10)</​font>​ <font color="​green">​(30 28 10)</​font>​ <font color="​blue">​(12 10 13)</​font>​+<font color="​red">​ (10 10 10) (12 15 10) (10 10 10)</​font>​ <font color="​green">​(30 28 30)</​font>​ <font color="​blue">​(12 10 13)</​font>​
 <font color="​red">​ (11 11 11) (11 12 11) (10 10 10)</​font>​ <font color="​green">​(30 33 30)</​font>​ <font color="​blue">​(12 11 13)</​font>​ <font color="​red">​ (11 11 11) (11 12 11) (10 10 10)</​font>​ <font color="​green">​(30 33 30)</​font>​ <font color="​blue">​(12 11 13)</​font>​
 <font color="​red">​ (12 12 12) (12 10 12) (10 10 10)</​font>​ <font color="​green">​(30 30 31)</​font>​ <font color="​blue">​(12 10 13)</​font>​ <font color="​red">​ (12 12 12) (12 10 12) (10 10 10)</​font>​ <font color="​green">​(30 30 31)</​font>​ <font color="​blue">​(12 10 13)</​font>​
Line 294: Line 299:
  
 Ca output pentru exemplul de mai sus se vor scrie fisierele: image_black_white.bmp, ​ image_f1.bmp,​ image_f2.bmp,​ image_f3.bmp,​ compressed.bin si decompressed.bmp. Ca output pentru exemplul de mai sus se vor scrie fisierele: image_black_white.bmp, ​ image_f1.bmp,​ image_f2.bmp,​ image_f3.bmp,​ compressed.bin si decompressed.bmp.
 +
 +<note warning>​Cand scrieti imagini in format BMP, intre ultimul byte din header si byte-ul la care incepe matricea de pixeli (adica pana la byte-ul de offset) trebuie sa scrieti peste tot byte-ul 0. Aceeasi observatie se aplica si in cazul formatului comprimat. </​note>​
  
 ==== Restrictii si precizari ==== ==== Restrictii si precizari ====
Line 300: Line 307:
      * Atunci cand scrieti o imagine (atat in format .bmp cat si in formatul special de la task-ul 3) **NU** modificati header-ele citite. Cu alte cuvinte ce headere ati citit aceleasi headere veti scrie (deoarece nici unul dintre task-uri nu necesita modificarea header-ului imaginii). In caz contrar, testul se va puncta cu 0;      * Atunci cand scrieti o imagine (atat in format .bmp cat si in formatul special de la task-ul 3) **NU** modificati header-ele citite. Cu alte cuvinte ce headere ati citit aceleasi headere veti scrie (deoarece nici unul dintre task-uri nu necesita modificarea header-ului imaginii). In caz contrar, testul se va puncta cu 0;
      * Exista o limita de timp de **60 de secunde** pentru fiecare test necesara pentru a testa tema pe vmchecker. Scopul cursului de programare nu este de a scrie algoritmi eficienti dar limita de 60 de secunde este de bun simt. In mod normal, o implementare obisnuita ar trebui sa ruleze in mai putin de 5s pe test.      * Exista o limita de timp de **60 de secunde** pentru fiecare test necesara pentru a testa tema pe vmchecker. Scopul cursului de programare nu este de a scrie algoritmi eficienti dar limita de 60 de secunde este de bun simt. In mod normal, o implementare obisnuita ar trebui sa ruleze in mai putin de 5s pe test.
-     * Tema se va trimite pe vmchecker si se va teste local cu ajutorul checker-ului care va fi disponibil **in curand**;+     * Tema se va trimite pe vmchecker si se va testa local cu ajutorul checker-ului care va fi disponibil **in curand**;
      * Pe vmchecker veti uploada o arhiva in format .zip care sa contina:      * Pe vmchecker veti uploada o arhiva in format .zip care sa contina:
           - **Makefile**,​ cu cel puțin 3 targeturi, **build**, **run** și **clean**; Regula **run** trebuie sa ruleze executabilul care a fost obtinut la regula **build**;           - **Makefile**,​ cu cel puțin 3 targeturi, **build**, **run** și **clean**; Regula **run** trebuie sa ruleze executabilul care a fost obtinut la regula **build**;
Line 307: Line 314:
      * Daca rezolvati doar o parte din task-uri asigurati-va ca pe celelalte nu primiti erori la rulare (precum SEGFAULT) sau time limit exceeded, altfel tot testul va fi punctat cu 0. De exemplu, daca task-urile 1 si 2 sunt OK dar task-ul 3               ​primeste SEGFAULT sau dureaza prea mult atunci tot testul se va nota cu 0.  ​      * Daca rezolvati doar o parte din task-uri asigurati-va ca pe celelalte nu primiti erori la rulare (precum SEGFAULT) sau time limit exceeded, altfel tot testul va fi punctat cu 0. De exemplu, daca task-urile 1 si 2 sunt OK dar task-ul 3               ​primeste SEGFAULT sau dureaza prea mult atunci tot testul se va nota cu 0.  ​
  
 +<note warning>​Fiti **foarte** atenti la erori de tipul stack overflow. Pe vmchecker dimensiunea stivei este de 1MB. Daca aveti functii recursive aproximati cata memorie se ocupa pe stiva la un apel al functiei respective. </​note>​
 ==== Resurese si checker-ul local ==== ==== Resurese si checker-ul local ====
  
-Resursele pentru tema se pot descarca de {{:programare:​teme_2015:​checker_tema_3.zip|aici}}. Sunt prezente:+Resursele pentru tema se pot descarca de [[https://​drive.google.com/​file/​d/​0B3lfz66yOkZxZTV5c0drUVd2MG8/​view?​usp=sharing|aici]]. Sunt prezente:
  
   * **bmp_header.h**:​ headerul care contine declaratiile struct-urilor pe care le veti folosi in citirea unui fisier BMP;   * **bmp_header.h**:​ headerul care contine declaratiile struct-urilor pe care le veti folosi in citirea unui fisier BMP;
-  * **TODO**: ​checker-ul pe care il veti putea folosi pentru a va testa tema local.+  * **checker-ul** pe care il veti putea folosi pentru a va testa tema local.
programare/teme_2016/tema2_2016_cbd_123123abcdabcd.1481268101.txt.gz · Last modified: 2016/12/09 09:21 by george.pirtoaca
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0