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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2011, 19:39   #1
DesignFootball.Ru
Пользователь
 
Регистрация: 17.02.2011
Сообщений: 57
По умолчанию Шифр "Тарабарщина" - замена одних букв другими

Итак, начну с определения Тарабарщины

Тарабарская грамота, простая литорея — шифр, широко использовавшийся в древнерусских рукописях.

Представляет собой простейший шифр замены без ключа. Согласные в алфавите делят на две равные части, и первую пишут строкой в алфавитном порядке, а вторую под буквами первой в обратном порядке. Таким образом получают таблицу:

б в г д ж з к л м н
щ ш ч ц х ф т с р п


Употребляют в письме верхние буквы вместо нижних и наоборот, а гласные остаются без изменения. Так, например, словарь на тарабарской грамоте будет лсошамь, великий государь — шеситий чолуцамь и т. п. Для расшифровки используют тот же способ, что и для шифрования (шифр симметричный).


Мне нужно написать программу, которая переводит шифрованный текст в обычный.

Например, "Шещ-нмочмарримошапие" будет звучать как "Веб-программирование"

Как реализовать данную задачу в Pascal ABC?

Спасибо!
DesignFootball.Ru - Первый русскоязычный сайт о футбольной экипировке.
DesignFootball.Ru вне форума Ответить с цитированием
Старый 17.02.2011, 21:17   #2
Ilya1986g
 
Регистрация: 16.02.2011
Сообщений: 5
По умолчанию

Очень элементарно:
var
s: string;
i,k: integer;
begin
WriteLn('Введите строку:');
ReadLn(s);
k:=length(s);
for i:=1 to k do
case s[i] of
'б': s[i]:='щ';
'в': s[i]:='ш';
'г': s[i]:='ч';
'д': s[i]:='ц';
'ж': s[i]:='х';
'з': s[i]:='ф';
'к': s[i]:='т';
'л': s[i]:='с';
'м': s[i]:='р';
'н': s[i]:='п';

'щ': s[i]:='б';
'ш': s[i]:='в';
'ч': s[i]:='г';
'ц': s[i]:='д';
'х': s[i]:='ж';
'ф': s[i]:='з';
'т': s[i]:='к';
'с': s[i]:='л';
'р': s[i]:='м';
'п': s[i]:='н';
{Если необходимо то сделайте и для строчных букф так же}
end;
Write(s);
end.
Ilya1986g вне форума Ответить с цитированием
Старый 17.02.2011, 21:29   #3
DesignFootball.Ru
Пользователь
 
Регистрация: 17.02.2011
Сообщений: 57
По умолчанию

Ilya1986g,
огромное спасибо!
в том же ключе и сам пытался делать, но не мог разобраться с этой строчкой
k:=length(s);
for i:=1 to k do
case s[i] of

Ещё раз спасибо!
DesignFootball.Ru - Первый русскоязычный сайт о футбольной экипировке.
DesignFootball.Ru вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена букв в строке другими буквами Palomnik1096 Microsoft Office Excel 7 07.07.2014 07:17
Подсчитать количество букв "А" в предложении и общее количество букв.В тексте из файла несколько строк. kvas91 Общие вопросы C/C++ 3 14.11.2010 16:51
Найти слова, в которых доля букв "а" и "е" минимальна. Андрей_ка Паскаль, Turbo Pascal, PascalABC.NET 0 10.10.2010 16:56
"Шифр Цезаря" на СИ, проблема с русским алфавитом Antowka Помощь студентам 9 30.01.2010 18:32
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04