J. Маршрут построен

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

  • СЕВЕР;
  • ВОСТОК;
  • ЮГ;
  • ЗАПАД.

Напишите программу, чтобы по заданному маршруту она определяла, в какой именно точке мы окажемся.
Для простоты будем считать, что в начале маршрута мы находимся в точке (0; 0).

Формат ввода

Вводятся инструкции маршрута в виде:
<направление>
<количество шагов>
Ввод завершается строкой СТОП.

Формат вывода:

Два целых числа — координаты конечной точки маршрута.

Пример

Ввод

СЕВЕР
2
ВОСТОК
2
СТОП

Вывод

2
2

Ввод

СЕВЕР
2
ЮГ
3
ЗАПАД
4
СТОП

Вывод

-1
-4

Решение

Инициализируем нулем две координаты – x и y.
Запускаем цикл while и считываем направление до тех пор, пока не получим слово ‘СТОП’.
В зависимости от значения слова и смещения, изменяем значение переменной соответствующей координаты.
СЕВЕР: y + сдвиг
ЮГ: y – сдвиг
ЗАПАД: x – сдвиг
ВОСТОК: x + сдвиг

Посмотреть код

Решение

Python
# решение с помощью оператора if

x, y = 0, 0

while (direction := input()) != 'СТОП':
    n = int(input())
    if direction == 'ВОСТОК':
        x += n
    elif direction == 'ЗАПАД':
        x -= n
    elif direction == 'СЕВЕР':
        y += n
    elif direction == 'ЮГ':
        y -= n
        
print(y)
print(x)

Решение

Python
# решение с помощью оператора match/case

x = y = 0

while (dir := input()) != 'СТОП':
    q = int(input())
    match dir:
        case 'СЕВЕР':
            y += q
        case 'ЮГ':
            y -= q
        case 'ЗАПАД':
            x -= q
        case 'ВОСТОК':
            x += q

print(y)
print(x)
Подписаться
Уведомить о
guest
6 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Александр
Александр
28.08.2024 20:37

Оба решения идентичны. разница только в комментариях.
Где решение с помощью оператора “match/case”?

Александр
Александр
Ответить на  Сергей Клочко
28.08.2024 21:10

Прошу прощения. Я не подумал что мой вопрос вы воспримете как требование

Алекс
Алекс
03.09.2024 11:09

не подскажете пожалуйста
СЕВЕР
2
ЮГ
3
ЗАПАД
4
СТОП
должно вывести -4 -1