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

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

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

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

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

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

Изменить программу. В ней должны выбираться 2 режима
а) Зашифровать данный текст.

б) Расшифровать данный текст.
Код:
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.

Последний раз редактировалось Alex11223; 25.09.2016 в 21:43.
Анна997 вне форума Ответить с цитированием
Старый 25.09.2016, 21:43   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А вы почему не можете это сделать?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 25.09.2016, 21:53   #3
Анна997
Пользователь
 
Регистрация: 15.04.2016
Сообщений: 26
По умолчанию

если бы могла, то не писала бы сюда
Анна997 вне форума Ответить с цитированием
Старый 25.09.2016, 22:05   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Так я и спрашиваю, почему не можете, в чем именно проблема?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменить программу Maxim888 Помощь студентам 1 12.11.2015 19:38
нужно изменить программу Devil669 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 12 22.01.2015 23:03
Изменить программу HECTOR.A. Помощь студентам 0 05.06.2009 00:06