Aici sunt prezentate diferențele dintre versiunile selectate și versiunea curentă a paginii.
Ambele părți revizuirea anterioară Versiuni anterioare Urmatoarea versiune | Versiuni anterioare Urmatoarea versiune Ambele părți următoarea reviziune | ||
teme2019:tema-1 [2019/03/10 12:19] gabriel.rusu [Anexa] |
teme2019:tema-1 [2019/03/11 00:25] mihai.iacov [Descriere] |
||
---|---|---|---|
Linia 6: | Linia 6: | ||
- 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:// | - Trimiterea temelor se face pe platforma [[https:// | ||
- Checker-ul offline îl puteţi descărca de la această [[https:// | - Checker-ul offline îl puteţi descărca de la această [[https:// | ||
Linia 12: | Linia 12: | ||
===== Descriere ===== | ===== Descriere ===== | ||
- | Facultatea de Automatica si Calculatoare prin LSAC organizează in fiecare semestru un LAN Party la care participa | + | Facultatea de Automatica si Calculatoare prin LSAC organizează in fiecare semestru un LAN Party la care participă |
- | ===== 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 lista 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 Anexa) | + | - 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 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 coada în care se vor pune meciurile dintre echipe. | ||
Linia 28: | Linia 27: | ||
* 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 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 | + | - Se va realiza |
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. | ||
- | * Pentru **cerința 3** se va scrie in fișier la fiecare runda conținutul cozii de meciuri alături de conținutul stivelor de învingători si învinși(imagine drept exemplu in anexa). | + | * Pentru **cerința 3** se va scrie in fișier la fiecare runda conținutul cozii de meciuri alături de conținutul stivelor de învingători si învinși. |
* 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. | ||
- | + | | |
- | ===== Anexa ===== | + | |
- | <note warning> | + | |
- | * Nu e permisa implementarea cu vector a stivelor, cozii și a listei cu echipe participante. Se recomanda folosirea pointerilor și eliberarea memoriei. | + | |
- | | + | |
<file cpp> | <file cpp> | ||
typedef struct Jucator{ | typedef struct Jucator{ | ||
Linia 54: | Linia 48: | ||
int xp; | int xp; | ||
} Jucator; | } Jucator; | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | </ | ||
+ | |||
+ | ===== Exemplu ===== | ||
+ | ** Fisierel folosite de checker arata astfel: ** | ||
+ | |||
+ | <file cerinte.in cerinte.in> | ||
+ | 1 0 0 0 0 | ||
</ | </ | ||
+ | < | ||
+ | <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 | ||
+ | |||
+ | </ | ||
+ | |||
+ | <note warning> | ||
+ | Formatul folosit pentru **fprintf** este **%-25s** în cazul afișării meciurilor din coadă.</ | ||
+ | |||
+ | <file rezultate.out rezultate.out> | ||
+ | | ||
+ | | ||
+ | | ||
+ | The Skyrynners | ||
+ | The Abusement Park | ||
+ | | ||
+ | The Big Egos | ||
+ | The Waiver Wire | ||
+ | | ||
+ | | ||
+ | The Abusement Park | ||
+ | The Big Egos | ||
+ | The Big Egos --- 7.10 | ||
+ | | ||
+ | | ||
+ | | ||
+ | The Big Egos | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
- | ===== Exemplu ===== | ||
- | TODO exemplu | ||
- | Așadar, executabilul | + | Executabilul |
<note tip> | <note tip> | ||
===== 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:// | *Arhiva temei va avea numele GrupaSerie_Nume_Prenume_TemaNr.zip și va fi încărcată pe [[https:// | ||
* Arhiva trimisă conține (direct în rădăcină): | * Arhiva trimisă conține (direct în rădăcină): | ||
Linia 76: | Linia 122: | ||
==== Restricții ==== | ==== Restricții ==== | ||
* Implementarea se va face folosind limbajul C; | * Implementarea se va face folosind limbajul C; | ||
- | * Implementarea se va face folosind liste; | + | * 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. | ||
* 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ă funcții); | + | * Se va depuncta lucrul nemodularizat (fără funcții).Operațiile pe structurile de date de tip arbore, coada, etc se fac folosind funcții - 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 5/100 pct (pentru mai mult de O(1) memorie alocată fără eliberare). | + | ; |
+ | * Memoria trebuie eliberată. Dacă nu se respectă această cerință depunctarea este de pana la 10/100 pct (restricție aplicabila | ||
* 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 " | * 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 " | ||
- | |||
* Dacă soluția voastră nu compilează, | * Dacă soluția voastră nu compilează, | ||
- | * Temele care vor fi copiate vor primi 0 pct şi studenţii implicaţi - mustrări şi vor figura pe blacklist-ul cursului de SDA. | + | * Se va depuncta cu pana 15% din punctajul obtinut implementarea care nu foloseste tipuri de date specifice pentru entitiatile din cerinta (ex: Jucator) |
+ | |||
+ | <note important> | ||