Код
program coding;
var s : string;
pas1, pas2 : string;
const sogl : set of char = ['q','w','r','t','p','s','d','f','g','h','j','k','l','z','x','c','v','b','n','m'];
glasn: set of char = ['e','y','u','i','o','a'];
procedure code(var s:string; const pas1, pas2: string);
var sn : string;
i : integer;
begin
sn:=pas1+s[1];
for i:=2 to length(s)-1 do
begin
if ((s[i-1] in glasn)and(s[i+1] in glasn))
or
((s[i-1] in sogl)and(s[i+1] in sogl))
then sn:=sn+pas2+s[i]
else sn:=sn+pas1+s[i]
end;
sn:=sn+pas1+s[length(s)];
s:=sn
end;
procedure decode(var s:string; const pas1, pas2: string);
var i : integer;
sn : string;
begin i:=1; sn:='';
while i<=length(s) do begin
if s[i] = pas1[1] then begin
inc(i, length(pas1));
sn:=sn+s[i]
end else begin
inc(i, length(pas2));
sn:=sn+s[i]
end;
inc(i)
end;
s:=sn
end;
begin
Write('Ввелите строку для кодирования ');ReadLn(s);
Write('Введите первый пароль ');ReadLn(pas1);
Write('Введите второй пароль ');ReadLn(pas2);
code(s, pas1, pas2);
Write('Закодировали: ');writeLn(s);
decode(s, pas1, pas2);
Write('Раскодировали: ');writeLn(s)
end.