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 | ||
teme2018:tema-1 [2018/03/09 23:29] david.broscoteanu [Informații] |
teme2018:tema-1 [2018/03/31 02:01] mihai.iacov [Modificări temă] |
||
---|---|---|---|
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 | + | - Deadline |
- | - Termen final de trimitere d m ora hh:mm (depunctare de 0.5pt/zi, maxim 3p depunctare). | + | |
- Trimiterea temelor se face pe platforma vmchecker (folosiți credențialele de pe http:// | - Trimiterea temelor se face pe platforma vmchecker (folosiți credențialele de pe http:// | ||
+ | - Checker-ul offline il puteti descarca de la acesta [[https:// | ||
+ | - Puteţi cere ajutor oricând la această adresă [[sda-ab-tema1@googlegroups.com|email]] | ||
+ | |||
+ | ===== Modificări temă===== | ||
+ | - 20/03/2018 22:35 | ||
+ | * corecturi checker - nume de categorii din seturile de date (afectează t11) | ||
+ | * corecturi checker - date de ieşire pentru cerinţa 3 (afectează t6, t7) | ||
+ | * menţiuni suplimentare pentru cerinţele 3, 4 | ||
+ | - 31/03/2018 02:00 | ||
+ | * explicaţie checker - t13 - nu se elimină altfel noduri din " | ||
+ | |||
===== Descriere ===== | ===== Descriere ===== | ||
Linia 23: | Linia 33: | ||
1. " | 1. " | ||
* pe primul rand se va găsi numărul de produse din supermarket | * pe primul rand se va găsi numărul de produse din supermarket | ||
- | | + | |
- | * un produs este descris de: { nume de tip char*; | + | * un produs este descris de următoarea structură:\\ |
+ | |||
+ | < | ||
+ | //produs listă supermarket - datele apar pe un rând, în această ordine | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
* campul stoc este 0 sau 1( 1=dacă acel produs ce va trebui cumpărat este în stocul supermarket-ului, | * campul stoc este 0 sau 1( 1=dacă acel produs ce va trebui cumpărat este în stocul supermarket-ului, | ||
Linia 30: | Linia 49: | ||
* reprezintă lista de cumpărături | * reprezintă lista de cumpărături | ||
* pe primul rand - numărul de produse ce trebuie achiziționate | * pe primul rand - numărul de produse ce trebuie achiziționate | ||
- | * pe următoarele linii se găsesc produsele caracterizate de: { nume; categorie; | + | * pe următoarele linii se găsesc produsele caracterizate de:\\ |
+ | |||
+ | < | ||
+ | //produs cumparat | ||
+ | char* nume; | ||
+ | char* categorie; | ||
+ | int cantitate; //ceruta | ||
+ | </ | ||
3. " | 3. " | ||
* pe prima linie conține 6 numere, 1 sau 0, | * pe prima linie conține 6 numere, 1 sau 0, | ||
- | * Pentru | + | * pentru |
- | * pe a doua linie bugetul disponibil pentru a realiza cerința a 2-a(se va folosi doar in cadrul celei de-a doua cerințe ) | + | * pe a doua linie bugetul disponibil pentru a realiza cerința a 3-a (se va folosi doar in cadrul celei de-a treia cerințe) |
**Structuri esențiale: | **Structuri esențiale: | ||
- | * o listă, " | + | * o listă, " |
- | * o listă, " | + | * o listă, " |
- | * o listă, " | + | * o listă, " |
- | * o stiva(bonus) | + | |
- | * un arbore | + | < |
+ | //produs listă cumpărături - datele apar pe un rând, în această ordine | ||
+ | char* nume; | ||
+ | char* categorie; | ||
+ | int cantitate; // | ||
+ | </ | ||
+ | * o stiva | ||
+ | * un arbore | ||
// | // | ||
Linia 48: | Linia 81: | ||
**Cerințe: | **Cerințe: | ||
- | **1.** Adăugarea produselor din " | + | **1.** Adăugarea produselor din " |
- | **2.** Eliminarea din " | + | **2.** Eliminarea din " |
- | **3.** Realizarea cumpărăturilor cu buget: completarea listei " | + | **3.** Realizarea cumpărăturilor cu buget: completarea listei " |
+ | < | ||
- | **4.** Realizarea cumpărăturilor cu buget nelimitat și compensare: | + | **4.** Realizarea cumpărăturilor cu buget nelimitat și compensare |
- | Dacă un produs din " | + | Dacă un produs din " |
| | ||
//Condiții pentru cerința 4:// | //Condiții pentru cerința 4:// | ||
- | * produsul cu care se completează are cel mai apropiat preț de cel dorit inițial. | + | * produsul cu care se completează are cel mai apropiat preț de cel dorit inițial |
- | * dacă cantitatea produsului | + | * dacă produsul |
- | * atunci: se cumpără din acesta | + | * atunci: se cumpără din acesta |
- | * altfel: se cumpără din acesta cantitatea | + | * altfel: se cumpără din acesta cantitatea |
- | | + | * Lista de cumpărături se va parcurge și se vor cumpăra în ordine: |
- | *produsul curent, compensarea pentru produsul curent, produsul următor, compensarea pentru | + | |
+ | |||
+ | < | ||
**5.** Arbore: | **5.** Arbore: | ||
- | Se va crea un arbore binar ordonat crescător (la parcurgerea RSD) după cantitate. | + | Folosind datele din " |
**6.** Stiva: | **6.** Stiva: | ||
- | Pentru fiecare produs P din lista1, sa se afle numărul de produse de pe poziții consecutive înainte de P care au prețul mai mare decat prețul lui P (numărul de produse la rand mai scumpe, mergand spre anterior) | + | Pentru fiecare produs P din "lista1" (supermarket), sa se afle numărul de produse de pe poziții consecutive înainte de P care au prețul mai mare decat prețul lui P (numărul de produse la rand mai scumpe |
- | * rezultatul se va adăuga într-un vector (poziția 0 pentru primul produs din lista și asa mai departe). | + | * rezultatul se va adăuga într-un vector (poziția 0 pentru primul produs, poziţia 1 pentru următorul |
**Fișiere Output:** | **Fișiere Output:** | ||
- | * în fișierul de output " | + | |
- | | + | |
- | * dacă se rezolva | + | * după fiecare afişare a unei structuri (listă, arbore, vector) urmează un final de linie; |
- | * dacă se rezolva | + | * rezultatele |
- | * dacă se rezolva | + | * dacă se rezolvă |
- | * dacă se rezolva | + | * dacă se rezolvă |
+ | * dacă se rezolvă | ||
+ | * dacă se rezolvă | ||
Linia 125: | Linia 163: | ||
<note warning> | <note warning> | ||
- | Așadar, executabilul obținut în urma compilării va avea numele | + | Așadar, executabilul obținut în urma compilării va avea numele |
<note tip> | <note tip> | ||
===== Reguli de trimitere ===== | ===== Reguli de trimitere ===== | ||
- | *Deadline-ul soft al temei este până pe 3/04, iar după această zi se aplică o depunctare de 20 pcte/ | + | *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ă (2 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:// |
==== Restricții ==== | ==== Restricții ==== | ||
- | * Implementarea se va face folosind liste | + | * Implementarea se va face folosind liste; |
- | * Nu se acceptă implementări cu tipuri de date statice; lucrăm | + | * Nu se acceptă implementări cu tipuri de date cu memorie alocată |
- | * Se va depuncta lucrul nemodularizat, folosind | + | * Se va depuncta lucrul nemodularizat |
- | * Memoria trebuie eliberată. Dacă nu se respectă această cerință depunctarea este de pana la 5/100 pcte. | + | * 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). |
- | * Ea va conține (direct în rădăcină): | + | * 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 " |
- | - Listă ordonată fișierele sursă | + | * Arhiva trimisă |
- | - Makefile-ul (cu regulile **make build** și **make clean**). Executabilul generat trebuie să se numească | + | - Makefile-ul (cu regulile **make build** și **make clean**). Executabilul generat trebuie să se numească |
- | - fișierul README în care va fi descrisă soluția problemei | + | - fișierul README în care va fi descrisă soluția problemei; |
- | * Dacă soluția voastră nu compilează, | + | * Dacă soluția voastră nu compilează, |
- | * Temele care vor fi copiate vor primi 0 pcte si studentii implicati | + | * Temele care vor fi copiate vor primi 0 pct şi studenţii implicaţi |