This is an old revision of the document!
Responsabili: Eugen Vasilescu
Termen de predare: 11 decembrie 2014, ora 23:55
Criptarea este procesul de ascundere a informatiei pentru a o face ilizibila fara cunostinte speciale. Una dintre cele mai simple metode de criptare este criptarea prin deplasare. Astfel, avand un alfabet si o cheie k definim criptare prin deplasare inlocuirea fiecarei litere din textul initial cu o litera care se afla in alfabet la distanta k fata de cea inlocuita (alfabetul este circular, dupa z urmeaza a).
Subpunct a
Dandu-se o cheie si un un text criptat (format din litere mari, litere mici si semne de punctuatie), se doreste decriptarea acestuia folosind metoda prezentata anterior.
Exemplu: Textul “Fsf fwj rjwj.” cu o cheie de 5 devine “Ana are mere.”.
Subpunct b
Dupa realizarea decriptarii de la punctul a) se doreste eliminarea tuturor prefixelor cuvintelor din text. Astfel, avand un sir de prefixe introdus de la tastatura, pentru fiecare cuvant din text cautam prefixul de lungime maxima(daca exista) si il eliminam. De asemenea, cuvintele nou formate trebuie sa contina minim 2 caractere (cuvantul “prea” nu va deveni “a” daca avem “pre” in lista de prefixe).
Exemplu: Cuvantul “interschimbare” devine “schimbare” daca prefixul “inter” se afla in lista. Daca in lista s-ar afla si prefixul “in”, cuvantul ar fi fost transformat tot in “schimbare” deoarece se ia in calcul prefixul cu lungime mai mare.
Subpunct c
Dupa realizarea modificarilor de la punctul b) se doreste aflarea celui mai frecvent cuvant din text si numarul de aparitii al acestuia, fara a se face diferenta intre litere mici si litere mari. In cazul in care avem mai multe cuvinte cu acelasi numar de aparitii se va afisa primul din punct de vedere lexicografic. Cuvantul gasit va fi scris doar cu litere mici.
Exemplu: Textul “Schimbare,Prefacut. nefacut interschimbare REFACUT,,prea” se transforma in “Schimbare,facut. facut schimbare FACUT,,ea” daca avem prefixele “pr re in inter ne p pre”, iar cel mai frecvent cuvant este “facut”, care apare de 3 ori.
Fisierul de intrare va contine 3 linii. Prima contine valoarea cheii cu care va fi realizata decriptarea, cea de-a 2a textul criptat, in timp ce ultima reprezinta o succesiune de prefixe separate printr-un singur spatiu.
Se vor afisa 3 linii, corespunzatoare rezultatelor celor 3 cerinte. Prima linie va contine textul decriptat, cea de-a 2a textul decriptat si modificat, iar ultima cel mai frecvent cuvand din text, precum si numar de aparitii al acestuia.
5 Xhmnrgfwj,Uwjkfhzy. sjkfhzy nsyjwxhmnrgfwj WJKFHZY,,uwjf pr re in inter ne p pre
3 suh; Qxph: SUHQxph: QXPH ? SurQXPH sur uHQxph uhq!! pr anti pro des re in pre
Schimbare,Prefacut. nefacut interschimbare REFACUT,,prea Schimbare,facut. facut schimbare FACUT,,ea facut 3
pre; Nume: PRENume: NUME ? ProNUME pro rENume ren!! pre; Nume: Nume: NUME ? NUME pro Nume ren!! nume 5
Makefile-ul va conține 2 target-uri: build și clean.
user@hostname ~ $ ./tema2 < input > output
Fișierul sursă va fi trimis împreună cu Makefile-ul și un README (unde studentul va specifica pașii urmați pentru rezolvarea temei sau alte informații relevante). Aceste fișiere vor trebui arhivate (arhivă de tip zip), iar numele arhivei trebuie sa aibă următoarea formă:
Grupa_Nume_Prenume_Tema1.zip Eg: 312CB_Popescu_Mircea_Tema1.zip
Checkerul poate fi rulat folosind comanda “bash checker.sh” pentru a verifica toate testele sau “bash checker.sh numarTest” pentru verificarea corectitudinii unui singur test.
ATENȚIE: Checker-ul, fișierele de input și cele de referință trebuie să se afle în același folder cu sursa.