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 [2017/10/04 00:00] daniel_serban.cozma [Exemplu] |
teme2018:tema-2 [2018/05/02 00:17] mihai.iacov [Date de ieşire] |
||
---|---|---|---|
Linia 3: | Linia 3: | ||
* Înțelegerea conceptului de graf și a modurilor de parcurgere aferente | * Înțelegerea conceptului de graf și a modurilor de parcurgere aferente | ||
* Aplicarea algoritmilor studiați pe topologie graf într-un exemplu practic | * Aplicarea algoritmilor studiați pe topologie graf într-un exemplu practic | ||
- | * Înțelegerea unor anumite concepte din retelistica. | + | * Înțelegerea unor anumite concepte din reţelistică. |
+ | |||
+ | ==== Informaţii ==== | ||
+ | - 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:// | ||
+ | - Checker-ul offline poate fi descărcat de la această [[https:// | ||
+ | - Puteţi cere ajutor oricând la această adresă [[sda-ab-tema2@googlegroups.com|email]] | ||
+ | |||
+ | ==== Modificări temă==== | ||
+ | - 30/04/2018 19:40 | ||
+ | * corectură enunţ - cerinţe - comanda add primeşte şi distanţa pentru legătură, nu doar ip-urile; | ||
- | ==== Informatii ==== | ||
- | * Deadline soft, dd aprilie ora hh:mm | ||
- | * Termen final de trimitere d m ora hh:mm (depunctare de XXpt/zi, maxim Xp depunctare). | ||
- | *Trimiterea temelor se face pe platforma vmchecker (folosiți credențialele de pe acs.curs.pub.ro). | ||
==== Descriere ==== | ==== Descriere ==== | ||
- | Flavius e un student pasionat al Facultatii | + | Flavius e un student pasionat al Facultăţii |
- | La CISCO, el a invatat | + | La CISCO, el a învăţat |
- | Afland ca la baza ideii de OSPF se afla algoritmul lui Dijkstra, algoritm pe care il va studia la cursul de SDA, i-a venit o idee. | + | Aflând că la baza ideii de OSPF se află algoritmul lui Dijkstra, algoritm pe care îl va studia la cursul de SDA, i-a venit o idee. |
- | El s-a gandit sa simuleze o retea ce are la baza protocolul OSPF, pentru a aprofuda algoritmul lui Dijkstra (pentru cursul de SDA si, mai ales, pentru el). | + | El s-a gândit să simuleze o reţea |
{{ : | {{ : | ||
- | Din pacate, saracul | + | Din păcate, săracul |
- | Flavius nu s-a inteles | + | Flavius nu s-a înţeles |
- | ==== 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 |
+ | |||
+ | ==== 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 142: | ||
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ă | + | |