Unelte utilizator

Unelte site


teme2018:tema-2

Diferențe

Aici sunt prezentate diferențele dintre versiunile selectate și versiunea curentă a paginii.

Link către această vizualizare comparativă

Ambele părți revizuirea anterioară Versiuni anterioare
Urmatoarea versiune
Versiuni anterioare
teme2018:tema-2 [2018/04/15 20:43]
mihai.iacov [Reguli pentru trimitere]
teme2018:tema-2 [2018/05/02 00:20] (curent)
mihai.iacov [Modificări temă]
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://vmchecker.cs.pub.ro/|vmchecker]] (folosiți numele de utilizator şi parola de pe http://acs.curs.pub.ro).   - Trimiterea temelor se face pe platforma [[https://vmchecker.cs.pub.ro/|vmchecker]] (folosiți numele de utilizator şi parola de pe http://acs.curs.pub.ro).
-  - Checker-ul offline poate fi descărcat de la această [[https://google.roTODO adresă]] +  - Checker-ul offline poate fi descărcat de la această [[https://drive.google.com/open?id=1xOL5eymB_rQbzF_LpJVwG1e-2zYlMUjQ|adresă]] 
   - 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]]
 +
 +==== 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;
 +  - 02/05/2018 00:20
 +     * menţiuni suplimentare - format date ieşire - ordinea în care sunt verificate ip-urile;
 +
 +
  
 ==== Descriere ==== ==== Descriere ====
Linia 20: Linia 28:
 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ă.
  
-==== Cerinţe ====+==== 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, separate print-un spaţiu: 
 +    * numele router-ului de la un capăt; 
 +    * numele router-ului de la celelalt capăt; 
 +    * "distanţa" (număr întreg) dintre router-e; 
 +  - 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, pc-urile sau router-ele sunt identificate prin IP.
  
 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 dacă este conexiune între două staţii +  * **ping x.x.x.x x.x.x.x :** spune dacă este conexiune între două staţii (ţine cont de conexiunile dintre toate router-ele şi de stările capetelor); 
-  * **sipn x.x.x.x :** afişează routerele cu care ai legatură directă +  * **sipn x.x.x.x :** afişează routerele cu care ai legatură directă; 
-  * **si x.x.x.x :** afişează ce PC-uri sunt conectate direct la router+  * **si x.x.x.x :** afişează ce PC-uri sunt conectate (au starea = 1) direct la router;
   * **trace x.x.x.x x.x.x.x :** afişează traseul de la echipament la echipament (ip-urile routerelor ce formează "drumul cel mai scurt")   * **trace x.x.x.x x.x.x.x :** afişează traseul de la echipament la echipament (ip-urile routerelor ce formează "drumul cel mai scurt")
-  * **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 legătura dintre 2 routere +  * **lc x.x.x.x x.x.x.x :** distruge legătura dintre 2 routere; 
-  * **broke x.x.x.x :** închide un PC  +  * **broke x.x.x.x :** închide un PC; 
-  * **add x.x.x.x x.x.x.x :** adaugă o legătură între 2 routere +  * **add x.x.x.x x.x.x.x d:** adaugă o legătură între 2 routere, cu "distanţa" d; 
 + 
 +==== 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 "OK" sau "NO"; 
 +  - **trace**, **si** şi **sipn** scriu ca răspuns o listă de IP-uri, separate între ele printr-un spaţiu. 
 + 
 +<note>În cazul în care există **mai multe soluţii teoretic corecte**, comenzile verifică IP-urile vecinilor sau PC-urilor în **ordinea în care apar în fişierul de intrare**, în zona în care sunt definite routerele şi pc-urile (spre exemplu, dacă routerul R1 are vecinii R2 şi R3, iar R2 este definit înaintea lui R3 în fişierul de intrare, atunci R2 va fi verificat primul când sunt exploraţi vecinii lui R1). 
 +</note>
  
 ==== Exemplu ==== ==== Exemplu ====
Linia 39: Linia 76:
  
  
-=== Date de intrare === 
 <file date.in date.in> <file date.in date.in>
 6 6
Linia 107: Linia 143:
 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  
 </file> </file>
  
 <note tip>Fişierul executabil va fi rulat cu o comandă de forma:\\ <note tip>Fişierul executabil va fi rulat cu o comandă de forma:\\
-**./network date.in date.out**+**./main date.in date.out**
 </note> </note>
  
- 
- 
-====Mai am niste chestii de scris trebuie sa le mai slefuiesc==== 
  
  
Linia 131: Linia 165:
 *Arhiva trimisă conține (direct în rădăcină): *Arhiva trimisă conține (direct în rădăcină):
   - fișierele sursă   - fișierele sursă
-  - Makefile-ul (cu regulile **make build** și **make clean**). Executabilul generat trebuie să se numească **network**+  - 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   - fișierul README în care va fi descrisă soluția problemei
  
Linia 144: Linia 178:
 *Dacă soluția voastră nu compilează, dar ideea este bună și trimiteți o încercare de implementare, puteți primi până la **20 pct** (din 100). *Dacă soluția voastră nu compilează, dar ideea este bună și trimiteți o încercare de implementare, puteți primi până la **20 pct** (din 100).
 *Temele care vor fi copiate vor primi **0 pct**. Studenţii implicaţi vor figura pe blacklist-ul cursului de SDA. *Temele care vor fi copiate vor primi **0 pct**. Studenţii implicaţi vor figura pe blacklist-ul cursului de SDA.
-*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ă de 50p din punctajul total al temei, iar din această categorie fac parte: op1, op2….. 
  
  
teme2018/tema-2.1523814238.txt.gz · Ultima modificare: 2018/04/15 20:43 de către mihai.iacov