Дан алгоритм для Робота:
алг
нач
нц 27 раз
вправо; закрасить
КЦ
кон
ОЕсли правее Робота не встретится препятствий, то, выполнив приведённый выше алгоритм, он переместится
на 27 клеток вправо и закрасит эти клетки.
ОЕсли правее Робота не встретится препятствий, то, выполнив приведённый выше алгоритм, он переместится
на 27 клеток вправо.
ОЕсли правее Робота не встретится препятствий, то, выполнив приведённый выше алгоритм, он переместится
на п клеток вправо и закрасит эти клетки.
ОЕсли левее Робота не встретится препятствий, то, выполнив приведённый выше алгоритм, он переместится
на 27 клеток влево и закрасит эти клетки.
ответить!
лава РУС
def zadanie(line, time)
line = line.gsub(/[^MD]/, "")
time.times { |i|
k = 0
while k < line.size - 1 do
if line[k..k + 1] == "MD"
line[k], line[k + 1] = line[k + 1], line[k]
k+=1
end
k+=1
end
p [i+1,line]
}
return line
end
# # Примеры применения
p zadanie("DMMDMDMDMMMDMMMM", 9)
Вывод
[1, "DMDMDMDMMMDMMDMDDDMM"]
[2, "DDMDMDMMMDMMDMDMDDMM"]
[3, "DDDMDMMMDMMDMDMDMDMM"]
[4, "MMMDMMDMDMDMDMMM"]
[5, "MMDMMDMDMDMD"]
[6, "MDMMDMDMDMD"]
[7, "MMDMDMDMD"]
[8, "MDMDMDMD"]
[9, "MDMDMD"]
"MDMDMD"
// Внимание! Если программа не работает, обновите версию!
function cx(x:real):string;
begin
if frac(x)=0 then
case Trunc(x) of
0: Result:='';
1: Result:='*exp(x)';
-1:Result:='*exp(-x)'
else Result:='*exp('+x+'x)'
end
else Result:='*exp('+x+'x)'
end;
function cx1(x:real):string;
begin
if frac(x)=0 then
case Trunc(x) of
1: Result:='';
-1:Result:='-'
else Result:=x.ToString
end
else Result:=x.ToString
end;
begin
var b,c:real;
Writeln('Введите коэффициенты уравнения y+by''+cy=0');
Read(b,c);
var d:=b*b-4*c;
if d>0 then begin
d:=sqrt(d);
var x1:=(-b-d)/2;
var x2:=(-b+d)/2;
Writeln('y=c1',cx(x1),'+c2',cx(x2))
end
else
if d=0 then begin
var x:=-b/2;
if x=0 then Writeln('y=c1+c2*x')
else Writeln('y=c1',cx(x),'+c2*x',cx(x))
end
else begin
var re:=-b/2;
var im:=sqrt(-d)/2;
if re=0 then Writeln('y=c1*cos(',cx1(im),'x)+c2*sin(',cx1(im),'x)')
else Writeln('y=exp(',cx1(re),'x)*(c1*cos(',cx1(im),
'x)+c2*sin(',cx1(im),'x))')
end
end.
Примеры
Введите коэффициенты уравнения y''+by'+cy=0
-2 10
y=exp(x)*(c1*cos(3x)+c2*sin(3x))
Введите коэффициенты уравнения y''+by'+cy=0
-4 3
y=c1*exp(x)+c2*exp(3x)