Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 27.02.2015
Сообщений: 37

Сдвиг символа алфавита

29.03.2016, 16:43. Показов 2095. Ответов 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
  String newline;
    char ch[151]={' ','!','#','$','%','&','"','(',')','*','+','-','[','.','/',',',  
     '0','1','2','3','4','5','6','7','8','9',':',';','<','=','>','?',
     '@','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O',
     'P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f',
     'g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',
    'А','Б','В','Г','Д','Е','Ё','Ж','З','И','Й','К','Л','М','Н','О','П','Р',
    'С','Т','У','Ф','Х','Ц','Ч','Ш','Щ','Ъ','Ы','Ь','Э','Ю','Я','а','б', 'в',
     'г','д','е','ё','ж','з','и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р',
     'с', 'т', 'у', 'ф', 'х', 'ц','ч','ш', 'щ', 'ъ','ы','ь','э','ю','я' };
 
   String line=Memo1->Text;// считываю из мемо текст, перевожу его в массив символов
       Memo1->Clear();
       char st[1000];
   for (int k=1; k<=line.Length(); k++)
   {
    st[k]=line[k];}
 
 
    String l=Edit2->Text;;
    char ki[1000];
 
   for (int m=1; m<=l.Length(); m++)
   {
    ki[m]=l[m];//перевожу ключ в массив символов
 for (int j=0;j<=151;j++){
 if (ch[j]==ki[m]) //если в алфавите буква совпала с буквой ключа
 {
for (int i = 1;i<=line.Length();i++) { //цикл для массива символов из поля мемо
  for (int j=0;j<=151;j++){//цикл для алфавита
if (ch[j]==st[i]) {//если символ алфавита и мемо совпал
        newline=newline+ch[(j+m)%151];//строке присваиваем символ алфавита  с индексом - номером буквы + сдвиг
        Memo1->Text=String(newline); }
                                }  }   }   }
      }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.03.2016, 16:43
Ответы с готовыми решениями:

Определить мощность алфавита. Определить информационный вес одного символа алфавита
Всем доброго времени суток. :) Пилю курсач по информатике (1 курс), здесь нужно прорешать N-ое количество задач. Посложнее - уже решил,...

Проверка символа на принадлежность к буквам русского алфавита
Дан символ. Проверить: является ли данный символ гласной буквой русского алфавита(независимо от регистра). Объясните, пожалуйста, как...

Сдвиг символа влево
Помогите осуществить сдвиг символа (буквы) из циклического алфавита на n влево. То есть, например, на вход методу дается буква 'A' и число...

1
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,013
30.03.2016, 21:25
Здесь Оконное приложение "Шифр Тритемиуса" посмотри. Пусть на Java, но суть понять должен.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.03.2016, 21:25
Помогаю со студенческими работами здесь

Для каждого символа латинского алфавита определить, сколько раз он встречается в последовательности
Вводится последовательность символов, заканчивающаяся точкой. Для каждого символа латинского алфавита определить сколько раз он встречается...

написать на с++ программу для Кода Цезаря, сдвиг на 3 буквы, чтобы в консоле конвертировал на 3 буквы вперед (алфавита)
написать на с++ программу для Кода Цезаря, сдвиг на 3 буквы, чтобы в консоле конвертировал на 3 буквы(алфавита)

Вывести в консоль символы алфавита, начиная с первого символа вашей фамилии и заканчивая первым последним символом имени
Вывести в консоль символы алфавита, начиная с первого символа вашей фамилии и заканчивая первым последним символом имени.

Дан код символа; как обратиться через битовый сдвиг к его 678 битам
дан код символа как обратиться через битовый сдвиг к его 678 битам, потом к 345 и потом к 12 попробовал так , не верно byte b3 =...

Логический сдвиг влево,логический сдвиг вправо,алгоритм обмена двух переменных,циклический сдвиг
Битовые сдвиги.FW4,msstudio 13,на C# 1)Реализовать быстрое умножение на 2(логический сдвиг влево) 2)Реализовать быстрое деление на...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru