Определите, что будет напечатано в результате выполнения следующего алгоритма, записаннного в Паскале. Var s, k:integer Begin S:=0 for k:=-5 to 10 do s:=2*k+s; writeln(s) end.
дешифровки: 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.
Расстояние от точки до начала координат находится как длина гипотенузы прямоугольного треугольника, катетами которого являются координаты точки. Поскольку нам нужны не сами расстояния, а лишь сравнить их, то можно сравнивать квадраты, чтобы не извлекать корня.
// PascalABC.NET 3.0, сборка 1088 var x1,x2,y1,y2,r1,r2:real; begin Write('Введите координаты первой точки: '); Read(x1,y1); Write('Введите координаты второй точки: '); Read(x2,y2); r1:=sqr(x1)+sqr(y1); r2:=sqr(x2)+sqr(y2); if r1>r2 then Writeln('Ближе вторая точка') else if r1<r2 then Writeln('Ближе первая точка') else Writeln('Точки равноудалены') end.
Тестовое решение: Введите координаты первой точки: 16.3 -11.7 Введите координаты второй точки: 15.8 12 Ближе вторая точка
ответ: 80.
s: = 2 * k + s = 2 * (-5) + 0 = -10s: = 2 * k + s = 2 * (-4) + (-10) = -18s: = 2 * k + s = 2 * (-3) + (-18) = -24s: = 2 * k + s = 2 * (-2) + (-24) = -28s: = 2 * k + s = 2 * (-1) + (-28) = -30s: = 2 * k + s = 2 * 0 + (-30) = -30s: = 2 * k + s = 2 * 1 + (-30) = -28s: = 2 * k + s = 2 * 2 + (-28) = -24s: = 2 * k + s = 2 * 3 + (-24) = -18s: = 2 * k + s = 2 * 4 + (-18) = -10s: = 2 * k + s = 2 * 5 + (-10) = 0s: = 2 * k + s = 2 * 6 + 0 = 12s: = 2 * k + s = 2 * 7 + 12 = 26s: = 2 * k + s = 2 * 8 + 26 = 42s: = 2 * k + s = 2 * 9 + 42 = 60s: = 2 * k + s = 2 * 10 + 60 = 80