Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Pascal.Шифрование с помощью циклической подстановки.

21K
08 декабря 2006 года
lazio
7 / / 08.12.2006
Помогите пожалуйста с решением.
Задача такого типа:
Дана строка символов (предложение). Зашифровать в ней все латинские символы с помощью циклической подстановки: A=>B=>C…Y=>Z=>A.
257
08 декабря 2006 года
kosfiz
1.6K / / 18.09.2005
если я правильно понял, то A заменяется на B, C на D, вообщем буква заменяется на следующую за ней по алфавиту, ну а последняя на первую, т.е. Z на A, тогда решение будет иметь следующий вид:
Код:
uses
  crt;
var s:string;
    i:word;
begin
readln(s);
for i:=1 to length(s) do
 begin
  if (ord(s)>=65) and (ord(s)<=90)then
   if ord(s)=90 then s:=chr(65) else s:=chr(ord(s)+1);
  if (ord(s)>=97) and (ord(s)<=122)then
   if ord(s)=122 then s:=chr(97) else s:=chr(ord(s)+1);
 end;
 writeln(s);
readln;
end.
8.2K
08 декабря 2006 года
RusHak
86 / / 02.03.2006
Цитата: lazio
Помогите пожалуйста с решением.
Задача такого типа:
Дана строка символов (предложение). Зашифровать в ней все латинские символы с помощью циклической подстановки: A=>B=>C…Y=>Z=>A.


А вот если я правильно понял то это шифрование методом цезаря.

Код:
function GetSimpleText(ShText: String; KeyCod:integer):String;
//GetSimpleText-номер возвращаемого символа
//ShTex - шифруемый текст.
//KeyCod - Ключ (Как в методе Цезаря) для расшифровки кода (Требуеться не везде)
var
 i,LenSh,NumCh,Num,lenCod,b:Integer;
 StrRes,StrCod:String;
 asd:char;
begin
//шифрование по методу Цезаря начало.
      //проверяем каждую букву (разбиваем строку), переводим её в число,
      //прибавляем ключ, переводим число в символ, собираем строку.
      Begin
        LenSh:=Length(ShText);//Возвращаем длину текста
          for i:=1 to LenSh do//Создаём цикл пока не закончиться текст(Разбиваем текст на буквы)
            Begin
              NumCh:=Ord(ShText);//Возвращаем Номер буквы
              Num:=NumCh+KeyCod;//Прибавляем к Номеру буквы ключ(Смещение)
                if Num<256 then//Если результат получился <256
                  begin
                    asd:=chr(Num);//Значит возвращаем букву из символа
                    StrRes:=StrRes+asd;// Создаём текст
                  end
                else// иначе если результат >255
                  Begin
                    asd:=chr(abs((255-num))+31);//Эта строка написана для того, чтобы недопустить значениея о 0 до 31
                    StrRes:=StrRes+asd;//Создаём строку
                  end;
            end;
      end;

отрывок из большой программы шифрования, правда она на DELPHI написана.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог