Tema 1

Draft

Informații generale

În urma informărilor de pe forumul temei 0, vă recomandăm următoarele:

  • Folosiți thread-urile de discuții existente în cadrul forumului, fără a crea altele, atât în forumul pentru Discuții Generale cât și în forumul temei. În consecință, thread-urile (subiectele de discuții) nou create vor fi șterse.
  • Căutați informația pe care doriți să o obțineți de pe forum, înainte să puneți o întrebare. De cele mai multe ori, cineva a mai întrebat același lucru. În fiecare thread al forumului aveți informații despre cum puteți căuta în forum.
  • În cazul în care doriți să publicați un screenshot, folosiți site-uri pentru partajarea gratuită a imaginilor, precum imgur sau alternativele sale. Dorim să păstrăm o parcurgere ușoară a forumului, din acest motiv, orice poză inserată în răspunsuri, va fi ștearsă.
  • Urmăriți atât forumul cât și modificările aduse enunțului/checker-ului, modificări ce sunt publicate și explicate în paragrafele de mai jos.
  • Secțiunea de Testare vă explică cum să copiați codul primit de utilitarul uso în momentul în care efectuați submit, fără să în introduceți de mână în formularul temei, evitând astfel erorile de transcriere.

Deadline: 4 Noiembrie, ora 23:55

Timp de lucru: 7 zile

Punctaj: 0.6 puncte din nota finală

Formular de trimitere temă: TODO

Tema va fi considerată rezolvată la data trimiterii codului pe site. NU se acceptă întârzieri!

Actualizări enunț:

  • 27 Octombrie 2015, 23:55 - Publicare

Actualizări utilitar uso:

Versiunea curentă: v16 - “Gold Blackbird”

  • Nu există actualizări pentru utilitarul uso

Actualizări checker:

Versiunea curentă: versiunea 1

Cunoștințe evaluate

  • Navigarea in sistemul de fisiere
  • Folosirea utilitarului git
  • Compilarea programelor
  • Crearea de Makefile

Testare

Task-uri

Este STRICT interzisă publicarea pe forum a comenzilor sau pozelor care fac parte din rezolvarea parțială sau integrală a temei ori a unui task. La prima abatere, la decizia oricărui membru al echipei de USO, studentul primește un avertisment, iar punctajul obținut pe temă îi este redus cu valoarea punctajului pe task-ul respectiv. Începând cu a doua abatere, se va anula întregul punctaj pe tema curentă, temele anterioare sau cele viitoare nefiind afectate. Abaterile rămân valabile pe tot parcursul semestrului, acestea nefiind anulate în momentul în care se publică o temă nouă. Ori de câte ori se încalcă această regulă, se va ține cont de istoricul abaterilor. Abaterile vor fi actualizate în catalog.

Task 00 (0p)

Creați fișierul directie.txt în directorul /home/student/. Adăugați pe prima linie a fișierului directie.txt direcția din care faceți parte (CTI, FILS sau IS), ca în exemplul de mai jos.

Dacă acest fișier există deja, fiind creat la o temă anterioară, săriți peste acest task.

Exemplu:

student@vm-uso ~ $ pwd
/home/student
student@vm-uso ~ $ echo "CTI" > directie.txt
student@vm-uso ~ $ cat directie.txt
CTI

Task 01 (15p)

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.

Adaugați în directorul uso urmatoarea structură de directoare și fișiere:

  Star Wars/
  ├── Empire Forces/
  │   ├── Chewie/
  │   │   ├── AAARGH.c
  │   │   └── Han Solo/
  │   ├── Darth Maul/
  │   └── Darth Vader/
  └── Rebel Forces/
      ├── Luke Skywalker/
      ├── Obi-Wan Kenobi/
      └── Yoda/

Directoarele au după nume caracterul / (slash)

Adaugați toate fișierele în git și efectuați un commit cu mesajul initial commit (Hint: try.github.io și git-scm.com/doc)

Task 02 (15p)

Aflandu-va in directorul uso, folositi o singura comanda pentru fiecare din cerintele urmatoare:

  1. mutati directorul Chewie in Rebel Forces
  2. redenumiti AAARGH.c in speak-chewie.c
  3. mutati Han Solo in Rebel Forces

Adaugați toate modificarile în git și efectuați un commit cu mesajul Millennium Falcon

Cerintele trebuie rezolvate in ordine.

Task 03 (20p)

Pentru acest task aveți nevoie de fișierul obiect chewie.o aflat la adresa https://github.com/systems-cs-pub-ro/uso/blob/master/tema1/chewie/chewie.o?raw=true

Creați directorul ~/uso/task3/ și descărcați fișierul obiect chewie.o (Hint: man wget) în directorul anterior creat. Fișierul obiect chewie.o conține un apel la funcția translate() de tip void. Funcția nu a fost implementată în fisierul obiect descarcat.

Fără a modifica fișierul obiect chewie.o, trebuie să implementați funcția void translate() într-un fișier sursă han_solo.c care să afișeze textul Han: Chewie said hi.

Fișierul han_solo.c se va compila in fișierul obiect han_solo.o si apoi sa va genera executabilul chewbacca folosind atat fisierul obiect chewie.o cat si fisierul obiect han_solo.o.

Task 04 (25p)

Se cere să creați un fișier Makefile cu numele Makefile care generează executabilul chewbacca folosind atât fișierul obiect chewie.o cât și fisierul obiect han_solo.o obținut în urma compilării sursei .c implementată anterior. La primirea oricăreia dintre comenzile make sau make build va fi generat fișierul executabil chewbacca iar în momentul rulării acestuia se va afișa textul :

Chewbacca: AAAAARGH

Han: Chewie said hi.

Adăugați o regulă numită run care recompilează întreg programul, dacă e cazul, apoi îl rulează.

Acest task se puncteaza doar daca se foloseste oriunde este posibil automatic variables

Hint: http://lmgtfy.com/?q=make+automatic+variables

Task 05 (25p)

Dupa rularea sudo uso start veti gasi in directorul uso urmatoarele fisiere: returnofthejedi.txt si edit_returnofthejedi.txt. Scopul acestui exercitiu este de a va familiariza cu editorul de text vim. Va trebui sa editati in vim fisierul edit_returnofthejedi.txt astfel incat sa respecte urmatoarele criterii:

  1. stergeti liniile 42, 424, 4242
  2. inlocuiti aparitia 100 a cuvantului Luke cu The chosen one
  3. inlocuiti aparitia 42 a cuvantului Vader cu Vader(father figure)
  4. modificati toate aparitiile cuvantului THREEPIO in 3PO
  5. aflati de cate ori apare cuvantul corrupt in text, notati numarul de aparitii in fisierul /home/student/uso/info_text pe prima linie si inlocuiti cu unprincipled in text

Urmati task-urile in ordine !!!

uso/internal/tema-1.txt · Last modified: 2016/10/08 13:48 by razvan.deaconescu
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