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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2017, 18:50   #1
almazmr
Новичок
Джуниор
 
Регистрация: 24.04.2016
Сообщений: 1
По умолчанию Преобразовать код из Turbo Pascal в PascalABC.NET

Помогите преобразовать код под PascalABC.NET
Как я понял, на данный момент он заточен под Turbo Pascal
Суть программы - шифр Трисемуса

Код:
uses crt;
var
  password,codeline,original:string;
  i:integer;
  c:char;
procedure CodeDecode(x:integer);
  var
    j:integer;
  begin
    codeline:='';
    {выводим оригинальную строку}
    writeln(original);
    for i:=1 to length(original)do
      begin
        {считаем корректирующее число}
        j:=8*((1-x + pos(original[i],password)div 8)and 3)
                   + pos(original[i],password)mod 8;
        if j=0 then j:=32;
        {кодирование-декодирование}
        if pos(original[i],password)>0
          then codeline:=codeline+password[j]{если символ есть в таблице кодируем-декодируем}
          else codeline:=codeline+original[i];{если символа нет в таблице копируем без изменения}
    end;
    original:=codeline;{запоминаем новую строку}
    writeln(codeline);{выводим результат}
  end;
begin
  {задаем кодируемый текст}
  original:='контрольное слово или фраза задания';
  {вводим пароль}
  write('Enter password:');
  password:='';
  repeat
    c:=ReadKey;
    write(c);
    if (pos(c,password)=0)and(c<>chr(13)) then password:=password+c;
  until c=chr(13);
  writeln;
  password:='пароль';{контрольный пароль}
  {дополнение русскими буквами таблицы кодирования}
  for i:=160 to 175 do{а - р}
    if pos(chr(i),password)=0 then password:=password+chr(i);
  for i:=224 to 239 do{п - я}
    if pos(chr(i),password)=0 then password:=password+chr(i);
  {организовываем меню}
  repeat
    {выводим таблицу кодирования}
    for i:=1 to length(password)do
      begin
        write(password[i]);
        if (i mod 8)=0 then writeln;
      end;
    {выводим меню}
    writeln('c-code',chr(10),chr(13),'d-decode',chr(10),chr(13),'q-quit');
    c:=ReadKey;
    {кодируем - декодируем}
    if(c='c')or(c='d')then CodeDecode(2*(ord(c)-ord('c')));
  until c='q';
  ReadKey;
end.
Пример реализации:
после задания ключевого слова (password) бандероль
и кодируемой фразы:
original:='вылетаем пятого';

получаем:

Код:
бандерол
ьвгжзийк
мпстуфхц
чшщъыэюя
вылетаем пятого
пекзъвзч шлъйсй
almazmr вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Turbo Pascal/Free Pascal/PascalABC.NET как новый инструмент экстрасенсов Biohazard333 Свободное общение 5 25.09.2016 12:25
код программы на языке PascalABC.NET и C# Namatrasnik Помощь студентам 0 04.06.2016 22:02
код программы на языке PascalABC.NET и C# Namatrasnik Помощь студентам 0 04.06.2016 21:59
Портануть код с PascalABC.NET на Java ZoxWatt Помощь студентам 0 31.05.2012 14:52
преобразовать код С++ в С++.Net Alek86 Общие вопросы .NET 4 01.10.2007 12:00