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-2 [2018/04/15 20:00] mihai.iacov [Descriere] |
teme2018:tema-2 [2018/04/16 02:01] mihai.iacov [Reguli pentru trimitere] |
||
---|---|---|---|
Linia 8: | Linia 8: | ||
- Deadline hard, **06 mai ora 23:59** (termen limită - **nu se obţin puncte** pe soluţiile trimise mai târziu) | - Deadline hard, **06 mai 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 poate fi descărcat de la această [[https:// | + | - Checker-ul offline poate fi descărcat de la această [[https://drive.google.com/ |
- Puteţi cere ajutor oricând la această adresă [[sda-ab-tema2@googlegroups.com|email]] | - Puteţi cere ajutor oricând la această adresă [[sda-ab-tema2@googlegroups.com|email]] | ||
Linia 20: | Linia 20: | ||
Flavius nu s-a înţeles foarte bine cu programarea şi nici acum nu e foarte priceput, aşa că s-a gândit să vă ceară ajutor cu codul sursă. | Flavius nu s-a înţeles foarte bine cu programarea şi nici acum nu e foarte priceput, aşa că s-a gândit să vă ceară ajutor cu codul sursă. | ||
- | ==== Cerinta | + | ==== Date de intrare |
- | TODO | + | Fişierul cu date de intrare va conţine următoarele date:\\ |
+ | - numărul de routere; | ||
+ | - pentru fiecare router, fiecare atribut pe câte un rând: | ||
+ | * nume router; | ||
+ | * IP router; | ||
+ | * numărul de pc-uri care se conectează la router; | ||
+ | - pentru fiecare pc care se conectează la router-ul curent, fiecare atribut pe câte un rând: | ||
+ | * nume pc; | ||
+ | * IP pc; | ||
+ | * stare (0 pentru închis, 1 pentru deschis); | ||
+ | - numărul de conexiuni între routere | ||
+ | - fiecare conexiune este descrisă pe câte un rând de următoarele, | ||
+ | * numele router-ului de la un capăt; | ||
+ | * numele router-ului de la celelalt capăt; | ||
+ | * " | ||
+ | - numărul de operaţii cerute; | ||
+ | - fiecare operaţie descrisă pe câte un rând. | ||
+ | ==== Cerinţe ==== | ||
+ | |||
+ | Ordinea în care sunt scrise operaţiile în fişierul de intrare este ordinea în care vor fi aplicate. Pentru toate operaţiile, | ||
Operațiile posibile asupra datelor din fișier vor fi: | Operațiile posibile asupra datelor din fișier vor fi: | ||
- | * **ping x.x.x.x x.x.x.x :** spune daca e conexiune | + | * **ping x.x.x.x x.x.x.x :** spune dacă este conexiune |
- | * **sipn x.x.x.x :** afiseaza | + | * **sipn x.x.x.x :** afişează |
- | * **si x.x.x.x :** afiseaza | + | * **si x.x.x.x :** afişează |
- | * **trace x.x.x.x x.x.x.x :** afiseaza | + | * **trace x.x.x.x x.x.x.x :** afişează |
- | * **up x.x.x.x :** dechide un PC | + | * **up x.x.x.x :** dechide un PC; |
- | * **lc x.x.x.x x.x.x.x :** distruge | + | * **lc x.x.x.x x.x.x.x :** distruge |
- | * **broke x.x.x.x :** inchide | + | * **broke x.x.x.x :** închide |
- | * **add x.x.x.x x.x.x.x :** adauga | + | * **add x.x.x.x x.x.x.x :** adaugă |
+ | |||
+ | ==== Date de ieşire ==== | ||
+ | |||
+ | Fişierul de ieşire va conţine rezultatele operaţiilor ce generează un răspuns. Rezultatele sunt scrise în ordinea în care sunt scrise operaţiile primite la intrare, fiecare rezultat este urmat de un final de linie. | ||
+ | |||
+ | - **ping** scrie unul din răspunsurile " | ||
+ | - **trace**, **si** şi **sipn** scriu ca răspuns o listă de IP-uri, separate între ele printr-un spaţiu. | ||
==== Exemplu ==== | ==== Exemplu ==== | ||
- | Flavius s-a simtit | + | Flavius s-a simţit |
- | === Date de intrare === | ||
<file date.in date.in> | <file date.in date.in> | ||
6 | 6 | ||
Linia 107: | Linia 133: | ||
NO | NO | ||
192.0.2.1 192.0.3.1 192.0.5.1 192.0.6.1 | 192.0.2.1 192.0.3.1 192.0.5.1 192.0.6.1 | ||
- | 192.0.1.2 | + | 192.0.2.2 |
192.0.1.1 192.0.3.1 192.0.5.1 192.0.4.1 192.0.6.1 192.0.2.1 | 192.0.1.1 192.0.3.1 192.0.5.1 192.0.4.1 192.0.6.1 192.0.2.1 | ||
OK | OK | ||
192.0.1.1 192.0.3.1 192.0.4.1 192.0.6.1 192.0.2.1 | 192.0.1.1 192.0.3.1 192.0.4.1 192.0.6.1 192.0.2.1 | ||
- | 192.0.1.1 192.0.3.1 192.0.4.1 192.0.2.1 | + | 192.0.1.1 192.0.3.1 192.0.4.1 192.0.2.1 |
</ | </ | ||
- | <note tip>**./network | + | <note tip>Fişierul executabil va fi rulat cu o comandă de forma:\\ |
+ | **./main date.in date.out** | ||
+ | </ | ||
- | ====Mai am niste chestii de scris trebuie sa le mai slefuiesc==== | ||
+ | ====Reguli pentru 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ă (**6 mai, ora 23:59**) | ||
+ | *Arhiva temei va avea numele // | ||
+ | *Arhiva trimisă conține (direct în rădăcină): | ||
+ | - fișierele sursă | ||
+ | - Makefile-ul (cu regulile **make build** și **make clean**). Executabilul generat trebuie să se numească **main** | ||
+ | - fișierul README în care va fi descrisă soluția problemei | ||
- | ====Reguli pentru trimitere==== | ||
- | *Deadline-ul soft al temei este până pe 25 martie, iar după această zi se aplică o depunctare de 0,5p/zi. După 31 martie, tema nu va mai putea fi trimisă | ||
- | *Arhiva temei va avea numele // | ||
=== Restricții: | === Restricții: | ||
- | *implementarea | + | *Implementarea pentru comanda **trace** |
- | *nu se acceptă implementări cu tipuri | + | *Nu se acceptă implementări cu memorie alocată static pentru tipurile |
- | *Nerespectarea regulilor | + | *Menţineţi cel puţin un nivel minimal |
- | *Se va depuncta lucrul nemodularizat, folosind | + | *Se va depuncta lucrul nemodularizat |
- | *Memoria trebuie | + | *Memoria trebuie |
- | *Ea va conține | + | *Dacă soluția voastră nu compilează, |
- | - Listă ordonată fișierele sursă | + | *Temele care vor fi copiate vor primi **0 pct**. Studenţii implicaţi vor figura pe blacklist-ul cursului |
- | - Makefile-ul (cu regulile **make buid** și **make clean**). Executabilul generat trebuie să se numească editor | + | |
- | - fișierul README în care va fi descrisă soluția problemei | + | |
- | *Dacă soluția voastră nu compilează, | + | |
- | *Temele care vor fi copiate vor primi 0p | + | |
- | *Se va acorda un punctaj parțial de 50p pentru setul de operații simple: op1, op2…. | + | |
- | *Celelalte operații se consideră operații complexe și reprezintă cealaltă cuantă | + | |