Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.62/34: Рейтинг темы: голосов - 34, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 19.10.2017
Сообщений: 46

Повороты робота

02.11.2017, 22:09. Показов 8007. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Робот может перемещаться в четырёх направлениях ("С" - север, "З" - запад, "Ю" - юг, "В" - восток) и принимать три цифровые команды: 0 - продолжать движение, 1 - поворот налево, -1 - поворот направо. Дан символ C - исходное направление робота и число N - посланная ему команда. Вывести направление робота после выполнения полученной команды.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.11.2017, 22:09
Ответы с готовыми решениями:

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

Разработка класса робота
Разработать класс, описывающий перемещение робота, запоминающего свои координаты при движении. Робот понимает команды "Шаг...

Как с решением задачи робота с файлами
Написать функцию count_string(), которая принимает два аргумента - имя файла (т. е. путь к файлу), а также ищет string, и возвращает на...

31
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
15.11.2017, 21:51
Студворк — интернет-сервис помощи студентам
Ага, это я опять попутал второй и третий питон. Вместо raw_input должен быть просто input.
0
0 / 0 / 0
Регистрация: 19.10.2017
Сообщений: 46
15.11.2017, 21:55  [ТС]
likehood, тааак, всё работает и вроде как правильно)

Добавлено через 47 секунд
likehood, Спасибо большое за своё потраченное время, очень благодарен и признателен!
0
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
15.11.2017, 22:00
Вот ещё полная версия варианта, который предложил dondublon. Эта версия более точная.
Python
1
2
3
4
5
6
7
8
9
10
11
dirName = 'сзюв'
print('Enter direction (с, з, ю, в):')
c = input()
print('Enter rotate (1, -1 or 0):')
rotate = int(input())
curr_dir = dirName.find(c)
if curr_dir == -1:
    print('Wrong direction')
else:
    next_dir = (curr_dir + rotate) % 4
    print( dirName[next_dir] )
0
0 / 0 / 0
Регистрация: 19.10.2017
Сообщений: 46
15.11.2017, 22:11  [ТС]
likehood, понял, спасибо, очень сильно меня выручил!

Добавлено через 5 минут
likehood, только вот он теперь постоянно Wrong direction выдаёт..

Добавлено через 2 минуты
likehood, а нет, всё исправно.
0
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
15.11.2017, 22:13
Может с русскими буквами проблема. Я тестировал на сайте repl.it, там всё работало.
Как вариант можно вернуть английские буквы (строка dirName).
0
0 / 0 / 0
Регистрация: 19.10.2017
Сообщений: 46
15.11.2017, 22:13  [ТС]
likehood, только вот если я ввожу любую стороннюю команду, 3 или 4 например, то всё равно выдаёт одно из направлений.
0
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
15.11.2017, 22:21
Можно добавить проверку, чтобы переменная rotate была в нужном диапазоне.

Добавлено через 4 минуты
Типа такой:
Python
1
2
if not -1 <= rotate <= 1:
  print('Wrong rotate')
0
0 / 0 / 0
Регистрация: 19.10.2017
Сообщений: 46
15.11.2017, 22:27  [ТС]
likehood, на счёт -1 ошибку выдаёт
0
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
15.11.2017, 22:36
Цитата Сообщение от HARON99 Посмотреть сообщение
на счёт -1 ошибку выдаёт
???
0
0 / 0 / 0
Регистрация: 19.10.2017
Сообщений: 46
15.11.2017, 22:43  [ТС]
likehood, при вводе команды, которой нет(3 или 4), он всё-таки выдаёт сообщение, о том, что такой не существует, а затем выводит направление: dirName = 'СЗЮВ'
print('Введите направление (С, З, Ю, В):')
c = input()
print('Введите команду (1, -1 или 0):')
rotate = int(input())
if not -1 <= rotate <= 1:
print('Такой команды нет')
curr_dir = dirName.find(c)
if curr_dir == -1:
print('Неправильное направление')
else:
next_dir = (curr_dir + rotate) % 4
print( dirName[next_dir] )

Добавлено через 2 минуты
likehood, всё, разобрался.. Программист из меня никакой...

dirName = 'СЗЮВ'
print('Введите направление (С, З, Ю, В):')
c = input()
print('Введите команду (1, -1 или 0):')
rotate = int(input())
curr_dir = dirName.find(c)
if curr_dir == -1:
print('Неправильное направление')
else:
next_dir = (curr_dir + rotate) % 4
print( dirName[next_dir] )
if not -1 <= rotate <= 1:
print('Такой команды нет')
0
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
15.11.2017, 22:45
Ну, можно добавить exit() после вывода сообщения о неверной команде.

Добавлено через 2 минуты
Главное не забывать ставить теги. Для кода на питоне это особенно важно, иначе не видны отступы.
0
Эксперт Python
 Аватар для dondublon
4663 / 2082 / 367
Регистрация: 17.03.2012
Сообщений: 10,203
Записей в блоге: 6
16.11.2017, 10:11
Цитата Сообщение от HARON99 Посмотреть сообщение
dondublon, 1
next_dir = (curr_dir + rotate) % 4
Вы это имеете ввиду?
Добавлено через 47 секунд
dondublon, ввожу эту строчку и после запуска программы выдаёт ошибку, не знаю что делать
Да. Понятно, что к этой строчке надо ещё кое-что.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.11.2017, 10:11

Повороты матрицы
Дана прямоугольная таблица (количество строк и столбцов таблицы заранее известно). Выполнить преобразования матрицы: а) поворот матрицы...

Повороты матрицы
Дана прямоугольная таблица (количество строк и столбцов таблицы заранее известно). Выполнить преобразования матрицы: а) поворот матрицы...

Робота со строкой
Здраствуйте! Нужно проверить есть ли слова НАПРИМЕР: &quot;хайп&quot; в масиве такого типа: Должно вывести сллово &quot;хайп&quot; но...

Робота с файлами
В файл записано 3 числа, мне нужно 2 первых сложить и отнять от рузультата третье число.Помогите!

Программирование робота
Ученик IT-класса Леонид собирается участвовать в соревновании по робокёрлингу. Для этого он собрал робота, который умеет выполнять три...


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

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
Новые блоги и статьи
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru