Расшифруйте фразы, закодированные с
помощью шифра Цезаря.
Известно,
что каждая буква исходного текста заменяется третьей после нее буквой.
персидский
поэт Джалаледдин Руми
кгнусм
ёогкг фесл тцфхя фзужщз фхгрзх ёогксп,
Шекспир:
Фреёв нкъю
ёдрж фвлпх ургнаёваф, мреёв рёкп кй пкч жз пж йпвжф
Другие языки программирования и технологии
помогите пожалуйста шифр цезаря
#include <iostream>
#include <string>
using namespace std;
string encode(string, int);
string decode(string, int);
int main() {
cout << " word: ";
string word;
getline(cin, word);
cout << " shift: ";
int shift;
cin >> shift;
string code = encode(word, shift);
cout << " encode: " << code << endl;
string text = decode(code, shift);
cout << " decode: " << text << endl;
cin.sync();
cin.get();
}
string encode(string text, int shift) {
string code = text;
int size = code.size();
for (int i = 0; i < size; ++i) code[i] += shift;
return code;
}
string decode(string code, int shift) {
string text = code;
int size = code.size();
for (int i = 0; i < size; ++i) text[i] -= shift;
return text;
}
#include <string>
using namespace std;
string encode(string, int);
string decode(string, int);
int main() {
cout << " word: ";
string word;
getline(cin, word);
cout << " shift: ";
int shift;
cin >> shift;
string code = encode(word, shift);
cout << " encode: " << code << endl;
string text = decode(code, shift);
cout << " decode: " << text << endl;
cin.sync();
cin.get();
}
string encode(string text, int shift) {
string code = text;
int size = code.size();
for (int i = 0; i < size; ++i) code[i] += shift;
return code;
}
string decode(string code, int shift) {
string text = code;
int size = code.size();
for (int i = 0; i < size; ++i) text[i] -= shift;
return text;
}
Вот на С++:
#include <iostream>
using namespace std;
int main(){
setlocale(0,"");
char alphabet[] = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
//char str1[] = "фреёв нкъюёдрж фвлпх ургнаёваф, мреёв рёкп кй пкч жз пж йпвжф";
char str1[] = "Кгнусм ёогкг фесл тцфхя фзужщз фхгрзх ёогксп, ";
char shifr[80];
int len = strlen(alphabet);
//int key = -2;
int key = -3;
int a;
for(int i(0); str1[i]; i++){
str1[i] = tolower(str1[i]);
for(int j(0); alphabet[j]; j++){
if(str1[i] == alphabet[j]) { a = j+key; break; }
}
if(a > strlen(alphabet)) a = a - strlen(alphabet);
if(a < 0) { a = strlen(alphabet)+(a + strlen(alphabet));}
if(isalpha((unsigned char)str1[i])) shifr[i] = alphabet[a];
else shifr[i] = str1[i];
}
shifr[strlen(str1)] = '\0';
cout << shifr << endl;
system("pause > nul");
return 0;
}
=================================
тогда лишь двое тайну соблюдают, когда один из них её не знает
закрой глаза свои, пусть сердце станет глазом
#include <iostream>
using namespace std;
int main(){
setlocale(0,"");
char alphabet[] = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
//char str1[] = "фреёв нкъюёдрж фвлпх ургнаёваф, мреёв рёкп кй пкч жз пж йпвжф";
char str1[] = "Кгнусм ёогкг фесл тцфхя фзужщз фхгрзх ёогксп, ";
char shifr[80];
int len = strlen(alphabet);
//int key = -2;
int key = -3;
int a;
for(int i(0); str1[i]; i++){
str1[i] = tolower(str1[i]);
for(int j(0); alphabet[j]; j++){
if(str1[i] == alphabet[j]) { a = j+key; break; }
}
if(a > strlen(alphabet)) a = a - strlen(alphabet);
if(a < 0) { a = strlen(alphabet)+(a + strlen(alphabet));}
if(isalpha((unsigned char)str1[i])) shifr[i] = alphabet[a];
else shifr[i] = str1[i];
}
shifr[strlen(str1)] = '\0';
cout << shifr << endl;
system("pause > nul");
return 0;
}
=================================
тогда лишь двое тайну соблюдают, когда один из них её не знает
закрой глаза свои, пусть сердце станет глазом
Добавь в код буквы тройку и преобразуй в строку и будет счастье
Похожие вопросы
- Шифр цезаря паскаль в чем ошибкаили что дописать?
- помогите написать программу в Турбо Паскале, Шифр цезаря,с сдвигом на три шага!!!!
- Расшифруйте шифр Цезаря код 8
- Помогите пожалуйста разобраться с вопросами по информатике и программированию
- Помогите Пожалуйста....не могу настроить сеть между 2-я компютерами... очень прошу кто шарит загляньте...
- Помогите пожалуйста!!!
- Помогите пожалуйста избавиться от "синего экрана смерти"! кто поможет, тому +10 баллов гарантирую!
- добрый вечер!помогите пожалуйста решить задание
- Вопрос по delphi, помогите пожалуйста.
- Помогите пожалуйста найти ошибку, с++