Differences

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

Link to this comparison view

sd-ca:teme:teme-01 [2015/03/19 14:27]
andrei.vasiliu2211 [Cum vom testa]
sd-ca:teme:teme-01 [2015/04/01 18:34] (current)
andrei.vasiliu2211 [Teste publice]
Line 12: Line 12:
 ** Deadline hard: 5 aprilie, ora 23:55 ** ** Deadline hard: 5 aprilie, ora 23:55 **
  
 +==== Modificări și actualizări ====
 +  * **20 martie** modificare check_pc.sh din arhivă
 +  * **22 martie** pus fișierele de referință în arhiva de testare, specificat format de output
 +  * **23 martie** detalii pentru operatorul de concatenare
 ===== Obiective ===== ===== Obiective =====
  
Line 37: Line 41:
   * dacă, prin ștergere de elemente se ajunge ca numărul de elemente actual să fie jumătate - 1 din dimensiunea actuală, aceasta se reduce la jumătate   * dacă, prin ștergere de elemente se ajunge ca numărul de elemente actual să fie jumătate - 1 din dimensiunea actuală, aceasta se reduce la jumătate
   * să existe posibilitatea de a folosi semantica de index a vectorilor din C (să putem scrie v[index], cu v de tip MyVector și index de tip întreg, care să aibă sensul din C - se aleagă elementul de la index). Atenție, se dorește ca v[index] să se poată și scrie și citi, adică să putem scrie v[index] = ceva   * să existe posibilitatea de a folosi semantica de index a vectorilor din C (să putem scrie v[index], cu v de tip MyVector și index de tip întreg, care să aibă sensul din C - se aleagă elementul de la index). Atenție, se dorește ca v[index] să se poată și scrie și citi, adică să putem scrie v[index] = ceva
-  * să existe posibilitatea de a putea scrie new_list = list1 + list2, cu new_list, list1 și list2 de tip MyVector. new_list va reprezenta concatenarea dintre list1 și list2+  * să existe posibilitatea de a putea scrie new_list = list1 + list2, cu new_list, list1 și list2 de tip MyVector. new_list va reprezenta concatenarea dintre list1 și list2; se va considera că rezultatul este list1 la care se adaugă fiecare element din list2; operanzii nu vor fi modificați
   * să implementeze 2 metode, begin și end, care să întoarcă un iterator de tip MyIterator care pointează spre primul element (begin), respectiv după ultimul element (end) al vectorului. Practic, end pointează **după** ultimul element din vector, deci nu ar trebui dereferențiat   * să implementeze 2 metode, begin și end, care să întoarcă un iterator de tip MyIterator care pointează spre primul element (begin), respectiv după ultimul element (end) al vectorului. Practic, end pointează **după** ultimul element din vector, deci nu ar trebui dereferențiat
 +  * să poată fi afișată de către un stream de output (e.g. std::cout); formatul de ieșire este simplu: toate elementele structurii, separate prin spațiu
 ==== MyIterator ==== ==== MyIterator ====
  
Line 46: Line 51:
   * să rețină index-ul actual din container până unde a iterat   * să rețină index-ul actual din container până unde a iterat
   * să implementeze posibilitatea de a folosi semantica de dereferențiere din C (să putem scrie *it, cu it de tip MyIterator, care să reprezinte elementul curent din container unde s-a ajuns cu iterarea)   * să implementeze posibilitatea de a folosi semantica de dereferențiere din C (să putem scrie *it, cu it de tip MyIterator, care să reprezinte elementul curent din container unde s-a ajuns cu iterarea)
-  * să implementeze posibilitatea de a scrie it++, ++it, it------, ------it, cu it de tip MyIterator, care să incrementeze/​decrementeze locul unde s-a ajuns cu iterarea asupra container-ului+  * să implementeze posibilitatea de a scrie it++, ++it, it - -, - - it, cu it de tip MyIterator, care să incrementeze/​decrementeze locul unde s-a ajuns cu iterarea asupra container-ului
   * să implementeze posibilitatea de a scrie it >> x și it << y, cu it de tip MyIterator și x, y de tip întreg, care să incrementeze (>>), cu x, respectiv să decrementeze (<<), cu y, locul unde s-a ajuns cu iterarea asupra container-ului   * să implementeze posibilitatea de a scrie it >> x și it << y, cu it de tip MyIterator și x, y de tip întreg, care să incrementeze (>>), cu x, respectiv să decrementeze (<<), cu y, locul unde s-a ajuns cu iterarea asupra container-ului
   * să implementeze posibilitatea de a scrie ~it, cu it de tip MyIterator, care să șteargă elementul din container spre care pointează iteratorul it   * să implementeze posibilitatea de a scrie ~it, cu it de tip MyIterator, care să șteargă elementul din container spre care pointează iteratorul it
Line 83: Line 88:
 ==== Teste publice ==== ==== Teste publice ====
  
-Aveți la dispoziție o arhivă ce conține o suită de teste publice ​(singurele cu care va fi testată tema), reprezentate prin niște fișiere .cpp, și un Makefile care va încerca compilarea fiecărui fișier din teste.+Aveți la dispoziție o arhivă ce conține o suită de teste publice, reprezentate prin niște fișiere .cpp, și un Makefile care va încerca compilarea fiecărui fișier din teste.
  
-{{|Arhiva de testare}}+{{:​sd-ca:​teme:​tests.zip|Arhiva de testare}}
  
 ===== Reguli pentru trimitere ===== ===== Reguli pentru trimitere =====
Line 102: Line 107:
   * 10 puncte: README   * 10 puncte: README
   * **Bonus 10 puncte** pentru soluțiile ce nu au memory leak-uri.   * **Bonus 10 puncte** pentru soluțiile ce nu au memory leak-uri.
-  * TOTAL: ​100 puncte ​(+10 bonus)+  * TOTAL: ​110 puncte
  
 <note warning> Codul vostru va fi verificat să nu genereze comportament nedefinit (undefined behaviour) cu valgrind. Dacă se va observa că există cod care ar putea genera astfel de comportament din partea compilatorului,​ se poate scădea tot punctajul de pe temă (o tema cu undefined behaviour poate merge sau nu, în funcție de mașina pe care a fost compilată, memoria RAM disponibilă la acel moment, starea vremii în ziua compilării sau orice alt motiv super concludent :-p).  <note warning> Codul vostru va fi verificat să nu genereze comportament nedefinit (undefined behaviour) cu valgrind. Dacă se va observa că există cod care ar putea genera astfel de comportament din partea compilatorului,​ se poate scădea tot punctajul de pe temă (o tema cu undefined behaviour poate merge sau nu, în funcție de mașina pe care a fost compilată, memoria RAM disponibilă la acel moment, starea vremii în ziua compilării sau orice alt motiv super concludent :-p). 
sd-ca/teme/teme-01.1426768029.txt.gz · Last modified: 2015/03/19 14:27 by andrei.vasiliu2211
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