Differences

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

Link to this comparison view

programare:teme_2014b:tema2 [2014/11/27 06:44]
eugen.vasilescu [Observații]
programare:teme_2014b:tema2 [2014/12/09 22:56] (current)
eugen.vasilescu [Trimiterea temei]
Line 9: Line 9:
 ===== Introducere =====  ===== Introducere ===== 
  
-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 ​fata de cea inlocuita ​(alfabetul este circular, dupa z urmeaza ​a). +Criptarea este procesul de ascundere a informației ​pentru a o face ilizibilă fără cunoștințe ​speciale. Una dintre cele mai simple metode de criptare este [[http://​en.wikipedia.org/​wiki/​Caesar_cipher | criptarea prin deplasare]]. Astfel, ​având ​un alfabet ​și o cheie kdefinim criptare prin deplasare ​ca înlocuirea fiecărei ​litere din textul ​inițial ​cu o literă ​care se află în alfabet la distanță ​față ​de cea înlocuită ​(alfabetul este circular, dupa z urmează ​a). 
  
  
Line 16: Line 16:
 **Subpunct 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. ​+Dându-se o cheie și un un text criptat (format din litere mari, litere mici și semne de punctuație), se dorește ​decriptarea acestuia folosind metoda ​prezentată ​anterior. ​
  
 **Exemplu:​** ​   Textul "Fsf fwj rjwj." cu o cheie de 5 devine "Ana are mere."​. **Exemplu:​** ​   Textul "Fsf fwj rjwj." cu o cheie de 5 devine "Ana are mere."​.
Line 22: Line 22:
 **Subpunct b** **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 existasi il eliminam. De asemenea, cuvintele nou formate trebuie ​sa contina ​minim 2 caractere (cuvantul ​"​prea"​ nu va deveni "​a" ​daca avem "​pre" ​in lsita de prefixe).+După realizarea ​decriptării ​de la punctul a)se dorește ​eliminarea tuturor prefixelor cuvintelor din text. Astfel, ​având ​un șir de prefixe introdus de la tastatură, pentru fiecare ​cuvânt ​din text căutam ​prefixul de lungime ​maximă ​(dacă existăși îl eliminăm. De asemenea, cuvintele nou formate trebuie ​să conțină ​minim 2 caractere (cuvântul ​"​prea"​ nu va deveni "​a" ​dacă avem "​pre" ​în lista de prefixe).
  
-**Exemplu:​** ​   ​Cuvantul ​"​interschimbare"​ devine "​schimbare" ​daca prefixul "​inter"​ se afla in listaDaca 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.+**Exemplu:​** ​   ​Cuvântul ​"​interschimbare"​ devine "​schimbare" ​dacă prefixul "​inter"​ se află în listăDacă în listă ​s-ar afla și prefixul "​in", ​cuvântul ​ar fi fost transformat tot în "​schimbare"​ deoarece se ia în calcul prefixul cu lungime mai mare.
  
 **Subpunct c** **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.+După realizarea ​modificărilor ​de la punctul b)se dorește ​aflarea celui mai frecvent ​cuvânt ​din text și numărul ​de apariții ale acestuia, ​fără ​a se face diferența între ​litere mici și litere mari. În cazul în care avem mai multe cuvinte cu același număr ​de apariții, ​se va afișa ​primul din punct de vedere lexicografic. ​Cuvântul găsit ​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.+**Exemplu:​** ​   Textul "​Schimbare,​Prefacut. nefacut interschimbare ​ REFACUT,,​prea"​ se transformă în "​Schimbare,​facut. facut schimbare ​ FACUT,,​ea"​ daca avem prefixele "pr re in inter ne p pre", iar  cel mai frecvent ​cuvânt ​este "​facut",​ care apare de 3 ori.
  
  
 ===== Mențiuni ===== ===== Mențiuni =====
  
-    * **Memoria ​folosita ​pentru rezolvarea acestei probleme trebuie ​alocata ​dinamic;​** +    * **Memoria ​folosită ​pentru rezolvarea acestei probleme trebuie ​alocată ​dinamic;​** 
-    * Caracterele ce apar in text sunt litere mici, litere mari ale alfabetului englez ​si semne de punctuatie: " ,​.;​!?​-:";​ Doar literele ​isi vor schimba valoarea ​in urma decriptarii, semnele de punctuatie ramanand ​neschimbate;​ +    * Caracterele ce apar în text sunt litere mici, litere mari ale alfabetului englez ​și semne de punctuație: " ,​.;​!?​-:";​ Doar literele ​își vor schimba valoarea ​în urma decriptării, semnele de punctuație rămânând ​neschimbate;​ 
-    * Definim ​cuvant ​o succesiune de litere mici sau mari ale alfabetului englez separate de unul sau mai multe semne de punctuatie+    * Definim ​cuvânt ​o succesiune de litere mici sau mari ale alfabetului englezseparate de unul sau mai multe semne de punctuație
-    * In urma decriptarii, literele mici vor ramane ​mici, iar cele mari tot mari . Ex: "​FSF"​ cu cheie de 5 devine "​ANA" ​si "​fsf"​ tot cu cheie de 5 devine "​ana";​ +    * În urma decriptării, literele mici vor rămane ​mici, iar cele mari tot mari. Ex: "​FSF"​ cu cheie de 5 devine "​ANA" ​și "​fsf"​ tot cu cheie de 5 devine "​ana";​ 
-    * Cuvintele pot fi separate de orice semn de punctiatie. Ex: textul "Ana n-are mere,​pere,​prune." ​contine ​6 cuvinte; +    * Cuvintele pot fi separate de orice semn de punctuație. Ex: textul "Ana n-are mere,​pere,​prune." ​conține ​6 cuvinte; 
-    * Cuvintele pot fi separate de asemenea de mai multe semne de punctuatie. Ex: textul "​Ana ​ ?  n-are  !., mere" ​contine ​4 cuvinte. +    * Cuvintele pot fi separatede asemeneade mai multe semne de punctuație. Ex: textul "​Ana ​ ?  n-are  !., mere" ​conține ​4 cuvinte; 
-    * Prefixele ​contin ​doar litere mici ale alfabetului englez+    * Prefixele ​conțin ​doar litere mici ale alfabetului englez.
  
 ===== Format date intrare ===== ===== Format date intrare =====
  
-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.+Fișierul ​de intrare va conține ​3 linii. Prima conține ​valoarea cheii cu care va fi realizată ​decriptarea,​ cea de-a 2-a textul criptat, ​iar ultima ​reprezintă ​o succesiune de prefixe separate printr-un singur ​spațiu.
  
 ===== Format date ieșire ===== ===== Format date ieșire =====
   
-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.+Se vor afișa ​3 linii, ​corespunzătoare ​rezultatelor celor 3 cerințe. Prima linie va conține ​textul decriptat, cea de-a 2-a textul decriptat ​și modificat ​(cu prefixele șterse), iar ultima cel mai frecvent ​cuvânt ​din text, urmat de numărul ​de apariții ​al acestuia.
  
  
Line 87: Line 87:
  
     * 0 ≤ K ≤ 100000000     * 0 ≤ K ≤ 100000000
-    * lungimea textului ​si numarul ​de prefixe nu se cunosc, dorindu-se alocarea ​dinamica ​a memoriei necesare pentru ​retinerea ​lor+    * lungimea textului ​și numărul ​de prefixe nu se cunosc, dorindu-se alocarea ​dinamică ​a memoriei necesare pentru ​reținerea ​lor
  
 ===== Makefile ===== ===== Makefile =====
Line 103: Line 103:
     * O temă care nu va compila se va nota automat cu 0.     * O temă care nu va compila se va nota automat cu 0.
     * Deși citirea datelor se face de la tastatură, testarea se va face pe baza unor fișiere utilizând redirectări:​     * Deși citirea datelor se face de la tastatură, testarea se va face pe baza unor fișiere utilizând redirectări:​
 +
 <​code>​  <​code>​
         user@hostname ~ $ ./tema2 < input > output         user@hostname ~ $ ./tema2 < input > output
Line 113: Line 114:
   
 <​code>​  <​code>​
-                                ​Grupa_Nume_Prenume_Tema1.zip+                                ​Grupa_Nume_Prenume_Tema2.zip
                                 ​                                 ​
-Eg: 312CB_Popescu_Mircea_Tema1.zip+Eg: 312CB_Popescu_Mircea_Tema2.zip
 </​code>​ </​code>​
  
Line 125: Line 126:
 ATENȚIE: Checker-ul, fișierele de input și cele de referință trebuie să se afle în același folder cu sursa. ATENȚIE: Checker-ul, fișierele de input și cele de referință trebuie să se afle în același folder cu sursa.
  
-  ​*  [[https://www.dropbox.com/s/u1q16ss0fmuh4rx/Tests%26Checker.zip?dl=1|Tests&​Checker]]+    ​*  [[https://drive.google.com/file/d/0B_M0H58_uLBmRFdrQjhqV0JSU0U/​view?usp=sharing|Tests&​Checker]] 
 + 
 +===== Referinte ===== 
 + 
 +    * http://​ro.wikipedia.org/​wiki/​Cifrul_Cezar
  
programare/teme_2014b/tema2.1417063495.txt.gz · Last modified: 2014/11/27 06:44 by eugen.vasilescu
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