Unelte utilizator

Unelte site


teme2019:tema-1

Diferențe

Aici sunt prezentate diferențele dintre versiunile selectate și versiunea curentă a paginii.

Link către această vizualizare comparativă

Ambele părți revizuirea anterioară Versiuni anterioare
Urmatoarea versiune
Versiuni anterioare
teme2019:tema-1 [2019/03/10 12:54]
gabriel.rusu [Exemplu]
teme2019:tema-1 [2019/03/21 10:52] (curent)
gabriel.rusu [Cerințe]
Linia 2: Linia 2:
  
 =====  Obiective ===== =====  Obiective =====
-  - Înțelegerea conceptului de funcționare și implementarea unor structuri de date(precum liste, stive, cozi, arbori binari de căutare)+  - Înțelegerea conceptului de funcționare și implementare a unor structuri de date(precum liste, stive, cozi, arbori binari de căutare)
   - Operarea cu aceste structuri de date    - Operarea cu aceste structuri de date 
   - Implementarea unei funcționalități practice folosind aceste concepte   - Implementarea unei funcționalități practice folosind aceste concepte
 ===== Informații ===== ===== Informații =====
-  - Deadline hard, **TODO aprilie ora 23:59** (termen limită - **nu se obţin puncte** pe soluţiile trimise mai târziu)+  - Deadline hard, **14 aprilie ora 23:59** (termen limită - **nu se obţin puncte** pe soluţiile trimise mai târziu)
   - Trimiterea temelor se face pe platforma [[https://vmchecker.cs.pub.ro/ui/#|vmchecker]] (folosiți credențialele de pe http://acs.curs.pub.ro).   - Trimiterea temelor se face pe platforma [[https://vmchecker.cs.pub.ro/ui/#|vmchecker]] (folosiți credențialele de pe http://acs.curs.pub.ro).
   - Checker-ul offline îl puteţi descărca de la această [[https://github.com/RusuGabriel/Checker-Tema1|adresă]]    - Checker-ul offline îl puteţi descărca de la această [[https://github.com/RusuGabriel/Checker-Tema1|adresă]] 
-  - Puteţi cere ajutor oricând la această adresă [[todo_create_mailing_list_with_google|email]]+  - Puteţi cere ajutor oricând la această adresă [[sda.ab.teme@gmail.com|email]]
  
 ===== Descriere ===== ===== Descriere =====
-Facultatea de Automatica si Calculatoare prin LSAC organizează in fiecare semestru un LAN Party la care participa toți studenții care vor sa își testeze abilitățile la un anumit joc. Se dorește realizarea unei soluții software(program executabil) ce poate automatiza acest proces.+Facultatea de Automatica si Calculatoare prin LSAC organizează in fiecare semestru un LAN Party la care participă toți studenții care vor sa își testeze abilitățile la un anumit joc. Se dorește realizarea unei soluții software(program executabil) ce poate automatiza acest proces. 
  
-===== Introducere ===== 
-TODO detalii introductive 
 ===== Cerințe ===== ===== Cerințe =====
-  - Se va crea o lista cu informațiile din fișierul date.in +  - Se va crea o listă cu informațiile din fișierul date.in 
-  - Se vor elimina din lista anterior creata, echipele cu cel mai mic punctaj de echipa(informațiile despre modul de calcul al acestui punctaj se găsesc în cadrul secțiunii Detalii Tehnice)+  - Se vor elimina din lista anterior creată, echipele cu cel mai mic punctaj de echipă (informațiile despre modul de calcul al acestui punctaj se găsesc în cadrul secțiunii Detalii Tehnice) astfel incat in lista sa ramana n echipe (unde n maxim si n este putere a lui 2).În cazul în care mai multe echipe au acelasi scor prima echipă ce va fi eliminată este echipa imediat următoarea din listă cu excepția cazului în care capul are valoarea minima,caz in care capul va fi eliminat iar parcurgerea va reîncepe de la noul cap.
   - Se vor implementa structurile de date necesare pentru a se efectua meciurile:   - Se vor implementa structurile de date necesare pentru a se efectua meciurile:
-      * Se va crea o coada în care se vor pune meciurile dintre echipe. +      * Se va crea o coadă în care se vor pune meciurile dintre echipe. 
-      * Echipele vor forma meciuri în ordinea în care se afla în lista de la punctul anterior,  primele doua echipe vor forma primul meci (și așa mai departe). +      * Echipele vor forma meciuri în ordinea în care se află în lista de la punctul anterior, primele două echipe vor forma primul meci (și așa mai departe). 
-      * Se vor crea doua stive una pentru învinși și una pentru câștigători ce vor conține echipele ce au pierdut, respectiv, au câștigat meciul anterior. +      * Se vor crea două stive una pentru învinși și una pentru câștigători ce vor conține echipele ce au pierdut, respectiv, au câștigat meciul anterior. 
-      * Se vor introduce în stiva echipele în funcție de rezultatul obținut și se va adaugă un punct la punctajul de echipa 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. 
-      * Se vor șterge echipele ce se găsesc în stiva de pierzători+      * Se vor șterge echipele ce se găsesc în stiva de învinși
-      * 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 echipa scoasa din stiva va juca cu a doua echipa scoasa din stiva 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.       * Se vor repeta pașii enumerați pana la aflarea echipelor de pe primele 8 locuri.
-  - Se va realiza un clasament al ultimelor 8 echipe ramase în competiție sub forma unui BST(Binary Search Tree). Acesta va fi ordonat după punctajul pe echipa și i se va afișa conținutul în ordine descrescătoare. +  - Se va realiza un clasament al ultimelor 8 echipe rămase în competiție sub forma unui BST(Binary Search Tree). Acesta va fi ordonat după punctajul pe echipă și i se va afișa conținutul în ordine descrescătoare. 
-  - Se va realiza unui arbore de tip AVL cu ultimele 8 echipe si se vor afisa echipele de pe nivelul 2 al arborelui.+  - Se va realiza un arbore de tip AVL cu ultimele 8 echipe si se vor afisa echipele de pe nivelul 2 al arborelui.
  
  
Linia 38: Linia 37:
  
 === Detalii Tehnice === === Detalii Tehnice ===
-  * Obiectivele se vor realiza în funcție de cum apar în fișierul cu cerinte c.in (Spre exemplu dacă fișierul c.in conține „1 0 0 0 0”  înseamnă ca se dorește doar realizarea cerinței 1. Se vor folosi ca valori de datele din fișierul d.in). Exista mai multe perechi de fișiere c.in si d.in organizate in foldere t1...tn.  
   * Rezultatele obținute în urma executări cerințelor din fișierul c.in vor fi scrise in fișierul r.out   * Rezultatele obținute în urma executări cerințelor din fișierul c.in vor fi scrise in fișierul r.out
   * Pentru **cerințele 1 si 2** este suficienta scrierea in fișierul de rezultate a numelor echipelor si a punctajelor acestora, in ordinea din lista creata, pe cate o linie separata.   * Pentru **cerințele 1 si 2** este suficienta scrierea in fișierul de rezultate a numelor echipelor si a punctajelor acestora, in ordinea din lista creata, pe cate o linie separata.
Linia 62: Linia 60:
  
 </file> </file>
 +<note>Obiectivele se vor realiza în funcție de cum apar în fișierul cu cerinte cerinte.in (Spre exemplu dacă fișierul cerinte.in conține **1 0 0 0 0**  înseamnă ca se dorește doar realizarea cerinței 1. Se vor folosi ca valori de intrare datele din fișierul date.in)</note>
  
-Așadar, executabilul obținut în urma compilării va avea numele lanParty, iar regula de rulare va fi:+<file date.in date.in> 
 +10                 // numarul de echipe din fisier 
 +10 The Waiver Wire // numarul de jucatori urmat de numele echipei 
 +Popa Florentina 8  //numele prenumele si punctajul jucatorului 1 
 +Popescu Anca 9 
 +Pop Anamaria 9 
 +Radu Simona 1 
 +Dumitru Iulian 7 
 +Stan Roxana 5 
 +Stoica Oana 5 
 +Gheorghe Irina 10 
 +Matei Diana 1 
 +Ciobanu Mirela 0 
 + 
 +</file> 
 + 
 +<note warning>În cazul in care un jucator are 2 prenume - acestea sunt scrise cu cratima - si reprezinta un singur sir de caractere. 
 +Formatul folosit pentru **fprintf** este **%-25s** în cazul afișării meciurilor din coadă.</note> 
 + 
 +<file rezultate.out rezultate.out> 
 + Elixir Junior 
 + Legalize 
 + Savage 
 + The Skyrynners 
 + The Abusement Park 
 + Chafing the Dream 
 + The Big Egos 
 + The Waiver Wire 
 + Elixir Junior            --                  Legalize 
 + Savage                   --            The Skyrynners 
 + The Abusement Park       --         Chafing the Dream 
 + The Big Egos             --           The Waiver Wire 
 + The Big Egos             --- 7.10 
 + Chafing the Dream        --- 8.10 
 + Savage                   --- 7.90 
 + Elixir Junior            --- 5.40 
 + The Big Egos             --         Chafing the Dream 
 + Savage                   --             Elixir Junior 
 + Savage                   --- 8.90 
 + Chafing the Dream        --- 9.10 
 + Savage                   --         Chafing the Dream 
 + Chafing the Dream        --- 10.10 
 +</file> 
 + 
 + 
 + 
 +Executabilul obținut în urma compilării va avea numele lanParty, iar regula de rulare va fi:
 <note tip>./lanParty cerinte.in date.in rezultate.out</note> <note tip>./lanParty cerinte.in date.in rezultate.out</note>
  
 ===== Reguli de trimitere ===== ===== Reguli de trimitere =====
  
-*puteţi încărca mai multe soluţii, se va lua în considerare soluţia cu cel mai mare punctaj trimisă până la termenul limită (todo aprilie, ora 23:59);+*puteţi încărca mai multe soluţii, se va lua în considerare soluţia cu cel mai mare punctaj trimisă până la termenul limită (14 aprilie, ora 23:59);
 *Arhiva temei va avea numele GrupaSerie_Nume_Prenume_TemaNr.zip și va fi încărcată pe [[https://vmchecker.cs.pub.ro/ui/|vmchecker]] unde vă puteți loga folosind credențialele de pe acs.curs. *Arhiva temei va avea numele GrupaSerie_Nume_Prenume_TemaNr.zip și va fi încărcată pe [[https://vmchecker.cs.pub.ro/ui/|vmchecker]] unde vă puteți loga folosind credențialele de pe acs.curs.
 * Arhiva trimisă conține (direct în rădăcină): * Arhiva trimisă conține (direct în rădăcină):
       - Fişierul sau fişierele (.c) cu codul programului;       - Fişierul sau fişierele (.c) cu codul programului;
-      - Makefile-ul (cu regulile **make build** și **make clean**). Executabilul generat trebuie să se numească market;+      - 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.
  
Linia 85: Linia 130:
   * 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: Jucator)   +  * Se va depuncta cu pana 15% din punctajul obtinut implementarea care nu foloseste tipuri de date specifice pentru entitiatile din cerinta (ex: Jucator) 
-  Temele care vor fi copiate vor primi -5 pct şi studenţii implicaţi - mustrări şi vor figura pe blacklist-ul cursului de SDA.+ 
 +<note important>Temele care vor fi copiate vor primi -5 pct şi studenţii implicaţi - mustrări şi vor figura pe blacklist-ul cursului de SDA.</note>
  
  
teme2019/tema-1.1552215269.txt.gz · Ultima modificare: 2019/03/10 12:54 de către gabriel.rusu