дешифровки: Const sh = '_.,'; Var St : String; i : Integer; Function DeCode(S : String; Tabl : String; k : Integer) : String; Var j,n : Integer; Begin For j:=1 to Length(S) do Begin n:=Pos(S[j],sh); If n>0 then Begin n:=n+k; While n>Length(sh) do n:=n-Length(sh); While n<=0 do n:=n+Length(sh); S[j]:=sh[n]; end end; DeCode:=S; end; Begin St:='ЗЫФЙГФШРЦ . ШД'; Writeln(Decode(St,sh,-6)); //For i:=-10 to 10 do Writeln(Decode(St,sh,i)); end.
Запишем этот алгоритм, и на место команды1 поставим команду сместиться на (a, b). (здесь a, b -это нужные нам координаты смещения в команде1)
Повтори 2 раз Сместиться на (a, b) Сместиться на (3, 2) Сместиться на (2, 1) Конец Сместиться на (−6, −4)
Выполнение этого алгоритма приведёт к следующим смещениям по оси икс: a + 3 + 2 + a + 3 + 2 - 6 Так как нам известно, что в результате этих смещений чертёжник вернулся в исходную точку, то это значит что сумма всех смещений равна нулю. Можем записать уравнение и найти a: a + 3 + 2 + a + 3 + 2 - 6 = 0 2a + 4 = 0 2a = -4 a = -4 / 2 = -2 (нашли смещение по x в команде1)
Далее, делаем то же самое для смещения по y: Выполнение этого алгоритма приведёт к следующим смещениям по оси игрек: b + 2 + 1 + b + 2 + 1 - 4 Составляем уравнение: b + 2 + 1 + b + 2 + 1 - 4 = 0 2b + 2 = 0 2b = -2 b = -2 / 2 = -1 (нашли смещение по y в команде1)
Значит, вместо команды1 нужно поставить команду, указанную в варианте ответа 1) Сместиться на (-2, -1)
какую таблицу именно длинную короткую или прямую