Julia1331
19.05.2022 01:06

Исполнитель Робот умеет перемещаться по лабиринту, начерченному на плоскости, разбитой на клетки. Между соседними (по сторонам) клетками может стоять стена, через которую Робот пройти не может. У Робота есть девять команд. Четыре команды — это команды-приказы:

вверх вниз влево вправо

При выполнении любой из этих команд Робот перемещается на одну клетку соответственно: вверх ↑ вниз ↓, влево ← , вправо →. Если Робот получит команду передвижения сквозь стену, то он разрушится. Также у Робота есть команда закрасить, при которой закрашивается клетка, в которой Робот находится в настоящий момент.

Ещё четыре команды — это команды проверки условий. Эти команды проверяют, свободен ли путь для Робота в каждом из четырёх возможных направлений:

сверху свободно снизу свободно слева свободно справа свободно

Эти команды можно использовать вместе с условием «если», имеющим следующий вид:

если условие то

последовательность команд

все

Здесь условие — одна из команд проверки условия. Последовательность команд — это одна или несколько любых команд-приказов. Например, для передвижения на одну клетку вправо, если справа нет стенки, и закрашивания клетки можно использовать такой алгоритм:

если справа свободно то

вправо

закрасить

все

В одном условии можно использовать несколько команд проверки условий, применяя логические связки и, или, не, например:

если (справа свободно) и (не снизу свободно) то

вправо

все

Для повторения последовательности команд можно использовать цикл «пока», имеющий следующий вид:

нц пока условие

последовательность команд

кц

Например, для движения вправо, пока это возможно, можно использовать следующий алгоритм:

нц пока справа свободно

вправо

кц

Выполните задание.

Робот должен закрасить прямоугольник стороны которого имеют произвольную длину.

Робот изначально находится в правом верхнем углу.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
KONERtm
17.12.2022 08:12
Для решения подобных заданий, нужно перевести данные цифры в маске и узле в двоичную с.с. и сделать поразрядную коньюнкцию(логическое умножение). 255(10) равно 111 111 11(2) значит, любое число при умножении на это, даст себя же, т.к. при умножении 1 на 0 будет 0, значит первые 2 цифры остануться теми же 224.23, а вот 240 и 251 нужно перевести в двоичнцю с.с. и посчитать. 240(10) это 11 110 000(2), а 251(10) равно 11 111 011, вместе они дадут 11 110 000(2), переводим это число в 10 с.с. это будет 240. При умножении на 0 будет 0,поэтому в конце 0 остаеться. В итоге у нас получилось:224.23.240.0 ответ:DFBH
0,0(0 оценок)
Ответ:
diana6192005
31.12.2020 08:30

program raf105;

const

 n = 10;

var

 a,b,c: array[1..n] of integer;

 i,j,x,max,mpos,b1,c1: integer;

begin

write('Введите максимальное число: ');

readln(x);

writeln('Заполните массив из ',n,' элементов');

for i:=1 to n do

begin

 readln(a[i]);

 if a[i] > x

   then begin

     b1:= b1+1;

     b[b1]:= a[i];

   end

   else begin

     c1:= c1+1;

     c[c1]:= a[i];

   end;

end;

for i:=1 to c1 do

begin

 max:= -10000;

 for j:=i to c1 do

   if c[j] >= max

     then begin

       max:= c[j];

       mpos:= j;

     end;

 c[mpos]:= c[i];

 c[i]:= max;

end;

for i:=1 to b1 do

 a[i]:= b[i];

for i:=1 to c1 do

 a[i+b1]:= c[i];

write('Отсортированный массив: ');

for i:=1 to n do

 write(a[i],' ');

end.

PascalABC 3.4.2
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота