Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 17.02.2024
Сообщений: 1

Программа для оптимального перемещения робота в заданную клетку

17.02.2024, 15:30. Показов 1128. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание:
Робот находится на клеточном поле без стен. Программа для робота составлена из команд движения move_right(), move_left(), move_down(), move_up() и циклов for с одним неотрицательным параметром, внутри которых может быть любое количество команд движения. Вложенных циклов в программе нет. Названия переменных цикла for — из одного символа.
Гарантируется, что программа верна, в ней нет синтаксических ошибок и могут встречаться пустые строки. Они нужны, чтобы визуально разделить код на несколько частей.
Каждая команда движения перемещает робота в соседнюю клетку в соответствующем направлении. Производители робота пошли навстречу программистам и добавили четыре команды вида move_right(N), которая передвигает робота в нужном направлении на N шагов (N — положительное целое число больше 1).
Последняя строка в программе — комментарий, который начинается с символа #. Других таких строк в программе нет.
Эту программу для робота надо сократить и заменить её на более короткую и при этом перемещающую робота в ту же клетку.
Ваша задача — написать на Python программу, которая это сделает.
Вашей программе на вход даётся несколько строк на Python со строкой-комментарием в конце.
Требуется вывести код программы, которая составлена по тем же правилам, что и исходная, перемещает робота в ту же клетку и имеет наименьшее возможное количество строк.
Если такую короткую программу можно составить разными способами с одинаковым количеством строк, выведите любой подходящий вариант. В каждой строке ответа разрешается ставить только одну команду движения или заголовок цикла for.

Мой код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
code = input()
a = b = 0
 
def move_right (n = 1):
    a += n
 
def move_left (n = 1):
    a -= n
 
def move_up (n = 1):
    b += n
 
def move_down (n = 1):
    b -= n  
    
result = []
if a != 0:
    result.append(f'{"move_right(abs(a))" if a>0 else "move_left(abs(a))"}')
if b != 0:
    result.append(f'{"move_up(abs(b))" if b>0 else "move_down(abs(b))"}')
        
for i in range(len(result)):
    print (result[i])
Помогите найти ошибки, пожалуйста
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.02.2024, 15:30
Ответы с готовыми решениями:

Минимизировать штраф перехода в заданную клетку
Задана матрица натуральных чисел A(n,m). За каждый проход через клетку (i,j) взымается штраф A(i,j). Необходимо минимизировать штраф и ...

Функция перемещения робота
Нужна функция getLocation, которая будет принимать массив начальных координат coordinates (в виде ), массив истории команд роботу commands...

Перемещения робота (switch)
Робот может перемещаться в четырех направлениях ("С" — север, "3" — запад. "Ю" — юг, "В" — восток) и принимать три цифровые...

3
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,683
Записей в блоге: 14
17.02.2024, 17:04
Цитата Сообщение от Mila_Ray Посмотреть сообщение
Мой код:
- тут не ошибки нужно искать, а просто написать заново. Решение должно быть таким:

1) прочитать программу
2) выполнить ее и определить, в какой клетке окажется робот после исполнения программы
3) построить короткую программу и вывести ее
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
18.02.2024, 13:35
Цитата Сообщение от Mila_Ray Посмотреть сообщение
def move_right (n = 1):
    a += n
global не хватает.
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,707
18.02.2024, 14:31
Вот решение.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.02.2024, 14:31
Помогаю со студенческими работами здесь

Реализация перемещения робота в 4 направлениях
Помоготе сделать программу для решения этой задачи: Робот может перемещаться в четырех направлениях («С» — север, «З» — запад, «Ю» —...

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

Как определить, может ли король попасть в заданную клетку?
Шахматный король ходит по горизонтали, вертикали и диагонали, но только на 1 клетку. Даны две различные клетки шахматной доски, определите,...

Выяснить можно ли попасть ладьей в заданную клетку поля
Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит восьми: первое число – номер вертикали (при...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru