This is an old revision of the document!


Tema 3. Arhivare

Responsabili

  • Costin Carabaș

Termen de predare:

  • Deadline soft: TODO
  • Deadline hard: TODO

Introducere

În ultima vreme ați observat că spațiul de stocare în cloud (Google Drive, iCloud, One Drive) este limitat iar aceste servicii devin din ce în ce mai scumpe. Doriți să rezolvați această problemă folosind algoritmi de comprimare a fișierelor. Astfel, spațiul ocupat în cloud se va micșora, iar voi veți folosi mai eficient aceste servicii.

Cerinţe

Sarcina voastră este să implementaţi un program care să comprime / decomprime un fişier arbitrar, aplicând algoritmul Huffman. Puteți folosi un generator online de arbore Huffmann pentru a avea o reprezentare vizuală.

Pentru această temă folosiți acest arborele Huffman. El va fi

Scheletul de cod conține crearea unui arbore de tip Huffmann.

$ make
gcc -Wall -Werror -c tema3.c
gcc -Wall -Werror -c huff.c
gcc tema3.o huff.o -Wall -Werror -o tema3
 Char | Huffman code 
--------------------
  4   | 000000000
  6   | 000000001
  2   | 000000010
  3   | 000000011
  )   | 0000001
  b   | 000001
  (   | 0000100
  g   | 0000101
  v   | 000011
  u   | 0001
  i   | 001
  r   | 0100
  l   | 01010
  c   | 01011
  e   | 011
  p   | 10000
  o   | 10001
  n   | 1001
  ,   | 101000
  .   | 1010010
  z   | 10100110
  x   | 101001110
  j   | 1010011110
  1   | 1010011111
  d   | 10101
  f   | 101100
  s   | 101101
  m   | 10111
      | 110
  t   | 1110
  a   | 1111

Trimitere temă

Tema va fi trimisă folosind vmchecker, cursul Programarea Calculatoarelor (CB & CD).

Toate temele sunt testate în mod automat pe VMChecker. Autentificarea se face folosind numele de utilizator și parola de pe moodle / Teams.

Din meniul drop-down selectați cursul corespunzător; în cazul de față: Programarea Calculatoarelor (CB & CD). În meniul sidebar, din partea stângă a paginii, selectați tema pentru care veți face submisia.

Arhiva temei se va încărca pe checker folosind formularul de submisie din tabul Trimitere solutii.

Rezultatele vor fi disponibile în tabul Rezultate.
Citiți cu atenție informațiile afișate în Rezultate pentru a vă asigura că tema a fost rulată cu succes; o eroare comună este dată de faptul că conținutul arhivei nu respectă structura dorită (ex. fișierele sunt într-un alt director).

Punctajul final al temei este afișat la finalul informațiilor afișate în Rezultate.

Conținutul arhivei va fi următorul:

  1. Fișierele task1.c, task2.c, task3.c, task4.c, task5.c, utils.h care conține implementarea temei.
  2. Fișierul Makefile.
  3. Un fișier README în care descrieți rezolvarea temei.

  1. Arhiva trebuie să fie de tipul zip.
  2. Puteți utiliza regula zip din fișierul Makefile pentru a vă genera arhiva zip. Aceasta va adăuga fișierele Makefile, README și orice fișierele task1.c, task2.c, task3.c, task4.c, task5.c, utils.h din directorul curent.
  make zip
  

Nu includeţi fisierele checkerului în arhiva voastră. Nu folosiţi Makefile.checker pe post de Makefile în arhiva voastră: asta va duce la recursivitate infinita pe vmchecker. Puteti sa folosiţi direct makefile-ul prezent în arhivă (Makefile, nu Makefile.checker).

În cazul în care testele vă trec local, însă pică pe vmchecker cel mai probabil aveţi o sursă de ”undefined behavior in cod”. Pentru a vă asigura că scăpați de aceste probleme, compilaţi cu flagul de compilare `-Wall` și rezolvaţi toate warning-urile.

Listă depunctări

Lista nu este exhaustivă.

  • O temă care nu compilează și nu a rulat pe vmchecker nu va fi luată în considerare
  • O temă care nu rezolvă cerința și trece testele prin alte mijloace nu va fi luată în considerare
  • NU acceptăm teme copiate. În cazul unei teme copiate se scade punctajul aferent temei din punctajul total.
  • [-20.0]: Nerezolvarea tuturor erorilor și warningurilor de coding style

Întrebări


Dacă aveți nelămuriri, puteți să ne contactați pe forum tema 2 sau pe canalul Tema 2. La orice întrebare vom răspunde în maxim 24 de ore. Nu se acceptă întrebări în ultimele 24 de ore înainte de deadline.

programare/teme_2022/tema3_2022_cbd.1670967941.txt.gz · Last modified: 2022/12/13 23:45 by costin.carabas
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