#903
Cezar
În criptografie, cifrul Caesar este una dintre cele mai simple și mai cunoscute modalități de criptare a unui text. Este un cifru cu substituție, în care fiecare literă textul inițial este înlocuită cu o literă care se află în alfabet la o distanță fixă față de cea înlocuită. Această metodă este numită așa după Iulius Cezar, care o folosea pentru a comunica cu generalii săi.
De exemplu, cu o deplasare de 3
poziții, A
este înlocuit cu D
, B
devine E
și așa mai departe – în final X
devine A
, Y
devine B
, Z
devine C
. Celelalte caractere din text rămân nemodificate. Astfel, textul ana are mere
devine dqd duh phuh
.
Să se scrie un program care citește un text și un număr reprezentând deplasarea și îl criptează folosind cifrul Cezar cu deplasarea dată.
Problema | Cezar | Operații I/O | tastatură/ecran |
---|---|---|---|
Limita timp | 0.1 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
Id soluție | #40974633 | Utilizator | |
Fișier | cezar.cpp | Dimensiune | 1.02 KB |
Data încărcării | 07 Ianuarie 2023, 19:24 | Scor / rezultat | Eroare de compilare |
cezar.cpp: In function 'char* read_from_keyboard()': cezar.cpp:9:43: error: invalid conversion from 'void*' to 'char*' [-fpermissive] char *s = malloc(capacity*sizeof(char)); ^ cezar.cpp: In function 'void caesar(char*, int)': cezar.cpp:34:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (int i = 0; i < len; ++i) { ^ cezar.cpp: In function 'char* read_from_keyboard()': cezar.cpp:16:33: warning: ignoring return value of 'void* realloc(void*, size_t)', declared with attribute warn_unused_result [-Wunused-result] realloc(s, capacity); ^ cezar.cpp:19:26: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%c", &key); ^ cezar.cpp: In function 'int main()': cezar.cpp:56:22: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d", &poz); ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Cezar face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.