C/C++
Помогите пожалуйста написать программу на C++. Очень нужно!
Написать простой шифр Цезаря. Зашифровать и расшифровать, с применением частотного анализа.
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
bool is_alpha(char ch) {
if (ch >= 'A' && ch <= 'Z' || ch >= 'a' && ch <= 'z') return true;
if (ch >= 'А' && ch <= 'Я' || ch >= 'а' && ch <= 'я') return true;
return false;
}
string splus(const string& line) {
auto s = line;
for (auto& ch : s) {
if (ch == ' ') continue;
if (is_alpha(ch)) {
if (ch == 'Z' || ch == 'z') ch -= 25;
else if (ch == 'Я' || ch == 'я') ch -= 31;
else ++ch;
}
else {
++ch;
}
}
return s;
}
string sminus(const string& line) {
auto s = line;
for (auto& ch : s) {
if (ch == ' ') continue;
if (is_alpha(ch)) {
if (ch == 'A' || ch == 'a') ch += 25;
else if (ch == 'А' || ch == 'а') ch += 31;
else --ch;
}
else {
--ch;
}
}
return s;
}
string encode(const string& line, int shift) {
auto s = line;
for (int i = 0; i < shift; ++i) s = splus(s);
return s;
}
string decode(const string& line, int shift) {
auto s = line;
for (int i = 0; i < shift; ++i) s = sminus(s);
return s;
}
int main() {
const auto shift = 5;
system("chcp 1251 > nul");
cout << "Исходная строка: ";
string line;
getline(cin, line);
line = encode(line, shift);
cout << "Кодированная строка: " << line << '\n';
line = decode(line, shift);
cout << "Декодированная строка: " << line << '\n';
system("pause > nul");
}
#include <string>
#include <iomanip>
using namespace std;
bool is_alpha(char ch) {
if (ch >= 'A' && ch <= 'Z' || ch >= 'a' && ch <= 'z') return true;
if (ch >= 'А' && ch <= 'Я' || ch >= 'а' && ch <= 'я') return true;
return false;
}
string splus(const string& line) {
auto s = line;
for (auto& ch : s) {
if (ch == ' ') continue;
if (is_alpha(ch)) {
if (ch == 'Z' || ch == 'z') ch -= 25;
else if (ch == 'Я' || ch == 'я') ch -= 31;
else ++ch;
}
else {
++ch;
}
}
return s;
}
string sminus(const string& line) {
auto s = line;
for (auto& ch : s) {
if (ch == ' ') continue;
if (is_alpha(ch)) {
if (ch == 'A' || ch == 'a') ch += 25;
else if (ch == 'А' || ch == 'а') ch += 31;
else --ch;
}
else {
--ch;
}
}
return s;
}
string encode(const string& line, int shift) {
auto s = line;
for (int i = 0; i < shift; ++i) s = splus(s);
return s;
}
string decode(const string& line, int shift) {
auto s = line;
for (int i = 0; i < shift; ++i) s = sminus(s);
return s;
}
int main() {
const auto shift = 5;
system("chcp 1251 > nul");
cout << "Исходная строка: ";
string line;
getline(cin, line);
line = encode(line, shift);
cout << "Кодированная строка: " << line << '\n';
line = decode(line, shift);
cout << "Декодированная строка: " << line << '\n';
system("pause > nul");
}
Похожие вопросы
- Помогите пожалуйста написать программу на C++. Срочно нужно, пожалуйста.
- Помоги пожалуйста написать программу на C++
- Помогите, пожалуйста, написать программу на C++ (массивы)
- Помогите пожалуйста написать программу на C
- Здравствуйте, помогите пожалуйста написать программу на C++ с использованием функций
- Помогите пожалуйста написать программу небольшую в C++. Одномерный массив
- Здравствуйте, помогите пожалуйста написать программы на языке C++.
- Помогите пожалуйста написать программу на Си
- Помогите пожалуйста написать код на c++, выводящий имя, фамилию и дату рождения нескольких человек
- Помогите пожалуйста написать код на C++