Форум программистов, компьютерный форум CyberForum.ru

Зашифровать строку, выполнив циклическую замену каждой буквы - C++

Восстановить пароль Регистрация
 
Anela Kitano
2 / 2 / 1
Регистрация: 11.12.2013
Сообщений: 37
11.05.2014, 22:27     Зашифровать строку, выполнив циклическую замену каждой буквы #1
Перевести программу с паскаля на с++

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
// Дана строка-предложение на русском языке и число K (0 < K < 10). 
// Зашифровать строку, 
// выполнив циклическую замену каждой буквы на букву того же регистра, 
// расположенную в алфавите на K-й позиции после шифруемой буквы 
// (например, для K = 2 «А» перейдет в «В», «а» — в «в», «Б» — в «Г», «я» — в «б» и т. д.). 
// Букву «ё» в алфавите не учитывать, знаки препинания и пробелы не изменять. 
Program String63;
var
Dano:string; // вводимая строка 
Otvet:string; // ответ 
j:integer; // счётчик цикла 
i:integer; // счётчик цикла 
K:integer; // Задоваемое число 
function Sumbol(H:Char; K:integer):Char; // функция шифрующая один символ 
var
temp:array [1..32] of char;
Ttemp:array [1..32] of char;
bol: boolean; // флаг совершения операции 
begin
// массив строчных букв 
temp[1]:='а'; temp[2]:='б'; temp[3]:='в';
temp[4]:='г'; temp[5]:='д'; temp[6]:='е';
temp[7]:='ж'; temp[8]:='з'; temp[9]:='и';
temp[10]:='й';temp[11]:='к';temp[12]:='л';
temp[13]:='м';temp[14]:='н';temp[15]:='о';
temp[16]:='п';temp[17]:='р';temp[18]:='с';
temp[19]:='т';temp[20]:='у';temp[21]:='ф';
temp[22]:='х';temp[23]:='ц';temp[24]:='ч';
temp[25]:='ш';temp[26]:='щ';temp[27]:='ъ';
temp[28]:='ы';temp[29]:='ь';temp[30]:='э';
temp[31]:='ю';temp[32]:='я';
 
// массив заглавных букв 
Ttemp[1]:='А'; Ttemp[2]:='Б'; Ttemp[3]:='В';
Ttemp[4]:='Г'; Ttemp[5]:='Д'; Ttemp[6]:='Е';
Ttemp[7]:='Ж'; Ttemp[8]:='З'; Ttemp[9]:='И';
Ttemp[10]:='Й';Ttemp[11]:='К';Ttemp[12]:='Л';
Ttemp[13]:='М';Ttemp[14]:='Н';Ttemp[15]:='О';
Ttemp[16]:='П';Ttemp[17]:='Р';Ttemp[18]:='С';
Ttemp[19]:='Т';Ttemp[20]:='У';Ttemp[21]:='Ф';
Ttemp[22]:='Х';Ttemp[23]:='Ц';Ttemp[24]:='Ч';
Ttemp[25]:='Ш';Ttemp[26]:='Щ';Ttemp[27]:='Ъ';
Ttemp[28]:='Ы';Ttemp[29]:='Ь';Ttemp[30]:='Э';
Ttemp[31]:='Ю';Ttemp[32]:='Я';
bol:=true;
for i:=1 to 32-K do
begin
if h=temp[i] then begin Sumbol:=temp[i+K]; bol:=false; end;
end;
if bol then
begin
for i:=32-K+1 to 32 do
begin
if h=temp[i] then begin Sumbol:=temp[K-(32-i)]; bol:=false; end;
end;
end;
 
if bol then begin
for i:=1 to 32-K do
begin
if h=Ttemp[i] then begin Sumbol:=Ttemp[i+K]; bol:=false; end;
end;
if bol then
begin
for i:=32-K+1 to 32 do
begin
if h=Ttemp[i] then begin Sumbol:=Ttemp[K-(32-i)]; bol:=false; end;
end;
end;
end;
if bol then Sumbol:=h;
end;
/////////////////// основная программа///////////////////////////////////// 
begin
// ввод данных 
Write('Введите K ');
readln(K);
Write('Введите строку-предложение на русском языке: ');
readln(Dano);
 
// решение 
for j:=1 to length(Dano) do //проход по всем символам строки 
begin
// шифруем очередной символ и присваиваем к результирующей строке 
Otvet:=Otvet+Sumbol(Dano[j],K);
end;
// вывод результата 
Writeln('Новая строка : ',otvet);
end.
Если возможно, то прошу помочь описать этот код в меньшем виде.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.05.2014, 22:27     Зашифровать строку, выполнив циклическую замену каждой буквы
Посмотрите здесь:

C++ в заданном тексте после каждой буквы «b» добавляет буквы «ak».
написать функцию, которая сканирует строку и возвращает слово если ASCII код каждой буквы этого слова четный C++
В текстовом файле после каждой 2 буквы вставлять буквы из слова C++
C++ Зашифровать строку, выполнив циклическую замену букв
C++ Программа считывает строку текста, выводит число слов и количество вхождений каждой буквы
После каждой 2 Буквы вставлять строку символов MAU C++
C (СИ) - Ввести строку символов.И После каждой 2 Буквы ( Именно буквы ) Вставить слово C++
Нужно зашифровать строку C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 09:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru