Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
32 / 12 / 5
Регистрация: 02.04.2022
Сообщений: 331
.NET 6

[Code Review] Шифратор Цезаря

07.07.2022, 12:32. Показов 832. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Зацените чо слепил
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
namespace Caesar
{
    /*
    class Options
    {
        [Option("To", HelpText = "Режим Шифровки, Нужно указать язык (RU, ENG)")]
        public string OptTo { get; set; }
 
        [Option("Out", HelpText = "Режим Расшифровки, Нужно указать язык (RU, ENG)")]
        public string? OptOut { get; set; }
 
        [Value(0, HelpText = "Слово для операции\nДля примера :\nCaesar --To RU Привет")]
        public string Word { get; set; }
    }
    */
 
    class Scrambler
    {
        static void Main(string[] args)
        {
            string[] Symbol = new string[] { " ", ",", ".", "/", "\\", "-", "_", "=", "+", "*", "\"", "\'", ":", ";", "?", "!", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "(", ")" };
            Console.Write("\nВыбирете Язык (Ru - Русский, Eng - Английский) : ");
            string Lang = Console.ReadLine().ToLower();
            string[] LangOrig = LanguageOriginal(Lang);
            string[] LangCaesar = LanguageCaesar(Lang);
 
            Console.Write("Выбирете режим работы (To - Зашифровать, Out - Расшифровать) : ");
            switch (Console.ReadLine().ToLower())
            {
                case "to":
                    {
                        Console.Write("Введите слово для шифрации : ");
                        string Word = Console.ReadLine().ToLower();
                        Console.Write("Результат : ");
 
                        for (int i = 0; i < Word.Length; ++i)
                            for (int c = 0; c < LangOrig.Length; ++c)
                                if (Word[i] == LangOrig[c][0])
                                    Console.Write(LangCaesar[c][0]);
                                else if (Word[i] == Symbol[c][0])
                                    Console.Write(Symbol[c][0]);
 
                        Console.WriteLine("");
                        break;
                    }
 
                case "out":
                    {
                        Console.Write("Введите слово для дешифрации : ");
                        string Word = Console.ReadLine().ToLower();
                        Console.Write("Результат : ");
 
                        for (int i = 0; i < Word.Length; ++i)
                            for (int c = 0; c < LangCaesar.Length; ++c)
                                if (Word[i] == LangCaesar[c][0])
                                    Console.Write(LangOrig[c][0]);
                                else if (Word[i] == Symbol[c][0])
                                    Console.Write(Symbol[c][0]);
 
                        Console.WriteLine("");
                        break;
                    }
 
                default:
                    {
                        Console.WriteLine("Неизвестная Команда");
                        Environment.Exit(1);
                        break;
                    }
            }
        }
 
        static string[] LanguageOriginal(string Lang)
        {
            switch (Lang)
            {
                case "ru": return new string[] { "а", "б", "в", "г", "д", "е", "ё", "ж", "з", "и", "й", "к", "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", "щ", "ъ", "ы", "ь", "э", "ю", "я" };
                case "eng": return new string[] { "a", "b", "c", "d", "e", "f", "g", "h", "i", "g", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z" };
                default: Console.WriteLine("Неизвестный язык"); Environment.Exit(1); break;
            }
            return null;
        }
 
        static string[] LanguageCaesar(string Lang)
        {
            switch (Lang)
            {
                case "ru": return new string[] { "б", "в", "г", "д", "е", "ё", "ж", "з", "и", "й", "к", "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", "щ", "ъ", "ы", "ь", "э", "ю", "я", "а" };
                case "eng": return new string[] { "b", "c", "d", "e", "f", "g", "h", "i", "g", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "a" };
                default: Console.WriteLine("Неизвестный язык"); Environment.Exit(1); break;
            }
            return null;
        }
    }
}
Это программа Шифратор\Дешифратор которая работает с шифром цезаря
Программа перебирает слово по буквам и берет букву из массива который представляет собой буквы в порядке если бы алфавит был зашифрован цезарем, переставляет букву и выдаёт результат

Например :
Ввод - hello
Вывод - ifmmp

Но вот проблема, почему-то русский не работает
ПРАШУ ПАМОЧЬ

Добавлено через 19 минут
Тему не там создал :/
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.07.2022, 12:32
Ответы с готовыми решениями:

Code Review
Доброго времени суток.Сделал небольшой проектик на WPF и хотел бы попросить шарящих сделать мне Code Review.Думаю каждый из классов...

Code Review игры Тетрис
Доброго времени суток. Я самоучка. Для практики написал тетрис в консоли. Столкнулся с тем, что нужен взгляд на код со стороны, опытным...

[Code review] Реализация INotifyPropertyChanged
Ребят, а я вот такую штуку написал. Вроде бы и лаконично, понятно и без особых костылей?! К чему этот пост: Могли бы...

1
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,575
07.07.2022, 12:53
Лучший ответ Сообщение было отмечено Timchik230 как решение

Решение

Вроде что-то работает...
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
internal class Program
{
    static char[] Symbol = new char[] { ' ', ',', '.', '/', '\\', '-', '_', '=', '+', '*', '\'', '\'', ':', ';', '?', '!', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '(', ')' };
    static char[] ru_orig = new char[] { 'а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я' };
    static char[] en_orig = new char[] { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'g', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' };
    static char[] ru_c = new char[] { 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я', 'а' };
    static char[] en_c = new char[] { 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'g', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'a' };
 
    private static void Main(string[] args)
    {
        Console.Write("\nВыбирете Язык (Ru - Русский, Eng - Английский) : ");
        string Lang = Console.ReadLine().ToLower();
        char[] LangOrig = LanguageOriginal(Lang);
        char[] LangCaesar = LanguageCaesar(Lang);
 
        if (LangOrig == null || LangCaesar == null)
        {
            Console.WriteLine("Неизвестный язык");
            return;
        }
 
        Console.Write("Выбирете режим работы (To - Зашифровать, Out - Расшифровать) : ");
        switch (Console.ReadLine().ToLower())
        {
            case "to":
                {
                    Console.Write("Введите слово для шифрации : ");
                    string Word = Console.ReadLine().ToLower();
                    Process(Word, LangOrig, LangCaesar);
                    break;
                }
 
            case "out":
                {
                    Console.Write("Введите слово для дешифрации : ");
                    string Word = Console.ReadLine().ToLower();
                    Process(Word, LangCaesar, LangOrig);
                    break;
                }
 
            default:
                {
                    Console.WriteLine("Неизвестная Команда");
                    return;
                }
        }
    }
 
    static void Process(string word, char[] lang1, char[] lang2)
    {
        Console.Write("Результат : ");
 
        for (int i = 0; i < word.Length; ++i)
            for (int c = 0; c < lang1.Length; ++c)
                if (word[i] == lang1[c])
                    Console.Write(lang2[c]);
                else if (Symbol.Contains(word[i]))
                    Console.Write(word[i]);
 
        Console.WriteLine("");
    }
 
    static char[] LanguageOriginal(string Lang)
    {
        return Lang switch
        {
            "ru" => ru_orig,
            "eng" => en_orig,
            _ => null,
        };
    }
 
    static char[] LanguageCaesar(string Lang)
    {
        return Lang switch
        {
            "ru" => ru_c,
            "eng" => en_c,
            _ => null,
        };
    }
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.07.2022, 12:53
Помогаю со студенческими работами здесь

[Code review] ООП ошибки
Здравствуйте! Есть программа и она рабочая. И мне для дальнейшего программирования необходимо знать насколько она правильно, оптимально и...

Двусвязный линейный список [code review]
/* Операции: - Поиск элемента по индексу - Вставка в начало/конец - Вставка перед/после элемента x - Удаление...

Односвязный кольцевой список [code review]
/* Операции: - Поиск элемента по индексу - Вставка в начало/конец - Вставка перед/после элемента x - Удаление...

Code review: создать класс «Бочка»
УСЛОВИЕ ЗАДАЧИ Создать класс «Бочка». Предусмотреть возможность долива , изъятия жидкости. Реализовать учет всей жидкости,...

[Code Review] Сериализация двусвязного списка
Добрый день, ребята, помогите пожалуйста джуну. В общем, наткнулся я на тестовое задание от saber interactive: нужно было написать на C#...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru