
C#
Срочно нужна помощь по С#
Помогите пожалуйста с работой по С#


#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
class Caesar {
public:
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;
}
private:
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;
}
};
int integer(const char* msg) {
cout << msg;
int value;
cin >> value;
cin.ignore(cin.rdbuf()->in_avail());
return value;
}
int main() {
system("chcp 1251 > nul");
auto shift = integer("Установите размер сдвига: ");
cout << "Исходная строка: ";
string line;
getline(cin, line);
Caesar caesar;
line = caesar.encode(line, shift);
cout << "Кодированная строка: " << line << '\n';
line = caesar.decode(line, shift);
cout << "Декодированная строка: " << line << '\n';
system("pause > nul");
}
#include <string>
#include <iomanip>
using namespace std;
class Caesar {
public:
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;
}
private:
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;
}
};
int integer(const char* msg) {
cout << msg;
int value;
cin >> value;
cin.ignore(cin.rdbuf()->in_avail());
return value;
}
int main() {
system("chcp 1251 > nul");
auto shift = integer("Установите размер сдвига: ");
cout << "Исходная строка: ";
string line;
getline(cin, line);
Caesar caesar;
line = caesar.encode(line, shift);
cout << "Кодированная строка: " << line << '\n';
line = caesar.decode(line, shift);
cout << "Декодированная строка: " << line << '\n';
system("pause > nul");
}
Igor Kormilez
Во, блин! А нужно было на C#. Мне пора отдохнуть...
А при чем тут вообще язык? Нужна спецификация же.
Вот и опиши согласно принятой у вас методологии, которой нам отсюда не видно, класс, который в качестве аргумента конструктора принимает сдвиг/ключ, и имеет два публичных метода - шифрования и дешифрования. Если методология предполагает описание внутренних методов, то добавь еще один - сдвиг алфавита. Собссно все.
Вот и опиши согласно принятой у вас методологии, которой нам отсюда не видно, класс, который в качестве аргумента конструктора принимает сдвиг/ключ, и имеет два публичных метода - шифрования и дешифрования. Если методология предполагает описание внутренних методов, то добавь еще один - сдвиг алфавита. Собссно все.
public String foo(String s, int k);
public String unFoo(String s, int k);
public String unFoo(String s, int k);
Артур ******
И все?
Похожие вопросы
- Нужна помощь с задачей C#
- Нужна помощь С#
- Нужна помощь с созданием первой игры на Unity
- Нужна помощь с языком C#
- (c#) Нужна помощь в работе со строками. (лучше если будет не само решение, а объяснение, спасибо)
- C# winforms Как выполнять какие либо действия на client с помощью сокетов ?
- Нужен человек для Юнити
- Срочно создать программу в C#
- Вопрос про делегаты - callbacks/делегирования, зачем же нужны эти делегаты
- Нужны ли знание алгебры/геометрии для c#.