Differences

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

Link to this comparison view

sda-ab:tema1 [2021/03/29 14:36]
gabriel.rusu [Informații]
sda-ab:tema1 [2022/03/29 12:17] (current)
andreea.udrea [Informații]
Line 9: Line 9:
 ===== Informații ===== ===== Informații =====
  
-  * Deadline hard, 23.05.2021 ​ora 23:59 (termen limită - nu se obţin puncte pe soluţiile trimise mai târziu)+  * Deadline hard, 22 mai, ora 23:59 (termen limită - nu se obţin puncte pe soluţiile trimise mai târziu)
   * Checker-ul offline îl puteţi descărca de la  [[https://​github.com/​sda-ab/​lan-party-02-checker| această adresă]]   * Checker-ul offline îl puteţi descărca de la  [[https://​github.com/​sda-ab/​lan-party-02-checker| această adresă]]
 +  * Informații despre ce este un makefile gasiți [[https://​ocw.cs.pub.ro/​courses/​sda-ab/​makefile| aici]] și [[https://​github.com/​sda-ab/​makefile-intro| aici]]
   * Puteţi cere ajutor oricând la această adresă [[sda.ab.teme@gmail.com|email]]   * Puteţi cere ajutor oricând la această adresă [[sda.ab.teme@gmail.com|email]]
  
Line 26: Line 27:
     * Se vor introduce în stivă echipele în funcție de rezultatul obținut și se va adauga un punct la punctajul de echipă al echipelor ce au câștigat.     * Se vor introduce în stivă echipele în funcție de rezultatul obținut și se va adauga un punct la punctajul de echipă al echipelor ce au câștigat.
     * In cazul unui meci in care ambele echipe au acelasi punctaj, se va alege prima echipa adaugata in meciul disputat.     * In cazul unui meci in care ambele echipe au acelasi punctaj, se va alege prima echipa adaugata in meciul disputat.
-    * Se vor șterge echipele ce se găsesc în stiva de învinși.+    * Se vor șterge echipele ce se găsesc în stiva de învinși. ​(la finalul fiecărei etape; ex: dintr-o runda cu 8 echipe, stergerea se face dupa ce au fost eliminate toate echipele. In acest caz, dupa ce au fost eliminate 4 dintre echipe, se vor sterge. In runda urmatoare, pe acest exemplu, se vor adauga 2 echipe in stiva de invinsi, dupa care o sa fie eliberata din nou - stiva de invinsi -.)
     * Din stiva de câștigători se vor extrage echipele și se va umple din nou coada de meciuri formându-se meciuri cu echipele consecutive (prima echipă scoasă din stivă va juca cu a doua echipa scoasă din stivă primul meci).     * Din stiva de câștigători se vor extrage echipele și se va umple din nou coada de meciuri formându-se meciuri cu echipele consecutive (prima echipă scoasă din stivă va juca cu a doua echipa scoasă din stivă primul meci).
     * Se vor repeta pașii enumerați pana la aflarea echipelor de pe primele 8 locuri, care vor fi salvate intr-o alta lista, dupa aflarea acestora se vor continua meciurile pana la aflarea echipei castigatoare.     * Se vor repeta pașii enumerați pana la aflarea echipelor de pe primele 8 locuri, care vor fi salvate intr-o alta lista, dupa aflarea acestora se vor continua meciurile pana la aflarea echipei castigatoare.
Line 44: Line 45:
   * Pentru cerința 4 se dorește afișarea BST -ului în ordine descrescătoare. Adică afișarea clasamentului în ordine descrescătoare.   * Pentru cerința 4 se dorește afișarea BST -ului în ordine descrescătoare. Adică afișarea clasamentului în ordine descrescătoare.
   * Pentru cerința 5 se dorește crearea unui AVL cu echipele de la sub punctul anterior și scrierea în fișier a echipelor de la nivelul 2.   * Pentru cerința 5 se dorește crearea unui AVL cu echipele de la sub punctul anterior și scrierea în fișier a echipelor de la nivelul 2.
-  * Structurile de date necesare trebuie deduse astfel încât sa respecte normele de buna implementare Ex: un jucator are nume, prenume, experienta - prin urmare se va folosi un tip de date care sa caracterizeze aceasta entitate:​(Acelasi lucru trebuie facut si pentru alte tipuri de date necesare realizarii aplicatiei.)+  * Structurile de date necesare trebuie deduse astfel încât sa respecte normele de buna implementare Ex: un jucator are nume, prenume, ​puncte de experienta - prin urmare se va folosi un tip de date care sa caracterizeze aceasta entitate:​(Acelasi lucru trebuie facut si pentru alte tipuri de date necesare realizarii aplicatiei.)
  
-<code cpp player.hpp+<code cpp player.h
-class Player+struct ​Player
 { {
-private: +    char* firstName;​ 
-    string ​firstName;​ +    ​char* secondName;
-    ​string ​secondName;+
     int points;     int points;
 }; };
 </​code>​ </​code>​
  
-<​note>​Formula de calcul a punctajului de echipa este: media aritmetica a experienței (xp) jucătorilor din echipa respectiva. La fiecare meci câștigat punctajul de echipa va creste cu 1.(Trebuie modificate toate punctajele jucătorilor echipei pentru realizarea acestui task.)</​note>​+<​note>​Formula de calcul a punctajului de echipa este: media aritmetica a punctelor de experiență (pointscorespunzătoare ​jucătorilor din echipa respectiva. La fiecare meci câștigat punctajul de echipa va creste cu 1.(Trebuie modificate toate punctajele jucătorilor echipei pentru realizarea acestui task.)</​note>​
  
 ===== Exemplu ===== ===== Exemplu =====
Line 183: Line 183:
 <note tip>​./​lanParty c.in d.in r.out</​note>​ <note tip>​./​lanParty c.in d.in r.out</​note>​
  
 +<note tip>​Exemplu cerinta 2:
 +
 +Initial sunt **146** de echipe, iar valoarea lui N pentru a avea numarul maxim de echipe ca putere a lui 2 este 7 => 2^7 = **128**, ceea ce inseamna ca din 146 echipe eliminam pana cand raman 128 de echipe in concurs.
 +</​note>​
 +
 +===== Tips Checker =====
 +
 +**Checker-ul** este un script care pentru a valida testul X, compara linie cu linie fisierul de Output (generat de codul vostru) cu fisierul de Rezultate/​Expected (rezultatul corect pentru testul respectiv).
 +
 +Acesta foloseste fisierul **Makefile** pentru a compila programele sursa (main.c, generareJoc.c etc) si genereaza executabilul **//​__lanParty__//​**,​ care primeste cele trei argumente (cerinte.in,​ date.in, rezultate.out).
 +
 +<note important>​In cazul in care fisierul vostru de Output este similar cu cel de Rezultate, iar rezultatul pe test este 0, verificati ca cele 2 fisiere sunt identice folosind un comparator de text (precum: [[https://​text-compare.com/​|text compare]]). Existenta spatiilor la final de linie sau de fisier pot duce la invalidarea testului.</​note>​
 +
 +<note warning>​**Alte probleme pot aparea din cauza alocarii/​eliberarii neadecvate de memorie.**</​note>​
 ===== Reguli de trimitere ===== ===== Reguli de trimitere =====
   * Puteţi încărca mai multe soluţii, se va lua în considerare ultima solutie incarcata, termen limita x   * Puteţi încărca mai multe soluţii, se va lua în considerare ultima solutie incarcata, termen limita x
   * Arhiva temei va avea numele GrupaSerie_Nume_Prenume_TemaNr.zip și va fi încărcată pe moodle.   * Arhiva temei va avea numele GrupaSerie_Nume_Prenume_TemaNr.zip și va fi încărcată pe moodle.
   * Arhiva trimisă conține (direct în rădăcină):​   * Arhiva trimisă conține (direct în rădăcină):​
-     - Fişierul sau fişierele (.cpp si .hpp) cu codul programului;​+     - Fişierul sau fişierele (.si .h) cu codul programului;​
      - Makefile-ul (cu regulile make build și make clean). Executabilul generat trebuie să se numească lanParty;      - Makefile-ul (cu regulile make build și make clean). Executabilul generat trebuie să se numească lanParty;
      - fișierul README în care va fi descrisă soluția problemei.      - fișierul README în care va fi descrisă soluția problemei.
  
 ==== Restricții ==== ==== Restricții ====
-  * Implementarea se va face folosind limbajul C++;+  * Implementarea se va face folosind limbajul C;
   * Implementarea se va face folosind liste.Nu e permisa implementarea cu vector a stivelor, cozii și a listei cu echipe participante. Se recomanda folosirea pointerilor și eliberarea memoriei.;   * Implementarea se va face folosind liste.Nu e permisa implementarea cu vector a stivelor, cozii și a listei cu echipe participante. Se recomanda folosirea pointerilor și eliberarea memoriei.;
   * Se va evita pe cat posibil duplicarea nodurilor din lista pentru abateri grave de la aceasta cerința se vor scădea pana la 5 puncte.   * Se va evita pe cat posibil duplicarea nodurilor din lista pentru abateri grave de la aceasta cerința se vor scădea pana la 5 puncte.
   * Nu se acceptă implementări cu tipuri de date cu memorie alocată static (se acceptă numai variabile locale de tip buffer pentru stocare temporară înainte de alocare);   * Nu se acceptă implementări cu tipuri de date cu memorie alocată static (se acceptă numai variabile locale de tip buffer pentru stocare temporară înainte de alocare);
-  * Se va depuncta lucrul nemodularizat (fără clase cu funcții membre).Operațiile pe structurile de date de tip arbore, coada, etc se fac folosind ​clase si funcții ​membre ​- Ex: adaugaNod, stergeNod, etc. Orice alte manipulări de date se fac, pe cat posibil, prin funcții specializate. ;+  * Se va depuncta lucrul nemodularizat (functii ​cu mai mult de 40 de linii).Operațiile pe structurile de date de tip arbore, coada, etc se fac folosind funcții ​ce au nume sugestive ​- Ex: adaugaNod, stergeNod, etc. Orice alte manipulări de date se fac, pe cat posibil, prin funcții specializate. ;
   * Memoria trebuie eliberată. Dacă nu se respectă această cerință depunctarea este de pana la 10/100 pct (restricție aplicabila de la 60 de puncte in sus).   * Memoria trebuie eliberată. Dacă nu se respectă această cerință depunctarea este de pana la 10/100 pct (restricție aplicabila de la 60 de puncte in sus).
   * Menţineţi cel puţin un nivel minimal de aspect al codului şi evitaţi inconsistenţa (indentare haotică, numeroase combinaţii de caractere de tip „leading/​trailing whitespace“,​ numirea variabilelor şi a funcţiilor în ordinea literelor din alfabet);   * Menţineţi cel puţin un nivel minimal de aspect al codului şi evitaţi inconsistenţa (indentare haotică, numeroase combinaţii de caractere de tip „leading/​trailing whitespace“,​ numirea variabilelor şi a funcţiilor în ordinea literelor din alfabet);
   * Dacă soluția voastră nu compilează,​ dar ideea este bună și trimiteți o încercare de implementare,​ puteți primi până la 20/100 pct;   * Dacă soluția voastră nu compilează,​ dar ideea este bună și trimiteți o încercare de implementare,​ puteți primi până la 20/100 pct;
   * Se va depuncta cu pana 15% din punctajul obtinut implementarea care nu foloseste tipuri de date specifice pentru entitiatile din cerinta (ex: Player)   * Se va depuncta cu pana 15% din punctajul obtinut implementarea care nu foloseste tipuri de date specifice pentru entitiatile din cerinta (ex: Player)
sda-ab/tema1.1617017766.txt.gz · Last modified: 2021/03/29 14:36 by gabriel.rusu
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