В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
zhuckovanatali1
zhuckovanatali1
11.01.2023 20:12 •  Информатика

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

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

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

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

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

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

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

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

все

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

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

вправо

закрасить

все

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

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

вправо

все

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

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

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

кц

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

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

вправо

кц

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

На бесконечном поле имеется лестница. Сначала лестница поднимается вверх слева направо, потом опускается вниз также слева направо. Правее спуска лестница переходит в горизонтальную стену. Высота каждой ступени — 1 клетка, ширина — 1 клетка. Количество ступенек, ведущих вверх, и количество ступенек, ведущих вниз, неизвестно. Между спуском и подъемом ширина площадки — 1 клетка. Робот находится в клетке, расположенной в начале спуска. На рисунке указан один из возможных расположения стен и Робота (Робот обозначен буквой «Р») .

Напишите для Робота алгоритм, закрашивающий все клетки, расположенные непосредственно над лестницей. Робот должен закрасить только клетки, удовлетворяющие данному условию. Например, для приведённого выше рисунка Робот должен закрасить следующие клетки (см. рисунок).

Конечное расположение Робота может быть произвольным. Алгоритм должен решать задачу для произвольного размера поля и любого допустимого расположения стен внутри прямоугольного поля. При исполнении алгоритма Робот не должен разрушиться, выполнение алгоритма должно завершиться. Алгоритм может быть выполнен в среде формального исполнителя или записан в текстовом редакторе. Сохраните алгоритм в текстовом файле.

Показать ответ
Ответ:
Tamilla19
Tamilla19
03.11.2020 11:54
1. При использовании палитры из 2^24 цветов для хранения цвета 1 пикселя используется 24 бита = 3 байта.
Пусть количество пикселей в рисунке K, тогда объем памяти, занимаемой одним рисунком = (K*3)/1024 + 128 Кбайт.
X = 8*(K*3/1024 + 128)+2.5*1024
2. При использовании палитры из 2^16 цветов для хранения цвета 1 пикселя используется 16 бита = 2 байта.
Объем памяти, занимаемой одним рисунком = (K*2)/1024 + 128 Кбайт.
X = 20*(K*2/1024 + 128)
8*(K*3/1024 + 128)+2.5*1024 = 20*(K*2/1024 + 128)
К = 65536 (количество пикселей в рисунке)
X = 20*(K*2/1024 + 128) = 20*(65536*2/1024 + 128) Кбайт = 
 20*(128 + 128) Кбайт = 5120 Кбайт = 5120/1024 Мбайт = 5 Мбайт
0,0(0 оценок)
Ответ:
SuperNikc
SuperNikc
25.07.2022 10:06
Var
  x,f:real;
begin
  Write('Введите x: '); Readln(x);
  if (x>-2.4) and (x<5.7) then f:=sqr(x)
  else f:=4;
  Writeln('F=',f)
end.

var
  x,f:real;
begin
  Write('Введите x: '); Readln(x);
  if (x>0.2) and (x<0.9) then f:=sin(x)
  else f:=1;
  Writeln('F=',f)
end.

var
  a,b,c:real;
begin
  Write('Введите три числа: '); Readln(a,b,c);
  Write('Условие ',a,'<',b,'<',c);
  if (b>a) and (b<c) then Writeln(' выполняется.')
  else Writeln(' не выполняется.');
  Write('Условие ',b,'>',a,'>',c);
  if (a<b) and (a>c) then Writeln(' выполняется.')
  else Writeln(' не выполняется.')
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота