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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2011, 19:27   #1
Novenkaja
Форумчанин
 
Регистрация: 29.12.2010
Сообщений: 176
Вопрос Шифровка и расшифровка через текстовые файлы в Паскале

Добрый вечер всем !

Задание такое необычное.
Надо составить программу, которая создаст шифровку и расшифровку Naiva teksta(как я полагаю это простого текста,т.к. дословный перевод наивного текста),используя шаблон,квадрат 4 на 4.

1.JPG

в самом вверху как раз и написано что,шифрование как полагаю простым текстом,использую шаблон.
Белые квадратики это те места,где мы можем видеть буквы, теперь же надо выбрать другие квадратики,которые будут белыми.(это шифровка)

а во втором квадратике написано-в этом пруду раков нет. это как раз отшифровка.
это вот шифровку и её расшифровку надо как то показать в программе через код.
У меня пока есть только одна мысль насчёт этого задания,что нужна скорей всег матрица 4 на 4.

кто-то может помочь в этом задании???
буду очень признательна и благодарна
Novenkaja вне форума Ответить с цитированием
Старый 24.05.2011, 21:04   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

суть шифра в перестановке букв в заданном порядке. порядок определяется белыми квадратиками. Для приведенного порядок расстановки букв будет следующим следующим
1, 7, 12, 15,
поворачиваем но 90°
4, 9, 11, 14,
еще 90°
2, 5, 10, 16,
еще 90°
3, 6, 8, 13

первая на первое
вторая на седьмое и т.д.

при расшифровке наоборот буквы выбираются в соответсвии с указанными местами
сначала берем первую
потом седьмую и т.д.

и так для каждых 16 букв
неполный последний блок (<16) надо дополнять до полного

Код:
const
  m: array[1..16] of integer = (1, 7, 12, 15, 4, 9, 11, 14, 2, 5, 10, 16, 3, 6, 
8, 13 );
  m2: array[1..4, 1..4] of integer =( (1, 7, 12, 15), (4, 9, 11, 14), (2, 5, 10, 16), (3, 6, 8, 13) );
var
  txt, res1, res2: string;
  n, j, len: integer;
begin
txt:='раки зимуют в реке';
len:=length(txt);
txt:=txt+ '________________';//lдополнили с избытком
res1:=txt;
for j:=1to length(res1) do res1[j]:='.'; //новая строка длины исходной с избытком и контрольным заполнением(очисткой)
n:=0;
while n<len do begin
  for j:=1 to 16 do begin
    res1[ n + m[j]]:=txt[n + j];//расставляем буквы исходного текста на заданные места
    res1x[n +m2[(j-1) div 4, (j-1) mod 4]:=txt[n+j];
    txt[n+j]:='_';
  end;
  n:=n+16;
end;
// res1 зашифровали //showmessage( leftstr (res1,len));

res2:=res1;
for j:=1to length(res2) do res2[j]:='.';//новая строка длины исходной с избытком и контрольным заполнением
n:=0;
while n<len do begin
  for j:=1 to 16 do begin
    res2[n+ j]:=res1[n +m[j]]; // берем буквы с заданных мест
    res2x[n+j]:=res1[n + m2[(j-1) div 4, (j-1) mod 4];
    res1[n+m[j]]:='_';
  end;
  n:=n+16;
end;
// res2 расшифровали showmessage(leftstr(res2, len));
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 24.05.2011 в 21:20.
evg_m вне форума Ответить с цитированием
Старый 24.05.2011, 21:10   #3
Novenkaja
Форумчанин
 
Регистрация: 29.12.2010
Сообщений: 176
По умолчанию

а этот код действует именно по этой картинке? т.е белые квадраты именно там,где они на рисунке?

не совсем уловила мысль ваших слов...
Novenkaja вне форума Ответить с цитированием
Старый 24.05.2011, 21:26   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

наш квадат с номерами ячеек
01 02 03 04
05 06 07 08
09 10 11 12
13 14 15 16
белые ячейки отмечены синим
значит первые четыре буквы должны будут встать на синие места
после поворота квадрата белые ячейки отмечены зеленым
01 02 03 04
05 06 07 08
09 10 11 12
13 14 15 16
следующие четыре буквы встают на зеленые места
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 24.05.2011 в 21:31.
evg_m вне форума Ответить с цитированием
Старый 24.05.2011, 21:32   #5
Novenkaja
Форумчанин
 
Регистрация: 29.12.2010
Сообщений: 176
По умолчанию

да,так уже понятнее

но преподовательзапретил белыми брать те,что у него
допустим я хочу 03 05 10 и 16,как тогда выглядить код будет?
Novenkaja вне форума Ответить с цитированием
Старый 24.05.2011, 21:36   #6
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

меняем данные в массиве m на новые
сначала 3 5 10 15 потом смотрим на квадрат и заполняем
P/S/при использовании 3 и 5 в одну ячейку придется писать давжды
(после поворота 5 придется как раз на 3).
так что придется придумать другой.

для корректной работы из каждой строки можно брать только одно число
1 4 16 13 номера накладывающиеся при поворотах
2 8 15 9
3 12 14 5
6 7 11 10
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 24.05.2011 в 21:47.
evg_m вне форума Ответить с цитированием
Старый 24.05.2011, 21:40   #7
Novenkaja
Форумчанин
 
Регистрация: 29.12.2010
Сообщений: 176
По умолчанию

сейчас попробую
Novenkaja вне форума Ответить с цитированием
Старый 24.05.2011, 21:51   #8
Novenkaja
Форумчанин
 
Регистрация: 29.12.2010
Сообщений: 176
По умолчанию

хорошо,тогда вместо 5 8,тогда ведь нормлаьно будет?
Novenkaja вне форума Ответить с цитированием
Старый 24.05.2011, 21:55   #9
Novenkaja
Форумчанин
 
Регистрация: 29.12.2010
Сообщений: 176
По умолчанию

я вот закину код в программу,ещё не меняла данные в массиве м,но он у меян не компилируется,вот что выдаёт
Novenkaja вне форума Ответить с цитированием
Старый 24.05.2011, 22:13   #10
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

res1x и tres2x то же что что и res1 res2 для демонстрации работы через двумерный массив(m2) их(строки с res1x res2x) можно закоментировать. также как и сам массив m2.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача на паскале тема текстовые файлы, записи шушара Паскаль, Turbo Pascal, PascalABC.NET 4 19.04.2011 20:15
Текстовые файлы в паскале. Как всегда нужна помощь=))) Leona180991 Помощь студентам 5 04.08.2010 17:08
Шифровка и расшифровка текста Ayubkhon Общие вопросы Delphi 2 17.06.2010 16:17
текстовые файлы в паскале MetR Помощь студентам 9 12.06.2010 10:38
Текстовые файлы в паскале Nc1ty_SoBoL Помощь студентам 2 30.06.2009 19:49