13.12.2012, 12:18 | #1 (permalink) |
Новичок
Регистрация: 13.12.2012
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Работа с шифром, C++
Возникла одна проблемка. Изначально по заданию был "Шифр цезаря". Программу по шифрованию/дешифрованию написал. В итоге преподаватель меня обрадовал, сказав что я сделал не тот вариант. Мое новое задание теперь "Шифр цезаря с ключевым словом". Вот теперь сижу ломаю голову. Не получается дописать программу. Вот код: #include<iostream> #include <math.h> using namespace std; void main() { char alf [31] = {'*','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','_','+','.','?'}; char alf2 [31]; bool check = true; int pos,i = 0; int a = 0,b = 0; int j; char *message = new char[]; char ch; cout<<"Alfavit shifra cezarya\n"; for ( i = 0; i<31 ; i++) cout<<alf[i]<<" "; //Vvod cout<<"\n\nVvedite soobshenie:"<<endl; cin>>message; cout<<"Enter a 1<=a<=28: "<<endl; cin>>a; //for ( i = 0; i<31 ; i++) // alf2[i]=alf[(a*(i)+b)%31]; //shefrovanie i = 0; while(message[i] != '\0') { // ishem v alfavite for( int k = 0; k < 31; k++) if (message[i]==alf[k]) { pos = k; break; } j = (pos + a) % 31; message[i] = alf[j]; i++; } cout<<"\n\n"; cout<<"soobshenie shifro: "<<message<<endl; cout<<"Enter a 1<=a<=28: "<<endl; cin>>a; i =0; while(message[i] != '\0') { for( int k = 0; k < 31; k++) { if (message[i]==alf[k]) { pos = k; break; } } if((pos - a) < 0) { j = (31 + (pos - a)) % 31; } else j = (pos - a) % 31; message[i] = alf[j]; i++; } cout<<"deshifracia message: "<<message<<endl; system("PAUSE"); } Подскажите как реализовать "Шифр цезаря с ключевым словом". Заранее спасибо. |
13.12.2012, 12:18 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Созданные участниками форума обсуждения которые имеют сходства с вашим Моя последняя работа Моя последняя работа Работа со строками |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|