Решил написать примитивный шифровальщик
Идея такая: вводим слово, а программа сдвигает каждую букву вперед по алфавиту.
"А" меняется на "Б", "Б" на "В" и т.д.
Но беда - не сообразил, как сделать. Натолкните на верную мысль, пожалуйста
if a='z' then
a:='a'
else
a:=succ(a);
Хорошо. "Я" на что меняться будет? Опять на "А"?
Тогда легче просто описАть строку - алфавит и работать с ней:
Const
alpha: string = 'АБВ...ЭЮЯ';
{ естественно, строка должна быть заполнена ВСЕМИ символами алфавита }
...
readln(s);
for i := 1 to length(s) do
s[i] := alpha[(pos(s[i], alpha) mod Length(alpha)) + 1];
Да, опять на А
Зато полноценный криптограф получается, правда слабенький Весьма...
Дюдя, сюда тоже загляни:
http://forum.pascal.net.ru/index.php?showtopic=3913
Получился шифровальщик для самых маленьких
Дюдя, проверь на строке, в которой есть 'A'
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';
function code(a: string; f: integer): string;
var
e: string;
b: char;
c, d: integer;
begin
d := 1;
e := '';
while d <= length(a) do
begin
b := a[d];
c := ord(b);
c := c + f;
b := chr©;
e := e + b;
d := d + 1;
end;
Result := e;
end;
function decode(a:string; f:integer):string;
var
e: string;
b: char;
c, d: integer;
begin
d := 1;
e := '';
while d <= length(a) do
begin
b := a[d];
c := ord(b);
c := c - f;
b := chr©;
e := e + b;
d := d + 1;
end;
Result := e;
end;
var
a, b, c: string;
f: integer;
begin
randomize;
f:=random(1, 10);
read(a);
b := code(a, f);
writeLn(b);
c := decode(b, f);
writeLn©;
end.
Прикрепленные файлы
coder.pas ( 769 байт )
Кол-во скачиваний: 256