19 / 19 / 18
Регистрация: 17.02.2015
Сообщений: 128

Как учесть пробелы в шифре Цезаря?

28.09.2017, 00:53. Показов 5087. Ответов 4

Студворк — интернет-сервис помощи студентам
Как учесть пробелы. Шифр Цезаря. Помогите пожалуйста. Никак не могу понять.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
            string alfavit = "1234567890";
            int key = Convert.ToInt32(comboBox1.Text);
 
 
            string nums = textBox1.Text;
            string enc = "";
            for (int i = 0; i < nums.Length; i++)
            {
                for (int j = 0; j < alfavit.Length; j++)
                {
                    if (nums[i] == alfavit[j])
                    {
                        int temp = j + key;
                        enc = enc + alfavit[temp];
                    }
                }
            }
            textBox2.Text = enc;
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.09.2017, 00:53
Ответы с готовыми решениями:

Шифр Цезаря: Как сделать сортировку в шифре, чтобы дешифратор выдал единственно верное решение
Люди, как сделать сортировку в шифре, чтобы дешифратор выдал единственно верное решение Нужно как то по этой библиотеке прогнать... ...

Баг в шифре Цезаря
Задача: Реализовать на С# алгоритмы шифрования и расшифрования системы Цезаря. Баг в том, что если я ввожу текст &quot;ЯЯЯЯ&quot; или...

Отображение русских букв в шифре Цезаря и шифре Атбаш
Доброго времени суток. Нужна помощь в доработке приложения по шифрованию и дешифрование некой сточки на русском языке. У меня получается...

4
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18310 / 14234 / 5368
Регистрация: 17.03.2014
Сообщений: 28,905
Записей в блоге: 1
28.09.2017, 01:27
Лучший ответ Сообщение было отмечено lets834 как решение

Решение

lets834, смотря что понимается под "учесть". Если пробел нужно поддерживать, но не щифровать, то добавь условие перед вложенным циклом
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
            for (int i = 0; i < nums.Length; i++)
            {
                if (nums[i] == ' ') enc += ' ';
                else
                {
                    for (int j = 0; j < alfavit.Length; j++)
                    {
                        if (nums[i] == alfavit[j])
                        {
                            int temp = j + key;
                            enc = enc + alfavit[temp];
                        }
                    }
                }
            }
Если его нужно тоже шфировать, то добавь пробел в строку alfavit

P.S. В коде есть ошибка - не учитывается ситуация когда j + key выходит за пределы массива.

Вложенный цикл можно заменить на вызов метода Array.IndexOf
0
19 / 19 / 18
Регистрация: 17.02.2015
Сообщений: 128
28.09.2017, 02:32  [ТС]
OwenGlendower, Блин, писал я до этого такой цикл, только чуть-чуть не так. До вашего сообщения пробовал так:
C#
1
if (nums == "") enc += "";
Спасибо большое.

Чтобы не выходил за предел массива, такой вариант не подойдет, не подскажите ли?
C#
1
2
while (temp >= alfavit.Length)
temp -= alfavit.Length;;
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18310 / 14234 / 5368
Регистрация: 17.03.2014
Сообщений: 28,905
Записей в блоге: 1
28.09.2017, 02:39
Цитата Сообщение от lets834 Посмотреть сообщение
Чтобы не выходил за предел массива, такой вариант не подойдет, не подскажете ли?
Пойдет. Или можно использовать остаток от деления
C#
1
int temp = (j + key) % alfavit.Length;
0
19 / 19 / 18
Регистрация: 17.02.2015
Сообщений: 128
28.09.2017, 02:43  [ТС]
OwenGlendower, Понял. Еще раз спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.09.2017, 02:43
Помогаю со студенческими работами здесь

Как изменить тип ключа в шифре цезаря с числового на буквенный(Ключове слово), в данной программе
К примеру если я введу: ключ: AAB строку: SIFRUJI SIFRU зашифрованный текст получится: TJHSVLJ TKGSW const CKey = 3; ...

Ошибка в Шифре Цезаря
Задал вопрос не в том разделе, сам вопрос : https://www.cyberforum.ru/php-beginners/thread2575095.html

Буквы ъыьэюя теряются в шифре Цезаря
Здравствуйте. Как исправить программу, чтобы буквы ъыьэюя русского алфавита при декодировке не менялись на абвгде? Вывод получается...

Как учесть пробелы при чтении файла в map?
Здравствуйте. У меня есть программа для подсчета символов и биграмм в тексте, но она не учитывает разделение пробелов в тексте для подсчета...

Шрифт Цезаря. Как сделать чтобы програма не удаляла пробелы при выводе зашифрованной строки?
Шрифт Цезаря как зделать что бы програма не удаляла пробелы при выводе зашиврованной строки Например : Ввод: hello world Key: 3; ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru