Форум программистов, компьютерный форум CyberForum.ru

Строки: расшифровка кода Цезаря - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.84
*krIsTiNa*
0 / 0 / 0
Регистрация: 19.01.2011
Сообщений: 46
30.03.2011, 16:05     Строки: расшифровка кода Цезаря #1
Как правильно составить программу для расшифровки текста.
Код Цезаря заменяет одну букву другой, отстоящей от нее на заданное количество позиций в алфавите. Например, при сдвиге, равном 1, буква А заменяется на Б, Б — на В, …, Я — на А.)
Размер сдвига символов принять равным номеру буквы в слове.
Например, ЕРП шифруется как слово ДОМ.
Считать, что текст написан синтаксически грамотно, в качестве знаков препинания используются точка и запятая, слова состоят только из букв, перенос слов по слогам отсутствует.
Для выделения слов из строки и расшифровки слова создать пользовательские функции.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IrineK
Заблокирован
30.03.2011, 17:05     Строки: расшифровка кода Цезаря #2
слова состоят только из букв
Больших?
Маленьких?
Больших и маленьких?
afiskon
 Аватар для afiskon
65 / 53 / 3
Регистрация: 06.09.2010
Сообщений: 254
30.03.2011, 17:14     Строки: расшифровка кода Цезаря #3
Цитата Сообщение от *krIsTiNa* Посмотреть сообщение
Как правильно составить программу для расшифровки текста.
Код Цезаря заменяет одну букву другой, отстоящей от нее на заданное количество позиций в алфавите. Например, при сдвиге, равном 1, буква А заменяется на Б, Б — на В, …, Я — на А.)
Размер сдвига символов принять равным номеру буквы в слове.
Например, ЕРП шифруется как слово ДОМ.
Считать, что текст написан синтаксически грамотно, в качестве знаков препинания используются точка и запятая, слова состоят только из букв, перенос слов по слогам отсутствует.
Для выделения слов из строки и расшифровки слова создать пользовательские функции.
Создаешь таблицу допустимых символов. Идешь по тексту, увеличивая счетчик по модулю количества элементов в таблице. Делаешь замену в соответсвии с описанием. Для расшифровки используешь инвертированную таблицу.
*krIsTiNa*
0 / 0 / 0
Регистрация: 19.01.2011
Сообщений: 46
02.04.2011, 17:32  [ТС]     Строки: расшифровка кода Цезаря #4
Цитата Сообщение от IrineK Посмотреть сообщение
Больших?
Маленьких?
Больших и маленьких?
наверное из больших..про это же в условии ничего не сказано.
CEBEP
105 / 105 / 9
Регистрация: 21.03.2010
Сообщений: 437
02.04.2011, 18:46     Строки: расшифровка кода Цезаря #5
//ща...

Добавлено через 14 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void deCode(char* st)
{
    int i = -1,
        numInWord = 0;
    while(st[++i])
    {
        while(st[i] && st[i] >= 'ГЂ' && st[i] <= 'Гџ')
        {
            st[i] -= numInWord - ( st[i] - numInWord < 'ГЂ' ? 'Гџ' - 'ГЂ' : 0 );
            ++i;
            ++numInWord;//åñëè Г±Г·ГЁГІГ*ГҐГ¬ Г± Г*óëÿ...
        }
        numInWord = 0;
        while(st[i] && ( st[i] < 'ГЂ' || st[i] > 'Гџ' )) 
            ++i;
 
    }
}
вроде бы так...
Yandex
Объявления
02.04.2011, 18:46     Строки: расшифровка кода Цезаря
Ответ Создать тему
Опции темы

Текущее время: 10:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru