По плоскости с нанесенной на ней прямоугольной системой координат движется робот с фонариком. Робот умеет шагать вправо, влево, вверх и вниз, а также включать и выключать фонарик. В момент старта робот находился в точке с координатами (2; 2) с включенным фонариком. Роботу необходимо повторить 128 раз следующую последовательность из четырех операций:
1) 7 шагов вправо.
2) 1 шаг вверх.
3) 2 шага влево
4) Если фонарик у робота включен, то сделать по 4 шага вправо и вверх и выключить фонарик, а если фонарик у робота выключен, то по 9 шагов вниз и влево и включить фонарик.
Какое минимальное количество шагов после выполнения этого алгоритма необходимо сделать роботу, чтобы прийти в начало координат? В ответе запишите только число.
Для удобства построения таблицы истинности введем логические переменные.
Обозначим 2*2=4 через a, 3*3=9 - через b.
Тогда высказывание примет вид:
Для этого выражения и построим таблицу истинности.
2. Для доказательства равносильности указанных выражений можно построить таблицы истинности и сравнить их.
Как видно, НЕСОВПАДЕНИЕ полное, т.е. ни при каком сочетании a и b выражения не равносильны. Это подтверждается теорией - имеются законы де-Моргана, в которых еще присутствует общее отрицание или в правой. или в левой части.
Объяснение:
Несколько замечаний:
1. Большое количество комментариев внесено в код исключительно в учебных целях. В реальную программу переносить не рекомендуется - признак нехорошего тона.
2. У вас допущены синтаксические ошибки в двух последних циклах, а точнее - в операторах If, в которых стоит три условия (объединённых and), но нет ключевого слова "then" и последующих инструкций. Исправил.
3. Так же, автор вашей программы построил на мой взгляд нелогичную структуру алгоритма. Переменные min, min2 и min3, как я догадался, должны хранить три минимальных значения массива.
А вот что происходит в вашей конструкции: первый цикл безошибочно находит наименьший элемент и записывает его в min, а последующие два цикла записывают в min2 и min3 первые попавшиеся(начиная с первого) элементы, если они больше min. Таким образом, нет никакой закономерности в том, что попадёт в эти переменные и сложно представить, для какой задачи потребовались бы такие случайности.
Одним из вариантов решения предлагаю изначально записывать в эти три переменные не значение первого элемента массива, а какое-то большое число, которое в массиве нам не встретится (например 100). Тогда цикл будет искать значения меньше 100 и перезаписывать им соответствующую переменную, пока не найдёт самое маленькое значение. В таком случае не очень стабильная переменная j нам так же не нужна, я её вычеркнул.
Вам отсылаю уже с учётом поправок, однако если вам требовалась именно первоначальная версия несмотря на её минусы, просто поправьте синтаксис в последних циклах (41 и 34 строчка на скрине) и пользуйтесь ей.