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 [2017/10/09 22:52] david.broscoteanu [Exemplu] |
teme2018:tema-1 [2018/03/13 20:27] mihai.iacov [Informații] |
||
---|---|---|---|
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 |
- | | + | |
- 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]] | ||
===== Descriere ===== | ===== Descriere ===== | ||
Linia 23: | Linia 24: | ||
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 | ||
- | * pe primul rand se va găsi numărul de produse din supermarket | + | * pe următoarele rânduri sunt informații despre toate produsele din supermarket, |
- | * conține | + | * un produs este descris de următoarea structură:\\ |
- | * un produs este descris de: { nume; categorie; | + | |
+ | < | ||
+ | //produs listă supermarket - datele apar pe un rând, în această ordine | ||
+ | char* nume; | ||
+ | char* categorie; | ||
+ | int pret; | ||
+ | int cantitate; | ||
+ | int stoc; | ||
+ | </ | ||
* 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 31: | Linia 40: | ||
* 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 49: | Linia 72: | ||
**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 | + | |
- | **BONUS** | + | < |
**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 133: | Linia 159: | ||
===== Reguli de trimitere ===== | ===== Reguli de trimitere ===== | ||
- | *Deadline-ul soft al temei este până pe zi/luna, iar după această zi se aplică o depunctare de 0,5p/zi. După zi/luna, tema nu va mai putea fi trimisă | + | *puteţi încărca mai multe soluţii, se va lua în considerare soluţia cu cel mai mare punctaj |
- | *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 | + | * Memoria trebuie |
- | * 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 0p | + | * 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. |