1 / 1 / 0
Регистрация: 16.10.2014
Сообщений: 20
1

Реализация расшифровки

29.09.2015, 18:28. Показов 1648. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть программа шифрования квадратом Полибия. Как реализовать расшифровку?
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
char *string= new char[];
        const int m = 6;
        const int n = 6;
        int i, j;
        char A[m][n] = {{ 'А', 'Б', 'В', 'Г', 'Д', 'Е'},
                        { 'Ж', 'З', 'И', 'К', 'Л', 'М'},
                        { 'Н', 'О', 'П', 'Р', 'С', 'Т'},
                        { 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш'},
                        { 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю'},
                        { 'Я', '.', ',', '?', ';', ':' } };
 
        for (int i = 0; i < m; i++)
        {
            for (int j = 0; j < n; j++)
            {
                cout << setw(2) << A[i][j] << ' ';
            }
            cout << endl;
        }
 
                cout << "Введите слово : ";
                cin>>string;
                
                for (int k = 0; k <strlen(string); k++)
                {
                    for (i = 0; i < m; i++)
                    {
                        for (j = 0; j < n; j++)
                        {
                            if (string[k] == A[i][j])
                            {
                                cout << i + 1 << j + 1 ;
                            }
                        }
                    }
                }
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.09.2015, 18:28
Ответы с готовыми решениями:

Программа для шифровки-расшифровки текста
Здравствуйте, в институте задали написать программу для шифровки-расшифровки текста. Алгоритм...

Оптимизация расшифровки файла | алгоритм хаффмана
Привет, форумчани! Собственно сразу к вопросу. У меня имеется зашифрованный файл весом 390 КБ и...

Найти способ расшифровки зашифрованного текста
Здравствуйте, бьюсь над задачей по расшифровке текста, пока что безрезультатно. Сам алгоритм...

Нужно сделать функцию расшифровки (алгоритм Цезаря)
Всем привет ! Есть моя функция шифрования char find_and_encr_char(char what_find,int key){ ...

14
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
29.09.2015, 18:54 2
Цитата Сообщение от Mrthesowhat Посмотреть сообщение
Как реализовать расшифровку?
Предположу что зеркально шифрованию. Ты прибавлял 1, а теперь отними и выведи A[i-1][j-1].......где i,j - числа шифра, которые ты разобьешь.
1
1 / 1 / 0
Регистрация: 16.10.2014
Сообщений: 20
29.09.2015, 18:56  [ТС] 3
Я так понимаю, мне надо сравнить каждый элемент введенного шифра с координатами i и j. Додумался только до
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 cout << "Введите шифр : ";
    cin >> string;
        for (int a = 0; a < strlen(string); a+2)
        {
            for (i = 0; i < m; i++)
            {
                for (j = 0; j < n; j++)
                {
                    if ((string[a] == i)&(string[a+1] == j))
                    {
                        cout<<A[i][j];
                    }
                }
            }
            
        }
, но этот код не работает
0
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
29.09.2015, 19:07 4
Цитата Сообщение от Mrthesowhat Посмотреть сообщение
Я так понимаю, мне надо сравнить каждый элемент введенного шифра с координатами i и j. Додумался только до
хз....?

Если ключ тот же, то думаю так
C++
1
2
3
4
5
6
7
cout << "Введите шифр : ";
    cin >> string;
        for (int a = 0; a < strlen(string) - 1; a+2)
        {
           cout<<A[ string[a] - 1 ][ string[a+1] - 1 ];
            
        }
1
1 / 1 / 0
Регистрация: 16.10.2014
Сообщений: 20
29.09.2015, 19:18  [ТС] 5
Цитата Сообщение от _Valera_ Посмотреть сообщение
хз....?

Если ключ тот же, то думаю так
C++
1
2
3
4
5
6
7
cout << "Введите шифр : ";
    cin >> string;
        for (int a = 0; a < strlen(string) - 1; a+2)
        {
           cout<<A[ string[a] - 1 ][ string[a+1] - 1 ];
            
        }
_Valera_, да, ключ тот же. Почему тут
Цитата Сообщение от _Valera_ Посмотреть сообщение
for (int a = 0; a < strlen(string) - 1; a+2)
длина строки -1?
0
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
29.09.2015, 19:25 6
Цитата Сообщение от Mrthesowhat Посмотреть сообщение
длина строки -1?
Цитата Сообщение от Mrthesowhat Посмотреть сообщение
[ string[a+1]
что б тут не упало

Добавлено через 12 секунд
работает?
1
1 / 1 / 0
Регистрация: 16.10.2014
Сообщений: 20
29.09.2015, 19:29  [ТС] 7
_Valera_,нет, уходит в бесконечное зацикливание
0
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
29.09.2015, 19:32 8
Цитата Сообщение от Mrthesowhat Посмотреть сообщение
_Valera_,нет, уходит в бесконечное зацикливание
а что вводишь?

Добавлено через 38 секунд
измени тут
C++
1
 for (int a = 0; a < strlen(string) - 1; a+=2)
1
1 / 1 / 0
Регистрация: 16.10.2014
Сообщений: 20
29.09.2015, 19:35  [ТС] 9
_Valera_, 211332,например

Добавлено через 1 минуту
_Valera_, вот теперь вроде работает, так как на два введенных числа выдает 1 символ, но не отображает его, квадратики сплошные
0
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
29.09.2015, 19:37 10
Цитата Сообщение от Mrthesowhat Посмотреть сообщение
символ, но не отображает его, квадратики сплошные
хм, весь код покажи
1
1 / 1 / 0
Регистрация: 16.10.2014
Сообщений: 20
29.09.2015, 19:38  [ТС] 11
Цитата Сообщение от _Valera_ Посмотреть сообщение
хм, весь код покажи
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
#include <iostream>
#include <iomanip>
using namespace std;
int main(){
    setlocale(LC_ALL, "Russian");
    system("chcp 1251");
    system("cls"); {
 
    char *string = new char[];
    const int m = 6;
    const int n = 6;
    int i, j;
    int h = strlen(string);
    char A[m][n] = { { 'А', 'Б', 'В', 'Г', 'Д', 'Е' },
                     { 'Ж', 'З', 'И', 'К', 'Л', 'М' },
                     { 'Н', 'О', 'П', 'Р', 'С', 'Т' },
                     { 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш' },
                     { 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю' },
                     { 'Я', '.', ',', '?', ';', ':' }
                   };
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            cout << setw(2) << A[i][j] << ' ';
        }
        cout << endl;
    }
    
    cout << "Введите шифр : ";
    cin >> string;
    for (int a = 0; a < strlen(string) - 1; a += 2)
 
    {
        cout << A[string[a]-1][string[a + 1]-1];
 
    }
    
    }
    system("pause");
    return 0;
}
0
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
29.09.2015, 19:40 12
Цитата Сообщение от Mrthesowhat Посмотреть сообщение
char *string = new char[];
это не очень корректная запись
1
1 / 1 / 0
Регистрация: 16.10.2014
Сообщений: 20
29.09.2015, 19:43  [ТС] 13
_Valera_, указывать в скобках размер?
0
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
29.09.2015, 20:17 14
Лучший ответ Сообщение было отмечено Mrthesowhat как решение

Решение

Цитата Сообщение от Mrthesowhat Посмотреть сообщение
_Valera_, указывать в скобках размер?
да, но проблема не в этом, сейчас найду ...

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

Добавлено через 24 минуты
поправка на типы
C++
1
2
3
4
5
6
 for (int a = 0; a < strlen(string) - 1; a += 2)
 
    {
        cout << A[(int)string[a]-48-1][(int)string[a + 1]-48-1];
 
    }
1
1 / 1 / 0
Регистрация: 16.10.2014
Сообщений: 20
30.09.2015, 15:27  [ТС] 15
_Valera_, я понял что тут
Цитата Сообщение от _Valera_ Посмотреть сообщение
cout << A[(int)string[a]-48-1][(int)string[a + 1]-48-1];
конвертирование типа char к int-у. Оно выдает ASCII код символа? И почему - 48?

Добавлено через 30 минут
всё, понял
0
30.09.2015, 15:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.09.2015, 15:27
Помогаю со студенческими работами здесь

Реализовать программу расшифровки аббревиатур согласно условию
я думаю взять map и что-то с replace_if применять

Программа для расшифровки текста из двузначных чисел
Ребят, у кого есть такая прога? Каждой букве русского алфавита соответствует двузначное число:...

Программа для шифрования и расшифровки текстовых файлов
программа для шифрования и расшифровки текстовых файлов.

Написать программы шифрования и расшифровки файла методом циклического сдвига
Написать программы шифрования и расшифровки файла методом циклического сдвига. Т.е. каждый символ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru