View difference between Paste ID: PXxr3iT2 and BY0hy9gc
SHOW: | | - or go back to the newest paste.
1
program c4;
2
const N=200;
3
var s:string[200];
4
    i,l,k:integer;
5
        str:array[1..N] of integer ;
6
        buk:boolean ;
7
8
begin
9
readln(s);
10
for i:=1 to length(s) do
11
str[i]:=ord(s[i]);     {записываем в массив код каждого символа в строке}
12
i:=1;k:=0;              {обнуляю счестчик K,а счетчик i=1 т.к. строка с 0 символа не начинаеться}
13
while s[i]<>'#' do      {запуск цикла, выполнение пока не обнаружит символ #}
14
begin
15
if s[i] in ['a'..'z', 'A'..'Z'] then k:=k+1;   { проверка символа, являеться ли он буквой, если да, ув. счетчик на 1}
16
i:=i+1;                                        { счетчик номера символа +1}
17
buk:=s[i] in ['a'..'z', 'A'..'Z'];              { если символ, значение buk=true, если нет buk=false  }
18
if buk=false then                               { проверка,являлся ли символ буквой, если не являлся,значит слово кончилось и начинаеться запуск кодирования слова}
19
 begin
20-
  for l:=i-1 downto i-k do                       {запуск цикла, для изменения каждой буквы слова}
20+
  for l:=i-1 downto i-k do                       {запуск цикла, для изменения каждой буквы слова, -1 потому что проверка buk стоит уже после увеличения счетчика}
21
  begin
22
  if s[l] in ['a'..'z'] then                     {проверка, являеться ли буква строчной, если да, проверка 1,если нет - проверка 2}
23
  if str[l]+k<=ord('z') then str[l]:=str[l]+k else str[l]:=ord('a')+(str[l]+k-1-ord('z')) {проверка 1, если код символа после кодирования,больше чем код буквы "z",то к номеру символа "a"(97) прибавляем разницу между полученным кодом и кодом символа "z"(122). Пример:если код буквы 120, а длинна слова была 4, то получим 124, что больше кода буквы "z".97+(124-1-122)=9. Откуда -1?Т.к мы прибавляем к коду буквы "a", не считая ее саму }
24
25
  else if str[l]+k<=ord('Z') then str[l]:=str[l]+k else str[l]:=ord('A')+(str[l]+k-1-ord('Z'));  {Проверка 2, аналогично проверке 1, только для заглавных букв}
26
  end;
27
  k:=0;     {После завершения кодирования словв, обнуляем счетчик длинны слова}
28
end;
29
end;
30
for i:=1 to length(s) do
31
write(chr(str[i]));;     {выводим результат, меняя код , на его символ}
32
end.