1)
Код:
delete(s, pos('.',s), length(s));
нехорошо, потому что ты указываешь, откуда удалить и СКОЛЬКО удалять. За это могут снять баллы наверно.
2) если на K букв РАНЕЕ, то логично, что надо вычитать, а не складывать:
Код:
s[i]:=chr(ord(s[i])-min);
3) сравнивать символы можно и без ord():
4) раз мы вычитаем, то надо так:
Код:
if s[i] in ['a'..'z']then
begin
s[i]:=chr(ord(s[i])-k);
if s[i]<'a' then
s[i]:=s[i]+26; // 26 букв в латинском алфавите
end
else if s[i] in ['A'..'Z']then
begin
s[i]:=chr(ord(s[i])-k);
if s[i]<'A' then
s[i]:=s[i]+26; // 26 букв в латинском алфавите
end;
или так:
Код:
if s[i] in ['A'..'z'] then
begin
if chr(ord(upcase(s[i]))-k)<'A' then
s[i]:=s[i]+26;
s[i]:=s[i]-k;
end;