Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

c++ 2 курс / вариант 13

.txt
Скачиваний:
13
Добавлен:
12.02.2015
Размер:
1.86 Кб
Скачать
#include<iostream>
#include<locale>
#include<windows.h>

using namespace std;

int main() {
	
setlocale(LC_ALL, ".1251"); // русский яз
	
	
int maxLen = 0; // макс длина
cout<<"Введите максимальную длину строки: ";
cin>>maxLen;
char *str = new char[maxLen]; // объявляем массив с набором символов 
	
cin>>str; // ввод набора символов
if (strlen(str) <= maxLen) { // если мы ввели символов меньше или столько же сколько максимум идем дальше
		
maxLen = strlen(str); 
cout<<"Введите слово"<<endl;
char *word = new char[maxLen]; //объявляем слово которое будет кодировать
cin>>word;// вводим его
int *wordHash = new int[maxLen];// объявляем массив для хранения ключей символов в слове
int k = 0;
		
for (int i = 0; i < strlen(word); i++) { // набор символов
		
bool flag = false; // флаг устанавливает в ложь 
for (int j = 0; j < strlen(str); j++) { // слово
				
if (word[i] == str[j]) {// каждую букву слова ищем в наборе символов если находим устанавливаем флаг в истину
flag = true;
wordHash[k] = j; // как только нашли нужную букву записали ее в ключи массив
cout<<wordHash[k]; // вывод элементов маасива ключей
k++;
}
}				
		
if (!flag) {
				
cout<<"В слове найдены лишние символы"<<endl;
system("pause");
return 0;
}
}
cout<<endl; 
int len = 0;
cout<<"Введите длину ключа"<<endl;
cin>>len;
	
int *salt = new int[len]; // массив с ключем по которому будем шифровать
cout<<"Введите ключ"<<endl;
	
for (int i = 0; i < len; i++) // посимпольный ввод чз пробел или инт
cin>>salt[i]; 
	
for (int i = 0; i < k; i++) { //шифрование
		
cout<<(wordHash[i] + salt[i % len]) % 10; // берем каждый ключ из массива ключей и складываем его с
													
// соответствующим элементом массива ключа для шифрования
		}
	
cout<<endl; 
}
else {
	
cout<<"ERROR"<<endl;
}
	
system("pause");
return 0;
}
Соседние файлы в папке c++ 2 курс