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 | ||
|
teme2018:tema-1 [2018/03/09 10:18] andreea.udrea [Cerințe] |
teme2018:tema-1 [2018/04/02 21:28] (curent) 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 |
| - | | + | |
| - 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 " | ||
| + | - 02/04/2018 21:30 | ||
| + | * prelungire termen limită cu 12 ore (de la 2 aprilie, ora 23:59, la **3 aprilie, ora 11:59**) | ||
| + | |||
| ===== Descriere ===== | ===== Descriere ===== | ||
| Linia 23: | Linia 35: | ||
| 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 51: | ||
| * 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 83: | ||
| **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 165: | ||
| <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 |