Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 03.11.2022
Сообщений: 9
.NET 6

Дана зашифрованная строка. Найти длину шага шифрования и зашифрованное слово

04.11.2022, 19:35. Показов 321. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дано зашифрованное предложение на русском языке и его расшифрованный первый символ C. Найти кодовое смещение K и расшифровать предложение. Способ шифрования: Зашифровать строку, выполнив циклическую замену каждой буквы на букву того же регистра, расположенную в алфавите на K-й позиции после шифруемой буквы (например, для K = 2 «А» перейдет в «В», «а» — в «в», «Б» — в «Г», «я» — в «б» и т. д.). Букву «ё» в алфавите не учитывать, знаки препинания и пробелы не изменять.

Помогите пожалуйста решить задачу с помощью цикла for

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
using System;
using System.ComponentModel.DataAnnotations;
using System.Diagnostics.Tracing;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks.Dataflow;
using System.Collections.Generic;
 
namespace Lab4
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write(" Введите зашифрованную строку: ");
            string S = Console.ReadLine();
 
            Console.Write(" Введите первый расшифрованный символ: ");
            char c = char.Parse(Console.ReadLine());
 
            int k = (int)S[0] - (int)c; // вычисляем длину шага шифрования
            Console.WriteLine(" длина шага шифрования = " + k);
 
            string[] words = S.Split(new char[] { ' ', ',','.','-' }, StringSplitOptions.RemoveEmptyEntries) ;
          
        }
    }
}
Получилось найти только длину шага шифрования, но как остальные буквы в строке заменить не понимаю
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.11.2022, 19:35
Ответы с готовыми решениями:

Дана строка из набора букв, которые содержат зашифрованное слово. Ключом является последовательность чисел
Вам дана строка из набора букв, которые содержат зашифрованное слово. Также дан ключ к расшифровке этого слова. Ключом является...

Дана зашифрованная строка-предложение (шифрование)
Помогите, пожалуйста, с кодом. Дана зашифрованная строка-предложение. Шифрование было выполнено путем, помещения вначале строки всех...

Дана строка, содержащая пробелы. Найдите в ней самое длинное слово, выведите на экран это слово и его длину.
Помогите пожалуйста с задачей... Дана строка, содержащая пробелы. Найдите в ней самое длинное слово, выведите на экран это слово и...

1
 Аватар для samana
2639 / 1567 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
05.11.2022, 10:27
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
namespace CyberForum
{
    public class Program
    {
        static void Main()
        {
            // это строка, которая будет зашифрована, и вам известна только её первая буква
            string original = "Этот текст будет зашифрован! Да, это действительно так. Только буква 'ё' осталась...";
            char firstChar = original[0];
            
            
            // это для теста уже зашифрованная строка с неким смещением 3, которое вам зараннее было неизвестно
            string ciphertext = Encrypt(original, 3);
 
            // но узнаём шаг смещения  самостоятельно
            int kOffset = ciphertext[0] - firstChar;
 
            // проходим по зашифрованной строке и выводим в консоль каждый символ (если он не буквы ё, не пробел и не знак препинания),
            // но с обратным смещением
            for (int i = 0; i < ciphertext.Length; i++)
            {
                char c = ciphertext[i];
 
                if (c == 'ё' || c == 'Ё' || char.IsPunctuation(c) || char.IsWhiteSpace(c))
                {
                    Console.Write(c);
                }
                else
                {
                    Console.Write((char)(c - kOffset));
                }
            }
 
            Console.WriteLine();
        }
 
        private static string Encrypt(string original, int offset)
        {
            var chars = original.ToCharArray();
            for (int i = 0; i < chars.Length; i++)
            {
                char c = chars[i];
                if (c == 'ё' || c == 'Ё' || char.IsPunctuation(c) || char.IsWhiteSpace(c))
                    continue;
                else
                {
                    chars[i] = (char)(chars[i] + offset);
                }
            }
 
            return new string(chars);
        }
 
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.11.2022, 10:27
Помогаю со студенческими работами здесь

Дана зашифрованная строка «df56ghf789yt6u8k88w». Посчитать сумму всех чисел в этой строке
Дана зашифрованная строка «df56ghf789yt6u8k88w». Посчитать сумму всех чисел в этой строке.

Дана строка, содержащая текст. Найти длину самого к
1. Дана строка, содержащая текст. Найти длину самого короткого слова и самого длинного слова. 2. Дана строка, содержащая текст. Каждую...

Дана строка текста. Найти: длину самого короткого слова
Дана строка текста. Найти: длину самого короткого слова

Дана строка. Удалить первое слово в данной строке. В полученной строке после каждого слова ввести длину этой строки
Дана строка. 1)Удалить первое слово в данной строке. 2)В полученной строке после каждого слова ввести длину этой строки. На носу...

Дана строка, содержащая текст. Найти длину самого короткого слова.
Помогитеее пожалуйста срочно!


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru