Исполнитель робот ходит по клеткам бесконечной вертикальной клетчатой доски переходя по одной из ко

Обновлено: 09.05.2024

Сначала в исходной программе сокращаете (зачёркиваете) все пары взаимно противоположных команд (влево-вправо и вверх-вниз):

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

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

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

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

Чтобы из конечной точки теперь переместиться в начальную, нужно выполнить ту же минимальную программу, заменив в ней каждую команду движения на противоположную ей (т.е. на движение в противоположную сторону). Получим вот что:

Это и есть минимальная программа, которая вернёт робота в начальную точку. Её длина- две команды.

Новые вопросы в Информатика

(50 баллов) Срочно, при открытии диспетчера задач, показывает что цп загружен на 100%, и постепенно спадает до 14%, но при этом Dr WEB cureit и Micros … oft DEFENDER при полном сканировании ничего не обнаруживают (проверку запускал несколько раз+ перезагружал), это нормально или стоит проверить через другие антивирусы?

Согласно условию задачи своего варианта составить блок-схему алгоритма, написать программный код на языке программирования Pascal с использованием опе … ратора цикла (или While или Repeat или For) и реализовать его Вводится последовательность положительных целых чисел, 0 – конец последовательности. Определить количество четных чисел.

Согласно условию задачи своего варианта составить блок-схему алгоритма, написать программный код на языке программирования Pascal с использованием пол … ной формы условного оператора и реализовать его.Задан круг с центром в точке О(x0+y0), радиусом R0 и точка A(x1+y1). Определить, находится ли точка внутри круга.

SCRATCH Составьте программу, согласно которой кот ходит туда-сюда, но через каждые 300 шагов останавливается на 1 секунду и говорит "мяу"​

80 баллов. Желательно с объяснениями. 1) Дан массив Д, размером 6 элементов, элементы вводятся с клавиатуры. Найти сумму положительных элементов. 2) Д … ан массив М, размером 12 элементов, элементы случайные числа от -10 до 5. Найти наибольшей элемент чисел, поменять местами 5 и 10 элементы. 3) Дан массив L, размером 8 элементов, элементы вводятся с клавиатуры. Нужно упорядочить элементы по возрастанию.


Задание 12 № 4584

Исполнитель РОБОТ умеет перемещаться по прямоугольному лабиринту, начерченному на плоскости, разбитой на клетки. Между соседними по сторонам клетками может стоять стена.

Система команд исполнителя РОБОТ содержит восемь команд. Четыре команды - это команды перемещения:

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

Четыре команды проверяют отсутствие стены у каждой стороны той клетки, где находится РОБОТ:

сверху свободно

снизу свободно

слева свободно

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

выполняется, пока условие истинно.

В конструкциях ПОКА условие может содержать команды проверки, а также слова И, ИЛИ, НЕ.

Сколько клеток лабиринта соответствуют требованию, что, начав движение в ней и выполнив предложенную программу, РОБОТ уцелеет (не врежется в стену) и остановится в закрашенной клетке (клетка F6)?

вниз

вправо

При данной программе РОБОТ поступает следующим образом: сперва РОБОТ проверяет свободна ли клетка справа или снизу от него, если это так, то РОБОТ переходит к первому действию внутри цикла. В этом цикле пока снизу клетки в которой находится РОБОТ нет стены он продолжает двигаться вниз. Как только это условие перестанет выполняться он переходит ко второму действию цикла. Второе действие, заключается в следующем: РОБОТ передвигается на одну клетку вправо. После чего возвращается к началу внешнего цикла. У робота есть возможность разбиться: например, стартовав из любой клетки столбца F робот разобьётся.

Проверив все клетки по выведенному нами правилу движения РОБОТА выясняем, что число клеток, удовлетворяющих условию задачи, равно 12.

Заметим, что стартовав из клетки F6, РОБОТ не начнет выполнение цикла (поскольку снизу и справа не свободно) и вообще не выполнит никаких действий, оставшись после окончания программы в клетке F6, поэтому клетка F6 подходит. Если же РОБОТ стартует из любой другой клетки столбца F, то он начнет выполнение цикла и будет двигаться вниз до клетки F6, после чего выполнит команду «вправо» и разобьется.

почему диапазон F3:F5 не подходит.

Заметьте, что начав движение из клеток F3, F4, F5, робот дойдет вниз до клетки F6, после чего попытается выполнить команду "вправо", и разобьётся.


Задание 12 № 5272

Система команд исполнителя РОБОТ, «живущего» в прямоугольном лабиринте на клетчатой плоскости, состоит из 8 команд. Четыре команды −

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

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

Четыре команды проверяют истинность условия отсутствия стены у каждой

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

выполняется, пока условие истинно.

выполняется команда1 (если условие истинно) или команда2 (если условие ложно).

В конструкциях ПОКА и ЕСЛИ условие может содержать команды проверки, а также слова И, ИЛИ, НЕ, обозначающие логические операции.

Если РОБОТ начнёт движение в сторону находящейся рядом с ним стены, то он разрушится, и программа прервётся.

Сколько клеток лабиринта соответствуют требованию, что, начав движение в ней и выполнив предложенную программу, РОБОТ уцелеет и остановится в закрашенной клетке (клетка F6)?

ПОКА снизу свободно ИЛИ справа свободно

ЕСЛИ снизу свободно

ЕСЛИ справа свободно

При данной программе РОБОТ поступает следующим образом: сперва РОБОТ проверяет, свободна ли клетка справа или снизу от него. Если это так, то РОБОТ переходит к первому действию внутри цикла. В этом цикле если у нижней стороны клетки, в которой находится РОБОТ, нет стены, он двигается вниз, в противном случае, если у правой стороны клетки нет стены, он перемещается вправо. После этого возвращается к началу внешнего цикла.

Проанализировав эту программу, приходим к выводу, что РОБОТ не может разбиться.

Проверив все клетки по выведенному нами правилу движения РОБОТА выясняем, что число клеток, удовлетворяющих условию задачи, равно 12 (клетки А4-6, B4-6, C5-6, D5-6, E6, F6).

Примечание. Робот будет на каждом новом круге последовательно проверять оба условия и выполнять их, и будет двигаться "лесенкой" пока это возможно, а не просто спускаться вниз до препятствия, а затем идти вправо. В частности, начав движение из клетки D4, робот будет перемещаться по пути D4—D5—E5—F5.

Заметим, что фраза «робот начнет движение и остановится» подразумевает, что «робот начнет выполнение программы и остановится», при этом робот не обязательно будет перемещаться в другую клетку.


Задание 12 № 1810

Система команд исполнителя РОБОТ, «живущего» в прямоугольном лабиринте на клетчатой плоскости:

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

При выполнении этих команд РОБОТ перемещается на одну клетку соответственно: вверх, вниз, влево, вправо.

Четыре команды проверяют истинность условия отсутствия стены у той клетки, где находится РОБОТ:

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

выполняется, пока условие истинно, иначе происходит переход на следующую строку.

Сколько клеток лабиринта соответствуют требованию, что, выполнив предложенную программу, РОБОТ остановится в той же клетке, с которой он начал движение?

Выясним, что необходимо для того, чтобы РОБОТ остановился в той же клетке, с которой он начал движение. Так как программа заканчивается командой "ПОКА влево", следовательно, для того, чтобы робот остановился в той же клетке, с которой он начал движение, необходимо, чтобы у этой клетки была стенка сверху. Этому условию удовлетворяют все клетки верхней стенки лабиринта и еще шесть клеток кроме нее. Проверим каждую клетку, удовлетворяющую условию. Обратим внимание, что возможны зацикливания, например, если начать движение из клетки А1, Б1, если нумеровать цифрами сверху вниз, а буквами слева направо.

Ответ: три клетки В1, А2 и Д3.

1. Необходимо условиться о том, что происходит с РОБОТОМ, если он пытается выполнить команду "вниз" в клетке, где есть нижняя стенка (или аналогичную команду, приводящую к тому, что РОБОТ упирается в стенку).

В решении предполагается, что РОБОТ в этом случае останется в той же клетке и будет бесконечно повторять попытку сделать шаг вниз, то есть произойдет зацикливание (например, в клетке А1). Клетки, при начале движения из которых происходит зацикливание, не подходят, так как РОБОТ в них не останавливается (не заканчивает выполнение программы).

Но можно считать, что при попытке сделать шаг вниз из клетки, где есть нижняя стенка, РОБОТ разобьется. Тогда он разобьется, например, начав движение из клетки А1. Клетки, при начале движения из которых РОБОТ разобьется, не подходят.

2. Заметим, что программа состоит из четырех циклов. В частности, при выполнении строки

РОБОТ будет повторять шаги вправо до тех пор, пока не окажется в клетке, где снизу есть стена. Например, начав движение из клетки Д5, РОБОТ сделает шаг вправо, окажется в клетке Е5 и разобьется (или зациклится) при попытке сделать еще один шаг вправо.

Endok

Задача 3/21. Сколько раз выполнится цикл - 2 Дан фрагмент программы, определите, сколько раз выполняется тело цикла while и чему равно значение переме … нной a после выполнения данного цикла. Ответ необходимо давать в виде <число>;<число>. Например, если тело цикла выполняется 5 раз, а значение переменной будет равно 10, то в ответе необходимо указать строку 5;10. Если цикл зацикливается, то необходимо указать только одно слово INF. Фрагмент программы a = 32 b = 40 while a < b: a += b

Написать программу, которая вносит в массив из 100 элементов числа от 1 до 100 и выводит на экран эти числа таблицей 10х10 Пример: (1 строка) 1 2 3 4 … 5 6 7 8 9 10 (2 строка) 11 12 13 14 15 16 17 18 19 20 и т.д. C++

Тест «Циклы» 1. Алгоритмическая структура, реализующая повторение некоторой последовательности действий, называется . 2. Операторы, повторяющиеся в … цикле, называются . . а) циклическими б) телом цикла в) верно а,б г)нет верного ответа. 3. В каком из операторов цикла тело цикла выполняется хотя бы один раз? а) в цикле REPEAT б) в цикле WHILE в) в цикле FOR 4. Какой из циклов может ни разу не выполняться? а) цикл REPEAТ б) цикл WHILE в) цикл FOR г) верно а, б, в д) верно б,в 5. Чтобы выполнить какое-то действие или последовательность дей¬ствий три раза можно применить цикл . а) цикл REPEAT б) цикл WHILE в) цикл FOR г) верно а, б, в 9. Какого оператора цикла не существует в языке Паскаль? а) for б) while в) repeat. until г) loop 10. Цикл в фрагменте программы р: = 2; repeat р:=р*0.1 until р<0.1; будет исполнен: а) 0 раз б) 1 раз в) 2 раза г) бесконечное число раз 11. Цикл в фрагменте программы а:=1; b:=1; while а+b < 8 do begin а:=а+1; b:=b+2 end; выполнится: а) 0 раз б) 2 раза в)3 раза г) бесконечное число раз 12. Определите значения переменных s и i после выполнения фрагмента программы: s:=0; i:=5; while i>0 do begin s:=s + i; i:=i - 1; end; а) s = 0, i = - 1 б) s = 5, i = 0 в) s = 15, i = 5 г) s = 15, i = 0 13. Выберите фрагмент программы, в котором ищется произведе¬ние 1*2*3*4*5: а) p:=0; i:=1; while i<=5 do i:=i+l; p:=p*i; б) p:=l; i:=l; while i<6 do i:=i+l; p:=p*i; в) р:=1; i:=l; while i<6 do begin p:=p*i; i:=i+l end; г) p:=l; i:=l; while i>5 do begin p:=p*i; i:=i+l end; 14. В данном фрагменте программы s: = 0 ; for i: =1 to 10 do s:=s+2*i; вычисляется: а) сумма целых чисел от 1 до 10 б) сумма чётных чисел от 1 до 10 в) удвоенная сумма целых чисел от 1 до 10 г) сумма первых десяти натуральных чётных чисел

Дано:
исполнитель Робот ходит по клеткам вертикальной клетчатой доски, переходя по одной из команд вверх, вниз, вправо, влево в соседнюю клетку в указанном направлении. Робот выполнил следующую программу:

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

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

Решение

Изобразим фрагмент бесконечной координатной сетки и выберем точку старта Робота. Данная точка будет называться START. Данную точку можно расположить абсолютно в любом месте сетки (так как сетка "бесконечная").



Выполним программу Робота, представленную в условии задачи (точку окончания движения Робота обозначим как END):
вправо → вниз → вправо → вверх → влево → вверх → вверх → влево










Как следует из последнего рисунка, Роботу потребуется две команды, чтобы из начальной точки (START) достичь конечной точки (END).

Вывод:

Роботу потребуется минимум две команды, чтобы достичь конечной точки стартовав из начальной

Резюме

изобразили фрагмент бесконечной сетки;

"прогнали" Робота по заданному алгоритму, параллельно отмечая траекторию его движения;

посчитали количество команд, приводящих Робота из начальной точки в конечную точку.


Алгоритм – последовательность действий, приводящая к решению поставленной задачи.

Фундаментальные свойства алгоритма:

дискретность – последовательность шагов выполнения;

детерминированность – алгоритм должен быть определенным;

понятность – алгоритм должен быть понятен исполнителю (как правило, исполнителем выступает компилятор или интерпретатор);

завершаемость – алгоритм должен завершиться за разумное время;

массовость – алгоритм должен корректно работать при различных входных данных;

результативность – алгоритм должен финализироваться конкретным результатом.

Исполнитель алгоритма – автомат (как правило, рассматривается персональный компьютер) или человек, способный выполнять определенный набор действий. Как правило, в роли конкретного исполнителя выступают следующие существа: Робот, Инвентор, Делитель, Сумматор, Дробитель, Утроитель, Вычитатель, Модулятор, Калькулятор и т. п.

Базовые характеристики исполнителя:

система элементарных действий;

система отказов (или обработка исключительных ситуаций).

Методические указания

Для успешного решения задач из данной категории вы должны:

стараться использовать графические интерпретации для решения поставленной задачи;

повторить все движения робота с графической визуализацией и сделать соответствующие умозаключения.

Задача №1

Дано:
исполнитель Робот ходит по клеткам вертикальной клетчатой доски, переходя по одной из команд вверх, вниз, вправо, влево в соседнюю клетку в указанном направлении. Робот выполнил следующую программу:

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

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

Задача №2

Дано:
исполнитель Робот ходит по клеткам вертикальной клетчатой доски, переходя по одной из команд вверх, вниз, вправо, влево в соседнюю клетку в указанном направлении. Робот выполнил следующую программу:

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

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

Задача №3

Дано:
исполнитель Робот ходит по клеткам вертикальной клетчатой доски, переходя по одной из команд вверх, вниз, вправо, влево в соседнюю клетку в указанном направлении. Робот выполнил следующую программу:

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

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

Задача №4

Дано:
исполнитель Робот ходит по клеткам вертикальной клетчатой доски, переходя по одной из команд вверх, вниз, вправо, влево в соседнюю клетку в указанном направлении. Робот выполнил следующую программу:

вверх → влево → влево → вверх → вправо → вверх → вправо

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

Читайте также: