IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Криптография, Причем, примитивная :)
Дюдя
сообщение 5.07.2006 16:23
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


Решил написать примитивный шифровальщик smile.gif
Идея такая: вводим слово, а программа сдвигает каждую букву вперед по алфавиту.
"А" меняется на "Б", "Б" на "В" и т.д.
Но беда - не сообразил, как сделать. Натолкните на верную мысль, пожалуйста smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 8)
Bokul
сообщение 5.07.2006 16:27
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 117
Пол: Мужской
Реальное имя: Богдан

Репутация: -  11  +


if a='z' then
a:='a'
else
a:=succ(a);


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 5.07.2006 16:33
Сообщение #3


Гость






Хорошо. "Я" на что меняться будет? Опять на "А"?

Тогда легче просто описАть строку - алфавит и работать с ней:
Const
alpha: string = 'АБВ...ЭЮЯ';
{ естественно, строка должна быть заполнена ВСЕМИ символами алфавита }
...
readln(s);
for i := 1 to length(s) do
s[i] := alpha[(pos(s[i], alpha) mod Length(alpha)) + 1];


Bokul, а то, что множество символов кириллицы разорвано между 'п' и 'р', это ничего? У тебя там будет сбой smile.gif
 К началу страницы 
+ Ответить 
Дюдя
сообщение 5.07.2006 16:42
Сообщение #4





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


Да, опять на А smile.gif
Зато полноценный криптограф получается, правда слабенький smile.gif Весьма...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 5.07.2006 16:44
Сообщение #5


Гость






Дюдя, сюда тоже загляни:
Шифрование текста
 К началу страницы 
+ Ответить 
Bokul
сообщение 5.07.2006 16:50
Сообщение #6


Гуру
*****

Группа: Пользователи
Сообщений: 1 117
Пол: Мужской
Реальное имя: Богдан

Репутация: -  11  +


Цитата
Зато полноценный криптограф получается, правда слабенький Весьма

Можно привести полностю в нечитаемий вид изменив чуточку алфавит( у Volvo это alpha), добавив
некоторые символы и цифры: №"%?*()_+459*-+ и т.д.

Сообщение отредактировано: Bokul - 5.07.2006 16:51


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Дюдя
сообщение 5.07.2006 17:40
Сообщение #7





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


Получился шифровальщик для самых маленьких smile.gif
Код

program shtirliz;
uses crt;
const
alpha: string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 !@#$%^&*(),/2';

var
s: string;
i: byte;

begin
clrscr;
write('Enter text: ');
readln(s);
  for i := 1 to length(s) do
    s[i] := alpha[(pos(s[i], alpha) mod Length(alpha)) +1];
  for i := 1 to length(s) do
  write(s[i]);
readln;
write('Now we will decode it! Press enter!');
readln;
  for i := 1 to length(s) do
    s[i] := alpha[(pos(s[i], alpha) mod Length(alpha)) -1];
  for i := 1 to length(s) do
  write(s[i]);
readln;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 5.07.2006 18:05
Сообщение #8


Гость






Дюдя, проверь на строке, в которой есть 'A' smile.gif
 К началу страницы 
+ Ответить 
Bokul
сообщение 5.07.2006 18:05
Сообщение #9


Гуру
*****

Группа: Пользователи
Сообщений: 1 117
Пол: Мужской
Реальное имя: Богдан

Репутация: -  11  +


Цитата
Получился шифровальщик для самых маленьких

s[i] := alpha[(pos(s[i], alpha) mod Length(alpha)) +1];

s[i] := alpha[(pos(s[i], alpha) mod Length(alpha)) +1];

Вместо единицы введи целочисленную переменную, ключ.
По нему ты сможешь шифровать строчку, и только зная его - расшифровать ее.
alpha: string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 !@#$%^&*(),/2';

Лучше разбросать, перемешать елементы алфавита между собой.


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.07.2025 17:34
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"