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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2013, 19:31   #1
mariy337
Новичок
Джуниор
 
Регистрация: 15.01.2013
Сообщений: 1
По умолчанию Реализуйте афинную систему подстановок Цезаря. При A=12, B=7. в любой программе программирования..

Помогите пожалуйста, не могу понять как это делается...
mariy337 вне форума Ответить с цитированием
Старый 15.01.2013, 20:54   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Скажите, а что Вам посоветовал Google по запросу "афинная система подстановок Цезаря"?
Abstraction вне форума Ответить с цитированием
Старый 15.01.2013, 21:07   #3
Blind Guard
Форумчанин
 
Регистрация: 14.03.2012
Сообщений: 139
По умолчанию

Код:
#include "stdafx.h"
using namespace std;
#include <iostream>

#define A 12
#define B 7
#define N 26

int Caesar(char c)
{
	int i, cod;
	switch(c)
	{
		case 'a' : i=0;	break;
		case 'b' : i=1;	break;
		case 'c' : i=2;	break;
		case 'd' : i=3;	break;
		case 'e' : i=4;	break;
		case 'f' : i=5;	break;
		case 'g' : i=6;	break;
		case 'h' : i=7;	break;
		case 'i' : i=8;	break;
		case 'j' : i=9;	break;
		case 'k' : i=10;	break;
		case 'l' : i=11;	break;
		case 'm' : i=12;	break;
		case 'n' : i=13;	break;
		case 'o' : i=14;	break;
		case 'p' : i=15;	break;
		case 'q' : i=16;	break;
		case 'r' : i=17;	break;
		case 's' : i=18;	break;
		case 't' : i=19;	break;
		case 'u' : i=20;	break;
		case 'v' : i=21;	break;
		case 'w' : i=22;	break;
		case 'x' : i=23;	break;
		case 'y' : i=24;	break;
		case 'z' : i=25;	break;
	}
	cod=(A*i+B)%N;
	return cod;
}

char Caesar2(int cod)
{
	char c='c';
	switch(cod)
	{
		case 0 : c='a';	break;
		case 1 : c='b';	break;
		case 2 : c='c';	break;
		case 3 : c='d';	break;
		case 4 : c='e';	break;
		case 5 : c='f';	break;
		case 6 : c='g';	break;
		case 7 : c='h';	break;	
		case 8 : c='i';	break;
		case 9 : c='j';	break;
		case 10 : c='k';	break;
		case 11 : c='l';	break;
		case 12 : c='m';	break;
		case 13 : c='n';	break;
		case 14 : c='o';	break;
		case 15 : c='p';	break;
		case 16 : c='q';	break;
		case 17 : c='r';	break;
		case 18 : c='s';	break;
		case 19 : c='t';	break;
		case 20 : c='u';	break;
		case 21 : c='v';	break;
		case 22 : c='w';	break;
		case 23 : c='x';	break;
		case 24 : c='y';	break;
		case 25 : c='z';	break;
	}
	return c;
}


int _tmain(int argc, _TCHAR* argv[])
{
	char ch='h';
	ch=Caesar2(Caesar(ch));   // Результат: n, т.к. h имеет код 7 и получаем (7*12+7)mod26 = 13, а 13 это у нас код числа n
	cout << ch;             // Реализация далеко не профессиональная, но и я не профессионал :)
}

Последний раз редактировалось Blind Guard; 15.01.2013 в 21:10.
Blind Guard вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
решить задачу, используя любой алгоритм и любой язык программирования oncheva Помощь студентам 0 24.12.2012 18:07
Шифрование. Метод аффинных подстановок Цезаря. Flaina Помощь студентам 0 24.02.2012 13:40
Аффинная система подстановок Цезаря Flaina Помощь студентам 0 09.02.2012 20:00
кypсовaя рaбота (любой язык программирования) motaro Фриланс 7 28.07.2011 12:34
Аффинная система подстановок Цезаря Karyuudo Помощь студентам 12 10.02.2010 19:26