Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.74/163: Рейтинг темы: голосов - 163, средняя оценка - 4.74
82 / 7 / 1
Регистрация: 10.11.2018
Сообщений: 53
1

Изобразите извилистый спуск улитки по стене по заданной траектории

16.11.2018, 20:38. Показов 31934. Ответов 26
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ограничение времени 1 секунда
Ограничение памяти 64Mb
Ввод стандартный ввод или input.txt
Вывод стандартный вывод или output.txt
Изобразите извилистый спуск улитки по стене по заданной траектории (см. примеры).

Формат ввода
Вводится одна строка.

Начальный символ этой строки — символ рисования пути улитки.

Далее следует последовательность символов “<”, “>” и “V”, которые означают движение улитки, соответственно, влево, вправо и вниз.

Гарантируется, что по любой горизонтали движение происходит только в одну сторону (иными словами, между идущими в любом порядке “<” и “>” всегда есть хотя бы один “V”) и что путь не пройдёт левее начального положения.

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

Пример 1
Ввод Вывод
.>>>VV<<V
....
.
...
.
Пример 2
Ввод Вывод
@VVV>>>>>>>>V<<VVVV<<<VV>>>
@
@
@
@@@@@@@@@
@@@
@
@
@
@@@@
@
@@@@
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.11.2018, 20:38
Ответы с готовыми решениями:

Изобразите извилистый спуск улитки по стене по заданной траектории
Ограничение времени 1 секунда Ограничение памяти 64Mb Ввод ...

Изобразите извилистый спуск улитки по стене по заданной траектории (см. примеры)
Формат ввода Вводится одна строка. Начальный символ этой строки — символ рисования пути улитки....

Изобразите извилистый спуск улитки по стене по заданной траектории
Изобразите извилистый спуск улитки по стене по заданной траектории (см. примеры). Формат ввода...

Изобразите извилистый спуск улитки по стене по заданной траектории
Изобразите извилистый спуск улитки по стене по заданной траектории (см. примеры). Формат ввода...

Изобразите извилистый спуск улитки по стене по заданной траектории (см. примеры)
Изобразите извилистый спуск улитки по стене по заданной траектории (см. примеры). Формат ввода...

26
82 / 7 / 1
Регистрация: 10.11.2018
Сообщений: 53
18.11.2018, 13:21  [ТС] 2
Есть код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
way = input()
sign = way[0]
down = 0
right = 0
left = 0
for i in range(len(way) - 1):
    -if 'V' in way:
        --down += 1
        --continue
    -elif '>' in way:
        --right += 1
        --continue
    -elif '<' in way:
        --left += 1
        --continue
    -elif down + right + left == len(way) - 1:
        --break
for i in range(down):
    -print(sign, end='\n')
for i in range(right):
    -print(sign)
for i in range(left):
    -print(sign)
Он работает, но выводит не то, что надо. Не знаю близко это к решению или нет...
Может быть теперь вы поможете?
"-" - это те места, где есть четыре пробела или "Tab".
0
90 / 46 / 8
Регистрация: 08.10.2008
Сообщений: 438
18.11.2018, 14:05 3
Цитата Сообщение от PythonistAlex Посмотреть сообщение
это те места, где есть четыре пробела или "Tab"
для этого на форуме есть теги
Python
1
куку
Изобразите извилистый спуск улитки по стене по заданной траектории
0
90 / 46 / 8
Регистрация: 08.10.2008
Сообщений: 438
18.11.2018, 14:46 4
Python
1
2
3
4
5
6
7
8
9
10
11
way = input()
sign = way[0]
for i in range(len(way)):
    if 'V' == way[i]:
        print(sign, end='\n')
        continue
    elif '>' == way[i]:
        print(sign, end='')
        continue
    elif '<' == way[i]:
        print(sign, end='')
0
82 / 7 / 1
Регистрация: 10.11.2018
Сообщений: 53
18.11.2018, 15:06  [ТС] 5
Different number of lines: out = 3, corr = 4

Похоже на то, что для тех мест, где движение идёт влево (то есть назад), надо использовать "sep='координаты места - кол - во символов влево'. То есть когда движемся влево (и скорее всего вправо тоже), то надо использовать sep='(я не знаю как это осуществить)'
0
90 / 46 / 8
Регистрация: 08.10.2008
Сообщений: 438
18.11.2018, 15:47 6
Извиняюсь, не внимательно посмотрел вывод. И что-то у меня среда гонит, не могу правильно конец строки поставить. Попробуйте это:
Python
1
2
3
4
5
6
7
8
9
10
way = input()
sign = way[0]
print(way[0])
for i in range(len(way)):
    if 'V' == way[i]:
        print(end='\n')
        print(sign, end='')
        continue
    elif '>' or '<'== way[i]:
        print(sign, end='')
0
82 / 7 / 1
Регистрация: 10.11.2018
Сообщений: 53
18.11.2018, 16:05  [ТС] 7
Проверяю...

Добавлено через 11 минут
Когда программа переходит на следующую строку, она соскакивает на первый символ. Надо сделать так, чтобы отступ следующей строки с ходом вниз имел такой же отступ, как и предыдущая строка.
Я работаю над этим...
Но если есть время, то помоги, пожалуйста.
0
90 / 46 / 8
Регистрация: 08.10.2008
Сообщений: 438
18.11.2018, 16:05 8
Еще такой вариант. Этот в роде в двух IDE норм выводит
Python
1
2
3
4
5
6
7
8
9
10
11
12
way = input()
sign = way[0]
for i in range(len(way)):
    if 'V' == way[i]:
        print()
        print(sign,  end='')
        continue
    elif '>' or '<'== way[i]:
        print(sign, end='')
        continue
    else:
        print(sign)
0
82 / 7 / 1
Регистрация: 10.11.2018
Сообщений: 53
18.11.2018, 16:11  [ТС] 9
Цитата Сообщение от PythonistAlex Посмотреть сообщение
Когда программа переходит на следующую строку, она соскакивает на первый символ. Надо сделать так, чтобы отступ следующей строки с ходом вниз имел такой же отступ, как и предыдущая строка.
Та же самая проблема...
0
90 / 46 / 8
Регистрация: 08.10.2008
Сообщений: 438
18.11.2018, 16:23 10
Цитата Сообщение от PythonistAlex Посмотреть сообщение
Та же самая проблема...
Теперь с логикой порядок. И выводит правильно оба примера.
Python
1
2
3
4
5
6
7
8
9
10
11
way = input()
sign = way[0]
for i in range(len(way)):
    if 'V' == way[i]:
        print(end='\n')
        print(sign, end='')
        continue
    elif '>' or '<' == way[i]:
        print(sign, end='')
    else:
        print(sign, end='')
0
82 / 7 / 1
Регистрация: 10.11.2018
Сообщений: 53
18.11.2018, 16:29  [ТС] 11
Нет, всё равно не работает. Опять при переходе на новую строку сбрасывает до первого символа...
0
90 / 46 / 8
Регистрация: 08.10.2008
Сообщений: 438
18.11.2018, 16:39 12
Изобразите извилистый спуск улитки по стене по заданной траектории

Эх, ну надо же правильно вывод было нарисовать Сейчас переделаю.
0
82 / 7 / 1
Регистрация: 10.11.2018
Сообщений: 53
18.11.2018, 16:43  [ТС] 13
Сори
0
Эксперт С++
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
18.11.2018, 16:48 14
Python
1
2
3
4
5
6
7
8
9
10
path = input()
char = path[0]
way_list = path[1:].split('V')
num_spaces = 0
for move in way_list:
    if move and move[0] == '<':
        num_spaces -= len(move)
    print(' '*num_spaces + char*(1+len(move)))
    if move and move[0] == '>':
        num_spaces += len(move)
2
82 / 7 / 1
Регистрация: 10.11.2018
Сообщений: 53
18.11.2018, 16:58  [ТС] 15
Это неправильно
0
Эксперт С++
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
18.11.2018, 17:06 16
Что именно?
0
82 / 7 / 1
Регистрация: 10.11.2018
Сообщений: 53
18.11.2018, 17:10  [ТС] 17
При выполнении программа выводит лишь два символа на одной строке из нужных девяти на четырёх строках.
0
Эксперт С++
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
18.11.2018, 17:13 18
Я не знаю как это воспроизвести, у меня правильно выводит. Ну и пёс с ним
0
90 / 46 / 8
Регистрация: 08.10.2008
Сообщений: 438
18.11.2018, 17:15 19
Цитата Сообщение от grizlik78 Посмотреть сообщение
Что именно?
Если влево ползет больше чем вправо то получается как-то так:
Название: Снимок экрана от 2018-11-18 20-16-50.png
Просмотров: 521

Размер: 2.5 Кб
Может быть нужно как-то весь вывод двигать влево?
0
Эксперт С++
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
18.11.2018, 17:16 20
Цитата Сообщение от SashaRasha Посмотреть сообщение
Если влево ползет больше чем вправо то получается как-то так
По условию улитка не может ползти левее начального положения. И проблема у ТС в чём-то другом.
0
18.11.2018, 17:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.11.2018, 17:16
Помогаю со студенческими работами здесь

Программа спуск улитки
Изобразите извилистый спуск улитки по стене по заданной траектории (см. примеры). Формат ввода...

Изобразите график и линии уровня функции двух переменных z=f(x,y) в заданной области G
Изобразите график и линии уровня функции двух переменных z=f(x,y) в заданой области G Опишите...

Изобразите график и карту линий уровня функции двух переменных в заданной области G
Не понимаю как верно сделать данное задание, читал литературу с объяснениями построения графиков,...

Движение по заданной траектории
Напишите пожалуйста пример программы движения любого объекта по диагонали сверху вниз и наоборот,...

Робот по заданной траектории
Есть задание - реализовать движение робота по заданной траектории. Точнее по квадрату. Конкретных...

Передвижение по заданной траектории
как лучше сделать чтобы объект передвигался по заданой траектории?


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru