Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2020, 18:18   #1
ProstoChe
Новичок
Джуниор
 
Регистрация: 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;
}


}
ProstoChe вне форума Ответить с цитированием
Старый 13.04.2020, 19:48   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Цитата:
Код:
if (row[loc[a]]>row[loc[a+1]])
              {
....
              }
else if (row[loc[a]]<row[loc[a+1]])
а где же else if (row[loc[a]]==row[loc[a+1]])
и так ВЕЗДЕ где if else if
Код:
if ( ==) 
{
...}
else if ( != )
{
...}
Код:
if ( < ) 
{
...}
else if ( >= )
{
...}
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Информационная система 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