
Вопрос задан 13.05.2020 в 22:04.
Предмет Информатика.
Спрашивает Смирнова Анастасия.
Pascal abc Посередине озера плавает плот, имеющий форму прямоугольника. Стороны плота направлены
вдоль параллелей и меридианов. Введём систему координат, в которой ось OX направлена на восток, а ось ОY – на север. Пусть юго-западный угол плота имеет координаты (x1, y1), северо-восточный угол – координаты (x2, y2). Пловец находится в точке с координатами (x, y). Определите, к какой стороне плота (северной, южной, западной или восточной) или к какому углу плота (северо-западному, северо-восточному, юго-западному, юго-восточному) пловцу нужно плыть, чтобы как можно скорее добраться до плота. Программа получает на вход шесть чисел в следующем порядке: x1, y1 (координаты юго-западного угла плота), x2, y2 (координаты северо-восточного угла плота), x, y (координаты пловца). Все числа целые и по модулю не превосходят 100. Гарантируется, что x1 < x2, y1 < y2, x ≠ x1, x ≠ x2, y ≠ y1, y ≠ y2, координаты пловца находятся вне плота. Если пловцу следует плыть к северной стороне плота, программа должна вывести символ «N», к южной – символ «S», к западной – символ «W», к восточной – символ «E». Если пловцу следует плыть к углу плота, нужно вывести одну из следующих строк: «NW», «NE», «SW», «SE». Пример входных и выходных данных Ввод: -1 -2 5 3 -4 6 Вывод: NW Решение, правильно работающее для случаев, когда ответом является одна из сторон плота «N», «S», «W», «E»

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

Отвечает Жумакбаев Михаил.
//PascalABC.NET 3.2 сборка 1318
Var x1,y1,x2,y2,x,y,x3,y3,x4,y4:integer;
begin
read(x1,y1,x2,y2,x,y);
x3:=x1;
y3:=y2;
x4:=x2;
y4:=y1;
if (x<x1) and (y<=y3) and (y>=y1) then writeln('W') else
if (x<x1) and (y>y3) then writeln('NW') else
if (x>=x1) and (x<=x2) and (y>y3) then writeln('N') else
if (x>x2) and (y>y3) then writeln('NE') else
if (x>x2) and (y<=y2) and (y>=y4) then writeln('E') else
if (x>x2) and (y<y4) then writeln('SE') else
if (x<=x4) and (x>=x1) and (y<y4) then writeln('S') else
if (x<x1) and (y<y1) then writeln('SW');
end.
Пример ввода:
-2 1 4 4 -3 5
Пример вывода:
NW
Var x1,y1,x2,y2,x,y,x3,y3,x4,y4:integer;
begin
read(x1,y1,x2,y2,x,y);
x3:=x1;
y3:=y2;
x4:=x2;
y4:=y1;
if (x<x1) and (y<=y3) and (y>=y1) then writeln('W') else
if (x<x1) and (y>y3) then writeln('NW') else
if (x>=x1) and (x<=x2) and (y>y3) then writeln('N') else
if (x>x2) and (y>y3) then writeln('NE') else
if (x>x2) and (y<=y2) and (y>=y4) then writeln('E') else
if (x>x2) and (y<y4) then writeln('SE') else
if (x<=x4) and (x>=x1) and (y<y4) then writeln('S') else
if (x<x1) and (y<y1) then writeln('SW');
end.
Пример ввода:
-2 1 4 4 -3 5
Пример вывода:
NW


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

Информатика 562

Информатика 404

Информатика 31

Информатика 76

Информатика 16

Информатика 41

Информатика 31
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili