Программирование в VBA Робот может перемещаться в четырех направлениях( n- север, w - запад, s - юг, e - восток) и принимать пять цифровых команд : 0 - остановка, 1 - продолжать движение, -1 - движение реверсом, 2 - поворот направо, -2-поворот налево. Дан символ C - исходное направление робота и целое число N - посланная ему команда. Вывести направление робота после выполнения каждой полученной команды, вплоть до остановки.
92
Объяснение:
+1; *2; ^2; 2 --> 27
начало 2
3 2+1 1
4 3+1; 2^2; 2*2 3
5 4+1 3
6 5+1; 3*2 3+1=4
7 6+1 4
8 7+1; 4*2 4+3=7
9 8+1; 3^2 7+1=8
10 9+1; 5*2 8+3=11
11 10+1 11
12 11+1; 6*2 11+4=15
13 12+1 15
14 13+1; 7*2 15+4=19
15 14+1 19
16 15+1; 8*2; 4^2 19+7+3=29
17 16+1 29
18 17+1; 9*2 29+8=37
19 18+1 37
20 19+1; 10*2 37+11=48
21 20+1 48
22 21+1; 11*2 48+11=59
23 22+1 59
24 23+1; 12*2 59+15=74
25 24+1; 5^2 74+3=77
26 25+1; 13*2 77+15=92
27 26+1 92
while { не конец последовательности (не известно от куда аффтар получает слова ) } do
begin
Slovo := { Получаем очередное слово последовательности };
if Length(Slovo) <= Length(Prime) then
begin
CopyPrime := Prime;
N := 1;
while (N <= Length(Slovo)) and (Pos(Slovo[N], CopyPrime) > 0 do
begin
Delete(CopyPrime, Pos(Slovo[N], CopyPrime), 1);
Inc(N);
end;
if N > Length(Slovo) then
{ Slovo можно получить из первого слова }
else
{ нельзя получить Slovo из первого слова }
end;
end;