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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.09.2016, 14:26   #1
Анна997
Пользователь
 
Регистрация: 15.04.2016
Сообщений: 26
По умолчанию Прокомментируйте пожалуйста задачу

Прокомментируйте пожалуйста задачу , что от куда берется.
Задача на шифрование и расшифровку .


const n=30;
var a,b:array[1..n] of integer;
s,s1,s2,r:string;
i, j, p, key:byte;
m:set of byte;
begin
writeln('Введите текст для шифрования: ');
readln(s);
writeln('-------------------------------------------------');
write('Введите количество цифр в ключе от 2 до ',n,' key= ');
readln(key);
while length(s) mod key<>0 do s:=s+' ';
writeln('Введите ключ из ',key,' цифр: ');
m:=[];
for i:=1 to key do
begin
repeat
readln(p);
until(p in [1..key])and not(p in m);
a[i]:=p;
m:=m+[p];
end;
r:='';
i:=1;
while i<=length(s)-key+1 do
begin
s1:=copy(s,i,key);
s2:='';
for j:=1 to key do
s2:=s2+s1[a[j]];
r:=r+s2;
i:=i+key;
end;
for i:=length(r) downto 1 do
if r[i]=' ' then delete(r,i,1);
writeln('--------------------------------------------------');
writeln('Зашифрованный текст: ');
writeln(r);
//создадим ключ для дешифровки
for i:=1 to key do
begin
for j:=1 to key do
if a[j]=i then b[i]:=j
end;
s:=r;
while length(s) mod key<>0 do s:=s+' ';
r:='';
i:=1;
while i<=length(s)-key+1 do
begin
s1:=copy(s,i,key);
s2:='';
for j:=1 to key do
s2:=s2+s1[b[j]];
r:=r+s2;
i:=i+key;
end;
for i:=length(r) downto 1 do
if r[i]=' ' then delete(r,i,1);
writeln('Расшифрованный текст');
writeln(r);
End.
Анна997 вне форума Ответить с цитированием
Старый 25.09.2016, 14:48   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Все вводится пользователями - текст для шифрования и ключ.
p51x вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прокомментируйте пожалуйста код Никита69 Помощь студентам 0 24.12.2015 02:13
Пожалуйста 2 и 3 задачу Ербол93 Помощь студентам 7 22.04.2014 15:04
пожалуйста прокомментируйте мне программку Джессика Помощь студентам 1 20.12.2013 14:15