Вопрос задан 22.04.2021 в 03:34. Предмет Информатика. Спрашивает Хвостов Кирилл.

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

обычно рисуют карты от руки и описывают алгоритм нахождения клада так: «Встаньте около одинокой пальмы. Пройдите тридцать шагов в сторону леса, потом семнадцать шагов в сторону озера,... наконец десять шагов в сторону большого булыжника. Клад находится под ним». Большая часть таких указаний просто сводится к прохождению какого-то количества шагов в одном из восьми направлений: 1 - север, 2 - северо-восток, 3 - восток, 4 - юго-восток, 5 - юг,6 - юго-запад, 7 - запад, 8 - северо-запад (см. рис.1). Длина шага в любом направлении равна 1. Рис.1. Путешествие по такому пути обычно является прекрасным способом посмотреть окрестности, однако в наше время постоянной спешки ни у кого нет времени на это. Поэтому кладоискатели хотят идти напрямую в точку, где зарыт клад. Например, вместо того чтобы проходить три шага на север, один шаг на восток, один шаг на север, три шага на восток, два шага на юг и один шаг на запад, можно пройти напрямую примерно 3,6 шага (см. рис. 1). Вам необходимо написать программу, которая по указаниям пиратов определяет точку, где зарыт клад. Формат входных данных. Первая строка входного файла содержит число N - число указаний (1 <= N <= 40). Последующие N строк содержат сами указания - номер направления (целое число от 1 до 8) и количество шагов (целое число от 1 до 1000). Числа разделены пробелами. Формат выходных данных. В выходной файл выведите координаты X и Y точки (два вещественных числа, разделенные пробелом), где зарыт клад, считая, что ось Ox направлена на восток, а ось Oy — на север. Изначально кладоискатель должен стоять вначале координат. необходимо вывести как целое число. Формат ввода 6 1 3 3 1 1 1 3 3 5 2 7 1 Формат вывода 3 2
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Сай Екатерина.

Var

  I, N, D,L:longint;


  X,Y:real;


Begin


  Assign (input, ‘klad.txt’);


  Reset (input);


  Read(N);


X:=0; Y:=0;


For I:= 1 to N do begin


Read (D, L);


X := X+sin(Pi/4*(D-1))*L;


Y := Y+cos(Pi/4*(D-1))*L;


End;


  Assign(output, ‘kladt.txt’);


  Rewrite(output);


  Writeln(X:0:3,’ ’,Y:0:3);


  Close(output);


End.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения задачи можно использовать простую формулу расчета координат. Для каждого шага необходимо вычислить приращение координат по оси X и по оси Y в зависимости от направления. Затем, суммируя все приращения, получим конечные координаты точки, где зарыт клад.

Вот пример кода на языке Python:

python
n = int(input()) # считываем число указаний # инициализируем переменные для координат x = 0 y = 0 # проходим по всем указаниям for i in range(n): direction, steps = map(int, input().split()) # считываем направление и количество шагов if direction == 1: # север y += steps elif direction == 2: # северо-восток x += steps / 2 y += steps / 2 elif direction == 3: # восток x += steps elif direction == 4: # юго-восток x += steps / 2 y -= steps / 2 elif direction == 5: # юг y -= steps elif direction == 6: # юго-запад x -= steps / 2 y -= steps / 2 elif direction == 7: # запад x -= steps elif direction == 8: # северо-запад x -= steps / 2 y += steps / 2 # выводим координаты print(x, y)

Например, для входных данных:

6 1 3 3 1 1 1 3 3 2 7 1 1

ожидаемый вывод:

3.0 2.0

Таким образом, клад находится в точке (3.0, 2.0).

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос