Differences

This shows you the differences between two versions of the page.

Link to this comparison view

uso-ac:teme:tema-1 [2016/10/29 01:36]
lorena.dobrescu
uso-ac:teme:tema-1 [2017/10/21 17:14] (current)
tudor_cosmin.visan
Line 24: Line 24:
  
 <note important>​ <note important>​
-Deadline: **1 Noiembrie, ora 23:55**\\+Deadline: **27 Octombrie 2017, ora 23:55**\\
 Timp de lucru: **7 zile**\\ Timp de lucru: **7 zile**\\
-Punctaj: **0.puncte** din nota finală\\ +Punctaj: **0.puncte** din nota finală\\ 
-Formular pentru trimitere temă: https://​goo.gl/​UlkYBw\\+Formular pentru trimitere temă: https://​goo.gl/​oRrx2P\\
 </​note>​ </​note>​
  
-<​note>​ 
-Actualizări enunț:\\ 
- 
-  * S-a actualizat cerinta task-ului 5 
-</​note>​ 
  
 <​note>​ <​note>​
Line 45: Line 40:
 <​note>​ <​note>​
 Actualizări checker:\\ Actualizări checker:\\
-Versiunea curentă: <color red>**versiunea ​8**</​color>​ +  ​* **Actualizat checker la versiunea ​** 
- +      ​Adaugat test pentru ​verifica tipul arhivei.
-  * S-reparat un bug care putea cauza interpretarea gresita a task-ului 5 cand se modifica aparitia 100 a cuvantului ''​the''​ +
-  * Task05 user_experience++ +
-  * Improved checks for Task05 +
-  * S-a reparat un bug care genera cele 2 fisiere *.txt cu dimensiuni diferite la task05 +
-  * Rezolvare bug privind verificarile primei cerinte a taskului 5+
 </​note>​ </​note>​
  
 <note tip> <note tip>
-Toți studenții care răspund la întrebările colegilor de pe forum vor fi recompensați cu până la 10 karma points în WoUSO pentru fiecare temă în funcție de gradul de implicare. ​ 
- 
 Vă încurajăm ca atunci când găsiți soluția la o problemă pe care ați postat-o anterior pe forum să postați și soluția găsită. De asemenea dacă știți răspunsul la întrebările colegilor sunteți încurajați să le răspundeți. Vă încurajăm ca atunci când găsiți soluția la o problemă pe care ați postat-o anterior pe forum să postați și soluția găsită. De asemenea dacă știți răspunsul la întrebările colegilor sunteți încurajați să le răspundeți.
  
Line 70: Line 58:
   * Vim   * Vim
  
-===== Testare ​=====+===== Testarea și finalizarea temei =====
  
 {{section>​uso:​teme:​testare&​noheader&​nofooter}} {{section>​uso:​teme:​testare&​noheader&​nofooter}}
Line 79: Line 67:
  
 ==== Task 01 (15p) ==== ==== Task 01 (15p) ====
 +
 +<note warning>
 +
 +** ATENTIE! **
 +Dupa prima rulare a comenzii sudo uso check, trebuie sa dati comanda ''​sudo reboot''​! ​
 +
 +</​note>​
  
 Clonați în directorul ''/​home/​student''​ repository-ul disponibil la adresa ''​https://​github.com/​systems-cs-pub-ro/​uso''​. Directorul creat după clonare trebuie să aibă numele ''​uso''​. Clonați în directorul ''/​home/​student''​ repository-ul disponibil la adresa ''​https://​github.com/​systems-cs-pub-ro/​uso''​. Directorul creat după clonare trebuie să aibă numele ''​uso''​.
Line 84: Line 79:
 Adaugați în directorul ''​uso''​ următoarea structură de directoare și fișiere: ​ Adaugați în directorul ''​uso''​ următoarea structură de directoare și fișiere: ​
 <code bash> <code bash>
-TW Warhammer/ +Star Wars 
-├── ​Dwarfs+├── ​First Galactic Empire
-│   ​├── ​Baradun the Kin Lord+│   ├── ​Deathstar
-│   ​└── ​The Slayer King Ungrim Ironfist+│   └── ​TIE Fighter
-└── ​Greenskins+└── ​Rebel Alliance
-    ├── ​Azhag The Slaughterer+    ├── ​Millenium Falcon
-    ├── ​Grimgor Ironhide/ +    ​│   ​├── ​chewie.c 
-    └── ​High King Thorgrim Grudgebearer/​ +    ​│   ​└── ​han.c 
-        └── ​The Great Book of Grudges+    ├── ​X-Wing
-            └── ​book.c+    ​│   ​└── ​luke.c 
 +    └── Y-Wing/ 
 </​code>​ </​code>​
  
Line 99: Line 96:
 Directoarele au după nume caracterul ''/''​ (slash). Directoarele au după nume caracterul ''/''​ (slash).
 </​note>​ </​note>​
- 
-Adăugați în //git// toate directoarele și fișierele create și efectuați un commit cu mesajul ''​initial commit''​ (Hint: [[https://​try.github.io|try.github.io]] și [[http://​git-scm.com/​doc|git-scm.com/​doc]]) 
 <​note>​ <​note>​
-Întreaga ierarhie creată să facă parte din commit! Aveți grijă la adăugarea de directoare! (Hint: [[https://​git.wiki.kernel.org/​index.php/​GitFaq]], ''​empty directories''​)+Adaugati directorul Star Wars si toate fisierele continute ​ intr-o arhiva cu numele archive.tar.gzde tip gzip compressed care sa se afle in directorul ​''​uso''​.  
 + ​(Hint:​ man tar)
 </​note>​ </​note>​
 +
 +
 +
 +
 ==== Task 02 (15p) ==== ==== Task 02 (15p) ====
  
 Aflându-vă în directorul ''​uso'',​ folosiți **o singură comandă** pentru fiecare dintre cerințele următoare: Aflându-vă în directorul ''​uso'',​ folosiți **o singură comandă** pentru fiecare dintre cerințele următoare:
-  - Mutați ​directorul ​''​High King Thorgrim Grudgebearer''​ în ''​Dwarfs''​. +  - Mutați ​fisierul ​''​luke.c''​ din ''​X-Wing''​ în ''​Millenium Falcon''​. 
-  - Redenumiți ''​book.c''​ în ''​book-of-grudges.c''​. +  - Redenumiți ''​chewie.c''​ în ''​chewbacca.c''​. 
-  - Redenumiți ''​Baradun the Kin Lord''​ în ''​Baradin the Kin Lord''​.+  - Redenumiți ''​TIE Fighter ​''​ în ''​TIE Advanced''​.
  
-Adăugați toate modificarile în git și efectuați un commit cu mesajul ''​Settle Grudge''​. 
 <note important>​ <note important>​
  
Line 118: Line 117:
  
 <note warning> <note warning>
-După rezolvarea cerințelor acestui task, nu ștergeți sau modificați conținutul directorului ''​~/​uso/​TW Warhammer/''​. Acesta trebuie să râmână în această formă pentru verificările ulterioare ale checkerului. Veți pierde punctele obținute pentru acest task dacă faceți modificări și va fi nevoie de refacerea taskului.+După rezolvarea cerințelor acestui task, nu ștergeți sau modificați conținutul directorului ''​~/​uso/​Star Wars/''​. Acesta trebuie să râmână în această formă pentru verificările ulterioare ale checkerului. Veți pierde punctele obținute pentru acest task dacă faceți modificări și va fi nevoie de refacerea taskului.
 </​note>​ </​note>​
  
Line 124: Line 123:
  
 <note warning> <note warning>
-Pentru acest task aveți nevoie de fișierul obiect ''​thorgrim.o''​ aflat la adresa:+Pentru acest task aveți nevoie de fișierul obiect ''​force.c''​ aflat la adresa: 
 + 
 +https://​raw.githubusercontent.com/​systems-cs-pub-ro/​uso/​master/​tema1/​force.c 
 + 
 +Hint: ''​man wget''​
  
-https://​github.com/​systems-cs-pub-ro/​uso/​blob/​master/​tema1/​thorgrim/​thorgrim.o?​raw=true 
 </​note>​ </​note>​
 +Creați ​ directorul ''​task3''​ în directorul ''​uso'',​ și descărcați în acesta fișierul ''​force.c''​.
  
-Creați directorul ​''​~/​uso/​task3/​''​ și descărcați fișierul obiect ​''​thorgrim.o'' ​(Hint: ​''​man wget''​) în directorul creat anterior. Fișierul obiect ​''​thorgrim.o'' ​conține un apel al funcției ​''​intro_speech()''​ de tip ''​void''​. ​Funcția ​**nu** a fost implementată ​în fisierul obiect descărcat+Folosind o singură comanda, compilați fisierul sursă ​''​force.c''​ în executabilul ''​force''​ și păstrați toate fisierele intermediare (''​force.i''​''​force.o'' ​si ''​force.s''​). 
 + 
 +Păstrați argumentul/​argumentele comenzii într-un fișier separat, numit ''​options.txt''​. ​ 
 +<​note>​ 
 +**NU** dați argumentul/​argumentele direct ​în linia de comanda (hint @). 
 +</​note>​
  
-Fără a modifica fișierul obiect ''​thorgrim.o'',​ trebuie să implementați funcția ''​void intro_speech()''​ într-un fișier sursă ''​quest.c''​. Funcția trebuie să afișeze textul ''​Thorgrim before battle: ''​ 
  
-Fișierul ''​quest.c''​ se va compila în fișierul obiect ''​quest.o''​ și apoi se va genera executabilul ''​battle''​ folosind atât fisierul obiect ''​theorgrim.o'',​ cât si fișierul obiect ''​quest.o''​. Pentru a vi se puncta acest task, trebuie ca fisierele ''​thorgrim.o''​ (nemodificat) , ''​quest.c'',​ ''​quest.o''​ și ''​battle''​ să existe în directorul ''​~/​uso/​task3''​. 
  
 ==== Task 04 (25p) ==== ==== Task 04 (25p) ====
  
-Creați un fișier Makefile cu numele ''​Makefile''​ care generează executabilul ''​battle'',​ folosind atât fișierul obiect ''​thorgrim.o'',​ cât și fisierul obiect ''​quest.o''​ obținut în urma compilării sursei ''​.c''​ implementată anterior. La primirea oricăreia dintre comenzile ''​make''​ sau ''​make build''​ trebuie să se genereze fișierul executabil ''​battle'',​ iar în momentul rulării acestuia trebuie să se afișeze textul: ​ 
-<​note>​ 
-Thorgrim before battle: There are grudges to settle and new entries in the 'Book of Grudges'​ to write! 
-</​note>​ 
 <note important>​ <note important>​
- +Veti avea nevoie de fisierele ''​light.o''​ ''​sound.h''​ si ''​sound.c'',​ ce pot fi descarcate de la adresele \\ 
-Textul se află pe **singură linie**.+''​https://​github.com/​systems-cs-pub-ro/​uso/​raw/​master/​tema1/​light.o''​ \\ 
 +''​https://​raw.githubusercontent.com/​systems-cs-pub-ro/​uso/​master/​tema1/​sound.c''​ 
 +''​https://​raw.githubusercontent.com/​systems-cs-pub-ro/​uso/​master/​tema1/​sound.h''​ \\
 </​note>​ </​note>​
  
-Adăugați o regulă în Makefile ​numită ​''​run''​ care recompilează întreg programuldacă este cazul, iar apoi îl ruleazăDe asemeneaadăugați ​și o regulă ''​clean'' ​care șterge ​fișierele obiect **create de voi** și executabilul creat.+Creați un fișier ​Makefile ​cu numele ​''​Makefile''​ in directorul ''​task3''​ care generează executabilul ''​fight''​folosind atât fișierul obiect ''​light.o''​cât și fisierul obiect ''​sound.o''​ obținut în urma compilării sursei ​''​sound.c'' ​implementată anterior. La primirea oricăreia dintre comenzile ''​make''​ sau ''​make build''​ trebuie să se genereze ​fișierul executabil ''​fight''​.
  
 +Adăugați de asemenea o regulă ​ numită ''​optim''​ care să genereze un executabil optimizat la nivelul O2 (Hint ''​man gcc''​ ).
 +Adăugați o regulă în Makefile numită ''​run''​ care recompilează întreg programul, dacă este cazul, iar apoi îl rulează. De asemenea, adăugați și o regulă ''​clean''​ care șterge fișierele obiect **create de voi** și executabilul creat.
 +<​note>​
 +Programul trebuie sa fie recompilat doar dacă fisierele date sunt modificate! ​
 +</​note>​
 <​note>​ <​note>​
 Acest task se punctează **doar** dacă se folosesc, oriunde este posibil, ''​automatic variables''​. Acest task se punctează **doar** dacă se folosesc, oriunde este posibil, ''​automatic variables''​.
Line 156: Line 165:
 ==== Task 05 (25p) ==== ==== Task 05 (25p) ====
  
-După rularea ''​sudo uso check''​ veți găsi în directorul ''​~/​uso''​ următoarele fișiere: ''​origin-of-the-world.txt''​ și ''​edit_origin-of-the-world.txt''​. Scopul acestui exercițiu este de a vă familiariza cu editorul de text ''​vim''​. Va trebui să editați în ''​vim''​ fișierul ''​edit_origin-of-the-world.txt''​ astfel încât să respecte următoarele criterii:+După rularea ''​sudo uso check''​ veți găsi în directorul ''​~/​uso''​ următoarele fișiere: ''​timeline.txt''​ și ''​edit_timeline.txt''​. Scopul acestui exercițiu este de a vă familiariza cu editorul de text ''​vim''​. Va trebui să editați în ''​vim''​ fișierul ''​edit_timeline.txt''​ astfel încât să respecte următoarele criterii:
   - Ștergeți liniile 4, 24, 42. Faceți acești pași în ordine, fiind vorba despre linia 24 de după prima ștergere, apoi linia 42 după cele două ștergeri.   - Ștergeți liniile 4, 24, 42. Faceți acești pași în ordine, fiind vorba despre linia 24 de după prima ștergere, apoi linia 42 după cele două ștergeri.
-  - Înlocuiți apariția ​100 a cuvântului ''​the''​ cu ''​the one and only''​ (exact match ''​the''​). +  - Înlocuiți apariția ​74 a cuvântului ''​is ''​ cu ''​is sadly''​ (exact match ''​is''​). 
-  - Înlocuiți apariția ​10 a cuvântului ''​Dwarfs''​ cu ''​Dwarfs(Tough Little Bastards)''​. +  - Înlocuiți apariția ​20 a cuvântului ''​Sith''​ cu ''​Sith(for now)''​. 
-  - Modificați toate aparițiile cuvântului 'war' în ''​warPeace''​. +  - Modificați toate aparițiile cuvântului ''​BBY'​' în ''​BeforeBY''​. 
-  - Aflați de câte ori apare cuvântul ''​king''​ în text, notați numărul de apariții în fișierul ''/​home/​student/​uso/​info_text'',​ pe prima linie și înlocuiți cu ''​MVP''​ în text.+  - Aflați de câte ori apare cuvântul ''​King''​ în text, notați numărul de apariții în fișierul ''/​home/​student/​uso/​info_text'',​ pe prima linie și înlocuiți cu ''​MVP''​ în text.
  
-<​note ​warning> +<​note ​important
- +Pentru a primi punctaj ​trebuie ​sa urmati ​task-urile ​in ordine!
-Pentru a primi punctajul ​trebuie ​să urmați ​task-urile ​în ordine!+
 </​note>​ </​note>​
- 
 ==== Task obligatoriu pentru toate temele (0p) === ==== Task obligatoriu pentru toate temele (0p) ===
  
 Asigurați-vă că ați submis tema și ați încărcat codul aferent submisiei în formularul din secțiunea de [[#​informatii_generale|Informații generale]]. Acest lucru este necesar ori de câte ori modificați tema și o submiteți din nou, până la termenul limită. În caz contrar, punctajul aferent temei va fi nul (0 puncte). Asigurați-vă că ați submis tema și ați încărcat codul aferent submisiei în formularul din secțiunea de [[#​informatii_generale|Informații generale]]. Acest lucru este necesar ori de câte ori modificați tema și o submiteți din nou, până la termenul limită. În caz contrar, punctajul aferent temei va fi nul (0 puncte).
uso-ac/teme/tema-1.1477694212.txt.gz · Last modified: 2016/10/29 01:36 by lorena.dobrescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0