текст задачи:
на вход программе подается зашифрованный текст заканчивающейся точкой (другие точки во входной информации отсутствуют). он зашифрован следующим образом:
Сначала определяется количество букв в самом коротком слове, обозначив полученное число через К (словом называется непрерывная последовательность английских букв, слова друг от друга отделяются любыми другими символами). Затем заменяется каждая английская буква в тексте на букву, стоящую в английском алфавите К букв ранее (алфавит считается циклическим, то есть, перед буквой А стоит Z), другие символы остаются неизменными. Строчные буквы при этом остались строчными, а прописные прописными.
Требуется написать программу которая будет расшифровывать текст
мой код неверен т.к. при подаче на вход сообщения:
zz aa x/.
на выходе:
bb cc z/
2
Код:
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
s: string;
d, i, min: integer;
f: boolean;
begin
readln(s); //инфа на входе: zz aa x/.
delete(s, pos('.',s), length(s));
min:=length(s);
d:=0;
//f:=false;
for i:=1 to length(s) do
begin
if (s[i] in ['a'..'z']) or (s[i] in ['A'..'Z']) then
begin
d:=d+1;
f:=true;
end
else
if (min>d) and f then
begin
min:=d;
d:=0;
f:=false;
end;
end;
for i:=1 to length(s) do
if (s[i] in ['a'..'z']) or (s[i] in ['A'..'Z']) then
begin
s[i]:=chr(ord(s[i])+min);
if ord(s[i])>ord('z') then
s[i]:=chr(ord('a')+(ord(s[i])-ord('z')-1));
end;
// инфа на выходе
writeln(s); // bb cc z/
writeln(min); // 2
read(s);
{ TODO -oUser -cConsole Main : Insert code here }
end.
подскажите, не вижу ошибки