|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.04.2020, 18:18 | #1 |
Новичок
Джуниор
Регистрация: 13.04.2020
Сообщений: 1
|
Шифровальная система
Недавно написал шифратор, который работает на базе шифра Плейфера (вот ссылка на вики:https://ru.wikipedia.org/wiki/%D0%A8...B5%D1%80%D0%B0). В общем прога работает нормально, за исключением некоторых возникающих проблем: код не работает, если в тексте(text) больше 30 символов, некоторые ключевые слова(key) не работают. Чуваки, помогите пж, несколько раз перепроверял код, не понимаю где ошибка. Заранее сори, я прост только новичок в теме C++)
Вот код: #include <iostream> #include <cmath> using namespace std; int main() { long int i = 0; long int first = 0; int second = 0; string yes= "incrypt"; string no = "unincrypt"; string choice; int w_s = 0; int a_s = 0; setlocale (0, "rus"); char alp [25] = {'a','b','c','d','e','f','g','h','i ','k','l','m','n','o','p','q','r',' s','t','u','v','w','x','y','z'}; long int lenght = 99999; long int l; int n_1; int n_2; int n_3; int cl; char key [4]; char alp_2 [25]; char b [4]; char c [4]; char d [4]; char e [4]; char f [19]; long int row [25]; long int col [25]; int crest [25]; char text[lenght]; i = 0; w_s = 0; cout<< "Enter key: "<<endl; cin >> key; while (i<5) { if (key[i]!=alp[a_s]) { a_s++; } else if (key[i]==alp[a_s]) { alp[a_s] = 'j'; a_s = 0; i++; } } i = 0; a_s = 0; while (i<26) { if (alp[i]=='j') { i++; } else if (alp[i]!='j') { f[a_s] = alp[i]; a_s++; i++; } } i = 0; a_s = 0; while (i<5) { b[i] = f[a_s]; i++; a_s++; } i=0; while (i<5) { c[i] = f[a_s]; i++; a_s++; } i=0; while (i<5) { d[i] = f[a_s]; i++; a_s++; } i=0; while (i<5) { e[i] = f[a_s]; i++; a_s++; } i=0; cout << "Enter text:"<<endl; cin >> text; while (i<lenght) { if (text[i]!='/') { i++; w_s++; } else if (text[i]=='/') { i = 99999; } } w_s = w_s-1; i = 0; if (w_s%2==0) { text[w_s+1] = 'x'; w_s = w_s+2; } else if (w_s%2!=0) { text[w_s+1] = ' '; w_s = w_s+1; } l = w_s; long int loc [l]; i = 0; while(i<5) { alp_2[i] = key[i]; i++; } i = 0; w_s = 5; while(i<25) { alp_2[w_s] = f[i]; w_s++; i++; } cout<<alp_2<<endl; i = 0; w_s = 0; a_s = 0; while (i<24) { row[i] = 1; row[i+1] = 2; row[i+2] = 3; row[i+3] = 4; row[i+4] = 5; i = i+5; } i = 0; w_s = 0; a_s = 0; while (i<4) { while (w_s<5) { col[w_s] = a_s+1; w_s++; } while (w_s<10) { col[w_s] = a_s+2; w_s++; } while (w_s<15) { col[w_s] = a_s+3; w_s++; } while (w_s<20) { col[w_s] = a_s+4; w_s++; } while (w_s<25) { col[w_s] = a_s+5; w_s++; } i++; } i = 0; cout <<"Choose operation:"<<endl; cin>>choice; if (choice==yes) //CHOICE YES { i = 0; w_s = 0; a_s = 0; while (i<l) { if (text[i]!=alp_2[w_s]) { w_s++; } else if (text[i]==alp_2[w_s]) { n_1 = w_s; loc[i] = n_1; w_s = 0; i++; } } i = 0; int a = 0; while (i<l/2) { if (row[loc[a]] == row[loc[a+1]]) { if (loc[a]>20) { loc[a] = loc[a]-20; text[a] = alp_2[loc[a]]; loc[a+1] = loc[a+1]+5; text[a+1] = alp_2[loc[a+1]]; a = a+2; i++; } else if (loc[a]<20) { if (loc[a+1]>20) { loc[a] = loc[a]+5; text[a] = alp_2[loc[a]]; loc[a+1]= loc[a+1]-20; text[a+1] = alp_2[loc[a+1]]; a = a+2; i++; } else if (loc[a+1]<20) { loc[a] = loc[a]+5; text[a] = alp_2[loc[a]]; loc[a+1] = loc[a+1]+5; text[a+1] = alp_2[loc[a+1]]; a = a+2; i++; } } } else if (row[loc[a]] != row[loc[a+1]]) { if (col[loc[a]]==col[loc[a+1]]) { if (row[loc[a]]==5) { loc[a] = loc[a]-4; text[a] = alp_2[loc[a]]; loc[a+1] = loc[a+1]+1; text[a+1] = alp_2[loc[a+1]]; a = a+2; i++; } else if (row[loc[a]]<5) { if (row[loc[a+1]]>5) { loc[a] = loc[a]+1; text[a] = alp_2[loc[a]]; loc[a+1] = loc[a+1]-4; text[a+1] = alp_2[loc[a+1]]; a = a+2; i++; } else if (row[loc[a+1]]<5) { loc[a] = loc[a]+1; text[a] = alp_2[loc[i]]; loc[a+1] = loc[a+1]+1; text[a+1] = alp_2[loc[a+1]]; a = a+2; i++; } } } else if (col[loc[a]]!=col[loc[a+1]]) { if (row[loc[a]]>row[loc[a+1]]) { first = row[loc[a]]; second = row[loc[a+1]]; first = first-second; loc[a] = loc[a]-first; loc[a+1] = loc[a+1]+first; text[a] = alp_2[loc[a]]; text[a+1] = alp_2[loc[a+1]]; a = a+2; i++; } else if (row[loc[a]]<row[loc[a+1]]) { first = row[loc[a]]; second = row[loc[a+1]]; second = second-first; loc[a] = loc[i]+second; loc[a+1] = loc[a+1]-second; text[a] = alp_2[loc[i]]; text[a+1] = alp_2[loc[a+1]]; a = a+2; i++; } } } } cout <<text<<endl; } } |
13.04.2020, 19:48 | #2 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
Цитата:
и так ВЕЗДЕ где if else if Код:
Код:
программа — запись алгоритма на языке понятном транслятору
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Информационная система VS автоматизированная система | Pavia | Общие вопросы по программированию, компьютерный форум | 1 | 06.11.2018 11:04 |
Нужен совет: выбор значений для системы двух селекторов (первый селектор из 4 систем (Система 1..Система 4), и второй селектор из 100 тканей (1, 2...100) | spoon100500 | JavaScript, Ajax | 8 | 27.04.2017 14:35 |
Система оценки знаний (система для проведения тестирования) для университета | a_shingissov | PHP | 3 | 15.03.2015 00:17 |
ЕАИСТО (единая автоматизированная информационная система технического осмотра)система | ioff83 | HTML и CSS | 0 | 09.01.2012 16:43 |
Система принятия решения (Экспертная система) | daranton | Microsoft Office Excel | 4 | 01.05.2010 17:55 |